IFCE Horizonte · Portal
ADS23 · Sistemas Operacionais

ADS23

Encontros

Cada encontro tem slides, roteiro de laboratório e quiz da semana. O roteiro é escrito para você seguir sozinho: cada comando vem com o que é, por que importa e o que esperar na tela.

1ª etapa

07/08 a 08/10Onboarding + Unidades I, II e III
  • S007/08
    Semana 0

    Onboarding de ambiente

    Atividade extracurricular que integra a 1ª etapa: você monta a máquina virtual que vai usar o semestre inteiro. Ao fim do dia, o ambiente está de pé — e a primeira aula não perde tempo com infraestrutura.

    • VirtualBox
    • Ubuntu 24.04 LTS
    • Docker
    • primeiro terminal
    1 arquivo de materialAbrir →
  • 0114/08
    Unidade I — Visão geral e conceitos

    O que é um Sistema Operacional

    As duas coisas que um SO faz: ser uma máquina estendida (esconde a complexidade do hardware) e ser um gerenciador de recursos (decide quem usa o quê, e quando). São os dois óculos que usaremos o curso todo.

    • máquina estendida
    • gerenciador de recursos
    • história dos SOs
    • terminal
    2 arquivos de materialBaseRecorteAbrir →
  • 0221/08
    Unidade I — Visão geral e conceitos

    Hardware e tipos de SO

    O hardware essencial visto de cima (CPU, memória, disco, barramento) e o "zoológico dos SOs". A ponte prática: o /proc, um sistema de arquivos que não existe no disco e expõe o que o núcleo sabe sobre a máquina.

    • CPU e memória
    • barramento
    • zoológico dos SOs
    • /procfs
    2 arquivos de materialBaseRecorteAbrir →
  • 0328/08
    Unidade II — Arquitetura de sistemas operacionais

    Arquiteturas de SO e chamadas de sistema

    Monolítico, camadas, micronúcleo e máquinas virtuais em formato jigsaw — cada grupo vira especialista e ensina os demais. Depois, a fronteira que separa seu programa do núcleo: a chamada de sistema, vista ao vivo com strace.

    • monolítico × micronúcleo
    • jigsaw
    • chamada de sistema
    • strace
    2 arquivos de materialBaseRecorteAbrir →
  • 0404/09
    Unidade II — Arquitetura de sistemas operacionais

    Da virtualização aos containers (Docker)

    Fechamento da Unidade II. Hipervisores tipo 1 e tipo 2, o que a nuvem realmente vende, e o aprofundamento formal do Docker: imagem × container, Docker Hub, Dockerfile e os comandos essenciais.

    • hipervisores
    • nuvem
    • imagem × container
    • Dockerfile
    2 arquivos de materialBaseRecorteAbrir →
  • 0511/09
    Unidade III — Processos

    Processos: conceito, estados e diagnóstico

    Abertura da Unidade III. A diferença entre programa e processo, a anatomia de um processo (PID, memória, estado), os três estados e suas transições, a hierarquia de PPIDs — e as ferramentas de diagnóstico ps e top.

    • processo × programa
    • estados
    • PID e PPID
    • ps · top
    2 arquivos de materialBaseRecorteAbrir →
  • 0618/09
    Unidade III — ProcessosN1 · 1ª etapa

    CPU-bound, I/O-bound e pipes

    Por que dois processos que "consomem 100%" podem ser problemas completamente diferentes. Surtos de CPU × surtos de E/S, o que o escalonador faz com essa informação, e os pipes explicados por dentro.

    • CPU-bound × I/O-bound
    • escalonamento
    • stdin/stdout/stderr
    • pipes
    2 arquivos de materialBaseRecorteAbrir →
  • 0725/09
    Unidade III — Processos

    Concorrência: condição de corrida e exclusão mútua

    O bug mais traiçoeiro que você vai encontrar em código: dois processos leem, calculam e gravam ao mesmo tempo, e o resultado depende de quem chegou primeiro. Região crítica, exclusão mútua e os quatro requisitos de uma boa solução.

    • condição de corrida
    • região crítica
    • exclusão mútua
    • espera ocupada
    2 arquivos de materialRecorteAbrir →
  • 0802/10
    AvaliaçãoN2 · 1ª etapa

    Fechamento da 1ª etapa — defesas

    Dia de defesa, não de conteúdo novo. Cada equipe apresenta o relatório Raio-X do sistema investigado, defende as escolhas em 5–6 minutos e demonstra o container ao vivo.

    • relatório Raio-X
    • defesa oral
    • container ao vivo
    1 arquivo de materialAbrir →

