Sistemas operacionais: conceito e estrutura

Sistemas operacionais: conceito e estrutura
Camila Pessôa
Camila Pessôa

Compartilhe

Introdução: Sistema Operacional

Todas as vezes que alguém pergunta: qual o sistema operacional que você usa? Instantaneamente, você pensa na janelinha do Windows, no shell do Linux ou mesmo no ícone de configurações do Android, dentre outros, não é mesmo?!

Mas e se eu te contasse que um sistema operacional não se resume àquele visual com pastinhas bonitinhas clicáveis e tão úteis em nosso dia-a-dia - conhecido como GUI (Graphical User interface, interface gráfica do usuário)? E você pode pensar: “Ah, então é o shell ou terminal?

Já te digo - e vai ser chocante: Nananinanão!

A imagem em loop mostra um homem mascarado, o personagem deadpool da franquia de filmes. Há um close em seus ombros e cabeça, onde o personagem leva as mãos até o rosto com uma expressão corporal que sugere surpresa.

Fonte: hips.hearstapps.com

Durante a leitura, nós vamos identificar qual o conceito de sistema operacional, alguns de seus aspectos fundamentais, compreenderemos sua importância tanto para o usuário comum, quanto para as pessoas desenvolvedoras, e também conheceremos tipos e estruturas de sistemas.

Apertem os cintos e vamos para as revelações...

Leia também: Como instalar o MongoDB, Compass e Shell no sistema operacional Linux?

Banner de divulgação da Imersão IA da Alura em colaboração com o Google. Mergulhe em Inteligência artificial com a Alura e o Google. Serão cinco aulas gratuitas para você aprender a usar IA na prática e desenvolver habilidades essenciais para o mercado de trabalho. Inscreva-se gratuitamente agora!

O que é um sistema operacional?

Fundamentalmente, um sistema operacional é um software, que pode ser o Linux, Windows, Android, macOS, UNIX, entre outros. No entanto, ele não resume aquilo que seus olhos conseguem ver ou ao que você consegue interagir. Em outras palavras, é um programa que conversa diretamente com o hardware da sua máquina.

O sistema operacional assegura que os programas funcionem corretamente. Mas antes de entendermos o que é um sistema operacional, precisamos definir o que é um sistema computacional.

Um computador moderno apresenta alguns elementos principais, que podemos destacar:

  • Um ou mais processadores (o core);
  • Memória principal;
  • Dispositivos de entrada e saída (E/S), como monitores e teclados.

Todos esses componentes lidam em conjunto com os programas na sua máquina. À primeira vista pode parecer pouca coisa, mas você conhece de fato todos os componentes que pertencem ao seu computador? Sabe como todos eles funcionam?

Já pensou então, se todo o usuário e usuária se preocupassem com detalhes de hardware para escrever um arquivo de texto? Ou pior, se os desenvolvedores e desenvolvedoras tivessem que aprender os pormenores dos componentes de um computador moderno para conseguir começar a programar? Parece um trabalho sem fim, não é?

 A imagem retrata um home negro com uma camisa socieal suando muito e com feições tensas.

Fonte: tenor.com

Qual a função do sistema operacional?

O autor do livro sistemas operacionais modernos, Tanenbaum, levanta essa questão e justifica que o sistema operacional surgiu para intermediar o diálogo entre máquina e pessoa programadora (ou mesmo usuário/a mais avançado).

Assim, a gente não precisa se preocupar em administrar todos os recursos na mão, ou então, por exemplo, ter que deslocar um espaço na memória específico para determinada variável?

Ademais, certamente a quantidade de programadores e softwares disponíveis na atualidade não seria a mesma se houvesse a necessidade também de gerenciar formas de otimização dos recursos.

Muitas vezes o sistema operacional é considerado um software base, porque fornece suporte às aplicações. Ele funciona como uma interface entre a aplicação e as rotinas de E/S com o hardware, ou seja, é preciso ter um sistema que faça essa conversa, e é nesse campo que o sistema operacional atua. Essa peça mais elementar de software opera em dois modos: o modo núcleo (modo supervisor) e o modo usuário.

No modo supervisor o acesso é completo a todo o hardware, e é possível enviar qualquer instrução que a máquina seja capaz de executar. O modo usuário é mais restrito para instruções que interferem no controle da máquina, mas é onde todo o resto do software opera.

Na imagem abaixo, conseguimos visualizar de forma simplificada as responsabilidades dos modos usuário e núcleo, assim como o local de atuação dos programas de interface com o usuário (GUI ou shell):

