Pular para o conteúdo principal

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ãoPergunta centralAnalogia
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.

AspectoModo Usuário (Ring 3)Modo Kernel (Ring 0)
Quem executaProgramas aplicativosCódigo do SO
Acesso ao hardwareIndireto (via syscall)Direto e irrestrito
Instruções privilegiadasProibidasPermitidas
Crash isola o sistema?Sim — apenas o processo falhaNão — pode derrubar o sistema inteiro
Exemplo realSeu navegador webDriver 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)

TipoCaracterística centralExemplos
BatchSem interação; jobs em filaIBM OS/360
Time-sharingMúltiplos usuários interativos, fatia de tempo (quantum)UNIX original
Tempo realGarantias temporais rígidas (hard) ou flexíveis (soft)VxWorks, FreeRTOS
DistribuídoRecursos de múltiplas máquinas transparentes ao usuárioAmoeba
EmbarcadoHardware dedicado, recursos mínimosAndroid (kernel Linux adaptado)

Exercícios

Questões dissertativas

Q1

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?

Q2

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?

Q3Difícil

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.

Q4

Descreva o papel do programa bootstrap no processo de inicialização do sistema. Onde ele reside e por quê?

Q5

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?

Q6Difícil

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.

Q7

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.

Q8

O que acontece, passo a passo, quando um processo em modo usuário executa uma chamada de sistema como read() no Linux?

Q9

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?

Q10

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.

Thumbnail do vídeo: Introduction to Operating Systems8:18
ENOpcional

Introduction 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.

Thumbnail do vídeo: Basics of OS — Computer System Operation12:06
ENOpcional

Basics 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.

Thumbnail do vídeo: Operating System Structure — Monolithic vs Microkernel10:32
ENOpcional

Operating System Structure — Monolithic vs Microkernel

Neso Academy

Comparação entre arquiteturas de kernel com diagramas. Cobre §2.7 do Silberschatz.

Thumbnail do vídeo: Operating Systems — Full Course (25h)25:00:00
ENAprofundamento

Operating 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.