2ª etapa

09/10 a 15/12Unidades IV e VI + projeto integrador
  • 0909/10
    Unidade IV — Memória e E/S

    Memória na prática: consumo, vazamento e OOM

    Abertura da Unidade IV. Como ler o free sem se enganar (available × used), o que é de fato um vazamento de memória, para que serve o swap e quem é o OOM Killer que derruba seu processo de madrugada.

    • espaço de endereçamento
    • vazamento
    • swap
    • OOM Killer
    2 arquivos de materialBaseRecorteAbrir →
  • 1016/10
    Unidade IV — Memória e E/S

    Memória virtual, paginação e limites em container

    O mecanismo que explica por que a máquina "engasga": paginação, page fault (minor × major) e thrashing. E como o cgroups transforma isso num limite prático de container.

    • paginação
    • page fault
    • thrashing
    • cgroups
    2 arquivos de materialRecorteBaseAbrir →
  • 1123/10
    Unidade IV — Memória e E/S

    E/S como fonte de latência

    Fechamento da Unidade IV. As ordens de grandeza da latência (cache → RAM → SSD → HDD → rede), "tudo é arquivo" e o /dev, e a diferença entre partição, sistema de arquivos e ponto de montagem.

    • latência
    • tudo é arquivo
    • /dev
    • lsblk · df · du
    2 arquivos de materialBaseRecorteAbrir →
  • 1230/10
    Unidade VI — Shell scriptPróximoN1 · 2ª etapa

    Shell: comandos, arquivos e coringas

    Abertura da Unidade VI — a competência mais empregável do curso. Onde o shell se encaixa na arquitetura do SO, navegação e manipulação de arquivos, coringas (globbing), find, grep e redirecionamento.

    • globbing
    • find · grep
    • > × >>
    • navegação
    2 arquivos de materialBaseRecorteAbrir →
  • 1306/11
    Unidade VI — Shell script

    Shell script: variáveis, decisões e funções

    De comando solto a programa: shebang e chmod +x, variáveis e substituição de comando, condicionais, laços, funções, código de saída — e a regra das aspas, que evita a maior parte dos bugs de script.

    • shebang
    • $(...)
    • a regra das aspas
    • funções · exit code
    2 arquivos de materialBaseAbrir →
  • 1413/11
    Unidade VI — Shell script

    Automação e lançamento do projeto final

    As três tarefas que todo time de operação automatiza: deploy, backup e monitoramento. As três perguntas de um backup, o cron, permissões e os riscos reais de automação. Aqui o projeto final é lançado.

    • deploy
    • backup
    • monitoramento
    • cron
    2 arquivos de materialBaseAbrir →
  • 1527/11
    Projeto integrador

    Semana de projeto — desenvolvimento

    Aula inteira de mão na massa, com o professor circulando como mentor. Meta do dia: toda equipe sai com o deploy.sh funcionando de ponta a ponta.

    • deploy.sh
    • mentoria
    • trabalho em equipe
    1 arquivo de materialAbrir →
  • 1604/12
    Projeto integrador

    Finalização e ensaio · encontro amortecedor

    Encontro reservado como amortecedor do semestre: absorve conteúdo deslocado por imprevistos. Sem pendências, é dia de fechar o toolkit e ensaiar a apresentação cronometrada.

    • checklist por equipe
    • ensaio cronometrado
    • contingência
    1 arquivo de materialAbrir →
  • 1711/12
    AvaliaçãoN2 · 2ª etapa

    Apresentação final e encerramento

    Cada equipe apresenta o toolkit de automação em ~10 minutos, demonstra ao vivo sobre o container e responde às perguntas. Depois, o encerramento amarra o eixo do curso.

    • toolkit
    • demonstração ao vivo
    • README
    • encerramento
    1 arquivo de materialAbrir →