Desenho que mostra as camadas de um sistema operacional, sua posição e  relação com hardware e o modo usuário. Na camada acima há o modo usuário, que é composto pelas aplicações (como navegador web, reprodutor de música), a segunda camada é o programa de interface com o usuário. A terceira camada é o modo núcleo, que também é um software mas já faz parte do sistema operacional. Por fim há o hardware.

Fonte: Sistemas Operacionais Modernos. Tanenbaum, p.1.

Embora a divisão de responsabilidades pareça muito clara, em diversas ocasiões, a distinção entre o campo de atuação do sistema operacional e o modo usuário (software usual) se torna complexa. Um exemplo dessa afirmação é um programa que funciona em modo usuário, mas executa tarefas privilegiadas, como permitir ao usuário a troca de senha.

Em outras palavras, definir exatamente um sistema operacional não é tão simples assim, mas conseguimos diferenciá-los de programas de usuário por meio de suas particularidades.

Em resumo, as principais funções do sistema operacional são: 1) funcionar como uma ponte entre aplicações na camada do usuário e hardware; 2) e gerenciar os recursos de um sistema complexo (por exemplo, quando você executa vários programas ao mesmo tempo, na realidade é o seu sistema operacional que troca, em frações de segundos, o programa processado pela unidade central de processamento).

Além disso, são programas robustos, complexos e possuem longa vida. Apesar de serem muito difíceis de escrever, você acredita que o Linux tem cerca de cinco milhões de linhas? E isso é só a parte que opera no modo núcleo!

A imagem em loop mostra um homem caucasiano com uma blusa branca de chef de cozinha. Ele está apoiando um lápis com a orelha direita e olha incrédulo para alguma coisa.

Fonte: i.gifer.com

Sistema operacional, o herói mascarado

Já discutimos que lidar com a arquitetura de hardware é algo muito trabalhoso, a linguagem de máquina é complexa e, por essa razão, todos os sistemas operacionais fornecem ao usuário um nível de abstração.

Para criar um arquivo, uma foto ou música no seu computador, você não precisa conhecer os pormenores de hardware, mas usa a abstração fornecida para realizar essa tarefa. Dessa maneira, o hardware fica “escondido” nesse processo.

Os sistemas operacionais também fornecem uma série de benefícios, como maior portabilidade das aplicações (possibilidade de uso de uma mesma aplicação em diferentes computadores), e proporcionam o espaço para que as aplicações se dediquem a problemas de alto nível, ou seja, aos problemas que foram designadas para solucionar.

Além disso, só é possível executar múltiplos programas simultaneamente graças ao gerenciamento de recursos do sistema operacional.

O gerenciamento de recursos apresenta a multiplexação, que é o compartilhamento de recursos no tempo e no espaço. Em outras palavras, quando diferentes programas ou mesmo usuários realizam o revezamento no uso de um recurso, esse recurso é multiplexado no tempo.

Um exemplo bem comum de multiplexação no tempo é quando temos várias saídas de impressão em fila e apenas uma impressora, o que ocorre é que haverá uma decisão sobre qual documento será impresso primeiro.

Aimagem em loop mostra um homem branco com camisa social rosa, gravata escura e uma blusa amarela , o personagem Andy da série The Office. Ele está em frente a uma impressora e explicando algo, quando subitamente a impressora começa a fumaçar e uma luz, sugerindo um curto circuito, aparece atrás dela. O homem se assusta e se distancia da impressora.

Fonte: br.pinterest.com

Evolução dos Sistemas operacionais

Com o contínuo avanço da tecnologia, os sistemas operacionais assumiram um papel ainda mais fundamental na nossa vida cotidiana.

Os sistemas operacionais hoje, na 5ª geração de computadores, não se limitam aos desktops, mainframes ou notebooks. Observamos a presença em diferentes dispositivos, como IoT, celulares, até carros autônomos e muitos outros.

Diversas arquiteturas de sistemas operacionais foram criadas para atender a essas demandas especializadas. Vamos conhecer alguns?

Tipos e estruturas de Sistemas operacionais

Assim como existem dispositivos diferentes, também há tipos de sistemas operacionais específicos, com estruturas que se encaixam melhor em determinados computadores. Essas distintas formas de processamento do sistema operacional, estão divididas em monoprogramada e multiprogramada.

Formas de processamento:

  • Monoprogramada ou serial: um único programa na máquina.

    • Exemplo: embarcados.
  • Multiprogramada ou concorrente: é eficiente e apresenta vários programas dentro de um sistema.

    • Exemplo: Linux, Windows, UNIX.

