Aula 01 — Introdução aos Sistemas Operacionais
Objetivos
Ao final desta aula você deve ser capaz de:
- Definir Sistema Operacional segundo as visões de máquina estendida e gerenciador de recursos.
- Listar os serviços essenciais que um SO oferece a programas e usuários.
- Comparar as arquiteturas monolítica e microkernel, identificando vantagens e desvantagens de cada uma.
- Explicar o mecanismo de modo dual (usuário/kernel) e por que ele é o pilar da proteção do sistema.
- Descrever o papel das interrupções na operação do sistema de computação.
Conteúdo
O que é um Sistema Operacional?
Um Sistema Operacional (SO) é o único programa que permanece em execução continuamente no computador — denominado kernel. Tudo o mais é classificado como programa de sistema ou programa aplicativo.
O SO pode ser visto por dois ângulos complementares:
| Visão | Pergunta central | Analogia |
|---|---|---|
| Máquina estendida | "O que o SO oferece?" | O SO esconde a complexidade do hardware, como um motorista que dirige sem conhecer o motor internamente |
| Gerenciador de recursos | "Como o SO arbitra?" | O SO age como um árbitro que distribui CPU, memória e dispositivos de forma eficiente e justa entre os processos concorrentes |
Definição de kernel (Silberschatz, §1.1.3): o kernel é o programa que está em execução o tempo todo no computador; todo o restante é programa de sistema ou aplicativo.
Serviços do Sistema Operacional
O SO oferece um conjunto de serviços tanto para o usuário quanto para o sistema (§2.1):
Serviços orientados ao usuário:
- Execução de programas (carregar e rodar um processo)
- Operações de E/S (abstrair dispositivos físicos)
- Manipulação de sistemas de arquivos
- Comunicação entre processos (memória compartilhada ou troca de mensagens)
- Detecção e tratamento de erros
Serviços orientados ao sistema (eficiência interna):
- Alocação de recursos (quem usa CPU e memória em cada instante)
- Contabilização (registro de uso para faturamento/auditoria)
- Proteção e segurança (impedir que um processo interfira em outro)
Organização do Sistema de Computação
Quando o computador é ligado, o programa bootstrap (armazenado em ROM/EEPROM — também chamado de firmware) inicializa os registradores, controladores de dispositivos e a memória, e então localiza e carrega o kernel na RAM.
A operação contínua do sistema é dirigida por interrupções:
- Interrupção de hardware: um dispositivo envia um sinal elétrico pelo barramento de sistema à CPU.
- Interrupção de software (trap/syscall): um programa executa uma instrução especial que força a CPU a transferir controle ao SO.
Modo Dual de Operação (Hardware vs. Software)
O modo dual é um mecanismo de hardware — implementado pelo processador — não pelo SO em si.
| Aspecto | Modo Usuário (Ring 3) | Modo Kernel (Ring 0) |
|---|---|---|
| Quem executa | Programas aplicativos | Código do SO |
| Acesso ao hardware | Indireto (via syscall) | Direto e irrestrito |
| Instruções privilegiadas | Proibidas | Permitidas |
| Crash isola o sistema? | Sim — apenas o processo falha | Não — pode derrubar o sistema inteiro |
| Exemplo real | Seu navegador web | Driver de disco, escalonador |
Por que isso importa? Sem modo dual, qualquer aplicativo poderia sobrescrever a memória do SO ou enviar comandos arbitrários ao disco — comprometendo todo o sistema. O incidente CrowdStrike de 2024, que paralisou milhões de máquinas Windows, ilustra exatamente o risco de código de segurança rodando em modo kernel com falha.
O bit de modo no registrador de status da CPU indica o estado atual: 0 = kernel, 1 = usuário. Toda interrupção automaticamente força o bit para 0 antes de executar a ISR.
Arquitetura do Kernel: Monolítico vs. Microkernel
Há duas filosofias dominantes de organizar o código do SO (§2.7):
Kernel Monolítico
Todo o SO (gerenciamento de processos, memória, sistema de arquivos, drivers) reside em um único bloco executando em modo kernel.
- Vantagem: alto desempenho (chamadas internas são funções C normais, sem overhead de troca de contexto).
- Desvantagem: um bug em qualquer parte (ex.: driver) pode travar todo o sistema. Manutenção mais complexa.
- Exemplos: Linux, Unix tradicional, MS-DOS.
Microkernel
Apenas as funções absolutamente essenciais ficam no kernel (escalonamento básico, IPC, gerência de memória mínima). Tudo mais (drivers, FS) roda em modo usuário como processos servidores.
- Vantagem: maior isolamento e segurança; um servidor com falha não derruba o kernel.
- Desvantagem: overhead de comunicação por troca de mensagens (IPC) entre servidores.
- Exemplos: MINIX 3, QNX, Mach.
Nota sobre kernels híbridos: Windows NT e macOS (XNU) são frequentemente chamados de híbridos. Na prática, a maior parte dos serviços roda em modo kernel, aproximando-os do modelo monolítico em termos de desempenho — a distinção é principalmente arquitetural.
Tipos de Sistemas Operacionais (§1.11)
| Tipo | Característica central | Exemplos |
|---|---|---|
| Batch | Sem interação; jobs em fila | IBM OS/360 |
| Time-sharing | Múltiplos usuários interativos, fatia de tempo (quantum) | UNIX original |
| Tempo real | Garantias temporais rígidas (hard) ou flexíveis (soft) | VxWorks, FreeRTOS |
| Distribuído | Recursos de múltiplas máquinas transparentes ao usuário | Amoeba |
| Embarcado | Hardware dedicado, recursos mínimos | Android (kernel Linux adaptado) |
Exercícios
Questões dissertativas
Explique a diferença entre as visões de 'máquina estendida' e 'gerenciador de recursos' de um Sistema Operacional. Em qual contexto cada visão é mais útil para o projetista de SO?
Por que o mecanismo de modo dual é classificado como um recurso de hardware e não de software? Quais as consequências práticas dessa distinção?
Compare kernel monolítico e microkernel em termos de desempenho e confiabilidade. Dê um exemplo de situação real onde a escolha da arquitetura faz diferença.
Descreva o papel do programa bootstrap no processo de inicialização do sistema. Onde ele reside e por quê?
Explique a diferença entre uma interrupção de hardware e uma trap (interrupção de software/syscall). Em qual ponto do ciclo de execução da CPU cada uma é verificada?
Um programador afirma que poderia implementar proteção entre processos usando apenas software, sem suporte de modo dual no hardware. Avalie criticamente essa afirmação.
Liste e explique brevemente cinco serviços que um SO típico oferece. Para cada serviço, identifique se ele beneficia primariamente o usuário/aplicativo ou a eficiência interna do sistema.
O que acontece, passo a passo, quando um processo em modo usuário executa uma chamada de sistema como read() no Linux?
Compare os sistemas operacionais batch e time-sharing quanto ao modelo de interação com o usuário, utilização de CPU e tempo de resposta. Em que contexto cada um é mais adequado?
Qual a diferença prática entre um sistema operacional de tempo real 'hard' e 'soft'? Dê um exemplo de aplicação para cada categoria e explique por que a distinção importa.
Referências
Principais (essenciais)
- SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de Sistemas Operacionais. 9. ed. LTC, 2015.
- Seções: 1.1, 1.2, 1.3, 1.4, 1.5, 1.11, 2.1, 2.2, 2.3, 2.4, 2.5, 2.7, 2.10, 6.6
Aprofundamento (opcionais)
- TANENBAUM, A. S. Sistemas Operacionais Modernos. 4. ed. Pearson, 2016. Cap. 1.
- STALLINGS, W. Operating Systems: Internals and Design Principles. 9. ed. Pearson, 2018. Cap. 1–2.
- Linux Kernel Documentation — Introduction (em inglês).
Recursos Complementares
Opcional — Vídeos selecionados para reforçar os conceitos desta aula.
8:18Introduction to Operating Systems
Neso Academy
Introdução clara ao conceito de SO, papel do kernel e visão geral dos serviços. Segue de perto o Silberschatz.
12:06Basics of OS — Computer System Operation
Neso Academy
Organização do sistema de computação, bootstrap, interrupções e ciclo de operação — corresponde à Seção 1.2 do livro.
10:32Operating System Structure — Monolithic vs Microkernel
Neso Academy
Comparação entre arquiteturas de kernel com diagramas. Cobre §2.7 do Silberschatz.
25:00:00Operating Systems — Full Course (25h)
freeCodeCamp.org
Curso completo de 25 horas cobrindo todos os tópicos da disciplina. Use como referência ao longo do semestre, não apenas nesta aula.