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/08Semana 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/08Unidade 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
- 0221/08Unidade 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
- 0328/08Unidade 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
- 0404/09Unidade 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
- 0511/09Unidade 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
- 0618/09Unidade 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
- 0725/09Unidade 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
- 0802/10Avaliaçã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/10Unidade 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
- 1016/10Unidade 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
- 1123/10Unidade 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
- 1230/10Unidade 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
- 1306/11Unidade 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
- 1413/11Unidade 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
- 1527/11Projeto 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/12Projeto 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/12Avaliaçã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 →