É através das chamadas de sistemas (System Calls) que executamos ou interrompemos os processos. Um exemplo é a chamada mkdir no terminal, que cria um novo diretório.

Agora que compreendemos de forma sucinta como ocorre a atuação dos sistemas operacionais, é interessante observarmos também algumas estruturas que já foram implementadas na prática, são elas: sistema monolítico, sistemas de camadas, micronúcleos, modelo cliente-servidor, máquinas virtuais e exonúcleos.

Dentre os sistemas citados, podemos destacar alguns que usualmente aparecem em nossa rotina:

  • Sistema monolítico: possui um modo núcleo e um modo usuário. “O sistema é escrito como uma coleção de rotinas, ligadas a um único grande programa binário executável” (Tanenbaum, p.44).

    • Exemplos de sistemas operacionais: Linux, UNIX, Windows.
  • Sistemas de camadas: é modular, isso significa que sua forma de operar é através da divisão de funcionalidades que correspondem a uma hierarquia.

    • Exemplos: MULTICS, OpenVMS.
  • Micronúcleo ou microkernel: o objetivo da arquitetura de kernel é atingir alta confiabilidade por meio da divisão do sistema em pequenos módulos, onde apenas um é executado em modo núcleo, o micronúcleo, e o restante funciona em processos comuns.

    • Exemplos: Symbian, MINIX 3
  • Virtual Machine, ou Máquina Virtual: é basicamente a virtualização de um outro sistema dentro do seu sistema operacional, possui uma camada limiar que faz.

    • Exemplo: Máquina Virtual Java.

Os sistemas operacionais são um universo!

Quais os sistemas operacionais mais usados?

Em 2022, a Stack Overflow realizou uma pesquisa abrangente, na qual uma das perguntas feitas era: "Qual é o sistema operacional principal em que você trabalha?"

Na pesquisa realizada, o Windows se destacou como o sistema operacional mais amplamente adotado entre os desenvolvedores, tanto para fins pessoais quanto profissionais. Além disso, constatou-se que sistemas operacionais com base em Linux registraram uma popularidade superior à do macOS.

Para o Windows, 62,33% responderam que optam por uso pessoal, e 48,82% para uso profissional. Já o Linux, 40,23% para uso pessoal e 39,89% profissional.

Confira no gráfico abaixo:

Gráfico de barras com o percentual de utilização de cada sistema operacional, destacando Windows com 62,33% que optam por uso pessoal, e 48,82% para uso profissional. Já o Linux, 40,23% para uso pessoal e 39,89% pessoal na pesquisa realizada pela plataforma Stack Overflow em 2022.

Créditos:Stack Overflow

O Windows é normalmente escolhido para uso pessoal devido à familiaridade prévia das pessoas usuárias , sendo o sistema operacional padrão na maioria dos dispositivos.

Conclusão

Se conhecer circuitos, dispositivos de entrada e saída, monitor, memória, processador, e demais elementos em detalhes fosse requisito para escrever as linhas de código, sem dúvida nenhuma quase nenhum programa seria feito, como esclarece Tanenbaum.

Os sistemas operacionais então, surgem como programas fundamentais para operar diferentes computadores e garantir maior eficiência e experiência para o usuário e usuária.

Neste apanhado geral, conseguimos vislumbrar o que é sistema operacional e o quanto ele é fascinante. Além disso, também foi possível compreender para que serve o sistema operacional e quais os tipos existentes.

Sabemos agora, que a escolha do sistema operacional também está relacionada à sua necessidade e função do seu computador, ou seja: 1) instale diferentes sistemas operacionais (uma máquina virtual já é um excelente começo!); 2) avalie suas funcionalidades e, por fim; 3) estude seus pormenores, pois os sistemas operacionais são realmente impressionantes. E lembre-se, a inteligência e utilidade no uso da tecnologia quem realiza é você!

E você, o que acha? Quais sistemas operacionais já usou?

Compartilhe sua opinião em suas redes sociais e marque a gente!

E então, vamos aprender mais?

Camila Pessôa
Camila Pessôa

Olá, sou a Camila ! Tenho 33 anos, sou mãe e ingressei na área de tecnologia por meio da robótica educacional. Participei do Bootcamp { Reprograma } com foco em Back-End /Node.js e curso Sistemas de Informação.Atualmente faço parte do Scuba-Team e tenho grande paixão por educação e tecnologia, pois acredito que essa combinação é transformadora!

Veja outros artigos sobre Programação