O que você vai aprender
Explicar as funções do SO como gerente de recursos e máquina estendida.
Relacionar o ciclo de instrução e os modos de operação da CPU ao papel do SO.
Distinguir SO de propósito geral, embarcado e de tempo real.
Reconhecer como o hardware (bit de modo, timer, barramento) sustenta a proteção do SO.
Por que existe um sistema operacional?
Imagine programar um carro autônomo lendo sensores e acionando motores sem nenhuma camada intermediária: você teria de conhecer o endereço físico de cada registrador de cada dispositivo, repetir esse código em cada aplicação e garantir, sozinho, que dois programas não corrompam a mesma memória.
O sistema operacional nasce exatamente para resolver isso: ele esconde a complexidade do hardware e arbitra o acesso aos recursos. Sem SO, cada programa seria também um driver, um escalonador e um gerente de memória.
- Você abre um arquivo — não move a cabeça de leitura do disco.
- Você cria uma thread — não programa o timer da CPU.
- Você envia um pacote — não toca no controlador Ethernet.
O que veremos nesta aula
Esta aula estabelece o vocabulário do curso inteiro. Percorreremos:
do SO→Ciclo de
instrução→Modos
da CPU→Tipos
de SO
O fio condutor é a fronteira entre software e metal: tudo o que o SO faz depende de mecanismos de hardware — e quase tudo o que o hardware oferece de proteção só faz sentido por causa do SO.
Definição de sistema operacional
Duas visões complementares coexistem nessa definição: a de cima para baixo (o que o SO oferece ao programador) e a de baixo para cima (como o SO administra o hardware).
Máquina estendida e gerente de recursos
O SO desempenha dois papéis ao mesmo tempo:
- Máquina estendida (top-down): oferece abstrações — arquivos em vez de setores, processos em vez de registradores, sockets em vez de quadros Ethernet. O hardware fica escondido atrás de uma interface limpa.
- Gerente de recursos (bottom-up): multiplexa CPU, memória e dispositivos entre vários programas, decidindo quem usa o quê e quando, de forma justa e protegida.
Esses papéis às vezes brigam: dar mais CPU a um processo interativo (boa abstração) pode prejudicar a vazão global (gerência de recursos). Equilibrar isso é tema recorrente do curso.
A mesma operação, com e sem SO
| Tarefa | Sem SO (bare metal) | Com SO |
|---|---|---|
| Ler um sensor | Ler registrador no endereço fixo do periférico | read() em um descritor de dispositivo |
| Guardar dado | Escrever em setor específico do meio | write() em um arquivo |
| Esperar 10 ms | Programar o timer e fazer busy-wait | nanosleep(): o SO bloqueia e acorda a tarefa |
| Rodar 2 tarefas | Você intercala manualmente | O escalonador alterna entre elas |
Passo a passo: do interruptor ao hardware
O ciclo de instrução
fetch→Decodifica
decode→Executa
execute→Verifica
interrupções
Onde o SO entra no ciclo
O SO não roda "em paralelo" à CPU: ele é apenas mais código que a CPU executa. A janela de oportunidade do SO é a etapa final do ciclo — a verificação de interrupções.
Quando o timer dispara uma interrupção, a CPU termina a instrução atual, salva o mínimo de contexto e desvia para o código do SO. É assim que o SO retoma o controle periodicamente mesmo enquanto um programa de usuário roda. Sem esse mecanismo de hardware, um programa que entrasse em laço infinito travaria a máquina para sempre.
O SO como administração do prédio
Os dois modos de operação
| Aspecto | Modo usuário | Modo núcleo/supervisor |
|---|---|---|
| Privilégio | Restrito | Total |
| Instruções privilegiadas | Bloqueadas (geram exceção) | Permitidas |
| Acesso a dispositivos | Indireto (via syscall) | Direto |
| Quem roda aqui | Aplicações | O kernel |
Quem protege o SO dos programas?
instrução privilegiada→Hardware vê
modo usuário→Gera
exceção→SO assume
e trata
Por que dois modos não bastam às vezes
A arquitetura x86 oferece quatro rings de privilégio (0 a 3), mas a maioria dos SOs usa apenas o ring 0 (kernel) e o ring 3 (usuário). Os rings intermediários quase não são usados na prática.
A virtualização acrescentou outra camada: um hipervisor roda em um nível ainda mais privilegiado (ex.: VMX root na Intel), abaixo do kernel. Em ARM, há níveis de exceção EL0 (app), EL1 (kernel), EL2 (hipervisor) e EL3 (firmware seguro). Em microcontroladores simples, porém, pode haver um único modo — todo código roda privilegiado.
Verifique seu entendimento
Um programa de usuário tenta executar a instrução que desabilita interrupções. O que acontece?
Embarcado real: a ECU de um carro
Uma ECU (Engine Control Unit) automotiva é um computador embarcado típico: microcontrolador com dezenas a centenas de KB de RAM, sem disco, sem teclado. Ela lê sensores (rotação, temperatura, oxigênio) e comanda injeção e ignição em prazos da ordem de microssegundos.
Nela costuma rodar um RTOS (ou nem isso — bare metal com loop principal e interrupções). Não há fragmentação de memória dinâmica, não há paginação para disco, e a previsibilidade vale mais que a vazão média. É o oposto de um servidor de propósito geral.
Confusões frequentes
• Achar que o SO "roda o tempo todo em paralelo" — ele só executa quando uma interrupção ou syscall o invoca.
• Confundir modo núcleo com "ser o administrador/root" — privilégio de modo é de hardware; root é um conceito de permissão do SO.
• Pensar que todo SO tem proteção usuário/núcleo — muitos embarcados não têm.
Como estudar SO de forma eficaz
Revele a resposta
Por que um RTOS embarcado às vezes dispensa o modo usuário?
Revisão relâmpago
Para onde isso leva
Os conceitos desta aula reaparecem o curso inteiro:
- O modo núcleo reaparece na Aula 2 (kernel) e na Aula 2/10 (interrupções e drivers).
- A verificação de interrupções sustenta a preempção no escalonamento (Aula 5).
- Os tipos de SO definem por que o tempo real (Aulas 5–6) e os embarcados são tratados à parte.
Resumo da aula
Atividade em grupo · Mapeando SOs reais
Em trios, investiguem três sistemas operacionais de categorias diferentes e apresentem em 5 minutos.
Roteiro
- Escolham um SO de propósito geral, um embarcado e um RTOS.
- Para cada um: que hardware ele roda? Qual o tamanho aproximado de memória exigido?
- Identifiquem onde o modo usuário/núcleo aparece (ou não) em cada um.
- Montem 3 slides e apresentem.
Mini-quiz · Aula 1
20 questões sobre esta aula. Escolha e veja a explicação na hora.
📌 Resumo — leve isto para a prova
- O SO é gerente de recursos e máquina estendida entre hardware e aplicações.
- A CPU executa o ciclo busca→decodifica→executa→verifica interrupções.
- O modo usuário/núcleo, definido em hardware, protege o SO.
- SOs dividem-se em propósito geral, embarcado e tempo real.
- O timer e o vetor de interrupções permitem ao SO retomar o controle.