Galho Sistemas Operacionais (conceitual) — design e plano
Contexto
TERCEIRO galho da Camada B (depois de Paradigmas e Concorrência, COMPLETOS 2026-06-18). Galho 9 do roster: “Sistemas Operacionais — processos, threads, scheduling, memória virtual, I/O, filesystems. (não colide com Infraestrutura, que é usar o SO, não a teoria) (parcial)“. Conteúdo NOVO (sem monólito). Roster de 14 notas aprovado pelo usuário em 2026-06-18, com CAPRICHO NÍVEL ED (teto de prosa generoso, muitos diagramas, e showcase comparativo de SOs reais — Linux/Windows/macOS — onde ilumina).
Decisão de fronteira (rígido)
- Infraestrutura (
03-Dominios/Tecnologia/Infraestrutura/: Linux, Docker, K8s, WSL) = USAR o SO. ESTE galho é a TEORIA. Linka[[03-Dominios/Tecnologia/Infraestrutura/Linux|Linux]]/[[Infraestrutura]]pro concreto. - Concorrência e Paralelismo (galho recém-feito) = threads/scheduling pelo ângulo de SINCRONIZAÇÃO e
modelos. ESTE galho faz o ângulo de MECANISMO DO KERNEL (PCB/TCB, troca de contexto por dentro, algoritmos
de scheduler). As notas 04 (threads) e 09 (IPC) linkam
[[Concorrência e Paralelismo]], não duplicam. - JVM (
03-Dominios/Tecnologia/Java/JVM/index) = memória/GC do runtime gerenciado. A nota de memória virtual linka pro paralelo (o GC vê memória virtual; o managed heap). - Banco de Dados — buffer pool, WAL, fsync têm paralelo FORTE com page cache / journaling / durabilidade
do SO. A nota 08 e a 12 linkam
[[Banco de Dados]](o paralelo é didático, não duplicação). - Redes — sockets e I/O não-bloqueante. Notas 09/10 linkam
[[Redes e Protocolos]]. - Segurança Conceitual (futuro galho, Camada D) — anéis de proteção, modo privilegiado a fundo, cripto. Mencionar proteção/modo-kernel em PROSA; primitivas de segurança ficam pro futuro galho, SEM wikilink.
Roster de notas (14)
Iniciado — o que o SO é e suas abstrações
- O que é um sistema operacional (âncora) — as duas visões (gerenciador de recursos × máquina estendida/abstração de Tanenbaum); kernel × user space; modo kernel × modo usuário (anéis de proteção em prosa); por que existe (multiplexar hardware, proteger, abstrair); monolítico × microkernel × híbrido.
- System calls e a fronteira kernel/usuário — a interface (a “API do SO”); trap/interrupção/exceção; a
transição user→kernel e seu custo; exemplos (
read/write/fork/mmap); libc como wrapper; strace. - Processos — o que é (PCB, espaço de endereço: text/data/heap/stack), criação (
fork/exec, copy-on-write), estados (new/ready/running/blocked/terminated), hierarquia, zumbis/órfãos, sinais (intro). Showcase fork×CreateProcess. - Threads na ótica do SO — kernel threads × user threads, modelo 1:1 / M:N, TCB, compartilham espaço de endereço; por que threads são “leves”. Linka Concorrência e Paralelismo (sincronização/modelos).
Adepto — escalonamento e memória
- Escalonamento de CPU — preemptivo × cooperativo; algoritmos (FCFS, SJF/SRTF, round-robin, prioridade, MLFQ); métricas (turnaround, waiting, response, throughput); o dilema fairness×latência×throughput; o CFS do Linux (e EEVDF moderno). Showcase Linux CFS × Windows priority.
- Memória: do endereço lógico ao físico — abstração de memória, relocação, espaço de endereço, proteção; alocação contígua, fragmentação (interna/externa); segmentação; a ponte pra paginação.
- Memória virtual e paginação — páginas/frames, page table (multinível), MMU, TLB, page fault, demand paging; por que VM existe (isolamento + ilusão de memória grande + overcommit); mmap/memória compartilhada.
- Substituição de páginas e thrashing — FIFO, LRU, clock/second-chance, optimal/Belady (e a anomalia de Belady); working set, thrashing, swap; o page cache. Linka Estruturas de Dados (LRU) e Banco de Dados (buffer pool — o mesmo problema).
- Comunicação entre processos (IPC) — pipes, named pipes, sockets (Unix domain), shared memory, message queues, sinais; síncrono × assíncrono. Linka Concorrência e Paralelismo (troca de mensagens) e Redes e Protocolos (sockets).
Magus — I/O, arquivos e o resto
- I/O e o subsistema de entrada/saída — device drivers, interrupção × polling, DMA; blocking ×
non-blocking × async I/O (select/poll/epoll/io_uring); buffering; por que I/O domina latência. Linka o
event loop de
[[Concorrência e Paralelismo]]e[[Redes e Protocolos]]. - Sistemas de arquivos — arquivos/diretórios/inodes, alocação (contígua/encadeada/indexada), metadados,
hard × soft links, montagem, VFS; o caminho de um
open/read. Showcase ext4 × NTFS × APFS. - Journaling, consistência e durabilidade — o problema da escrita interrompida; journaling (ext4),
copy-on-write FS (ZFS/Btrfs/APFS),
fsync/write-back, o page cache e a durabilidade. Linka Banco de Dados (WAL — paralelo direto). Mostra que SGBD e FS resolvem o MESMO problema. - Virtualização e containers (conceitual) — VM (hypervisor tipo 1 × 2, paravirtualização) × containers (namespaces + cgroups + chroot/pivot_root); o que o KERNEL fornece pro Docker; isolamento × overhead. Linka Infraestrutura (Docker/K8s) — a fronteira teoria×uso.
- Capstone: SO em entrevista — o SO em system design e debugging (o método de rastrear “por que está lento?”: CPU? page fault/swap? context switch? I/O wait? lock?); ferramentas (top/vmstat/strace/perf em prosa); “How to explain in English”; vocabulário PT→EN; armadilhas; recursos.
Padrão por nota (CAPRICHO NÍVEL ED)
- PT-BR, registro Feynman (analogias, perguntas retóricas, callouts, frases curtas, resumo em 1 linha).
- Teto de prosa generoso (2400); alvo substancial ~360–500 ln. Código/exemplos não contam.
- 4–6 diagramas Mermaid por nota onde ajudam, cada um com lead-in + “leitura do diagrama”. Excelentes:
flowchart(camadas do SO, transição syscall, page table/MMU, VFS, hypervisor×container),stateDiagram-v2(estados do processo),sequenceDiagram(syscall trap, page fault handling, DMA, fork/exec), tabelas (algoritmos de scheduling, FS comparados). Semxychart-beta. Símbolos LITERAIS na prosa; entidades HTML SÓ em rótulos Mermaid entre aspas. - Showcase comparativo de SOs reais (a assinatura ED deste galho): onde ilumina, comparar Linux × Windows × macOS (ex.: fork×CreateProcess, CFS×priority scheduler, ext4×NTFS×APFS, epoll×IOCP×kqueue). Não em toda nota — só onde a divergência ensina.
- Seção final “Em entrevista” — frases EN + vocabulário PT→EN. (Tema é “parcial” em entrevista, mas mantém.)
- Fontes verificadas na web (WebSearch); callout
> [!info] Lastro. Canônico: Tanenbaum Modern Operating Systems, Silberschatz Operating System Concepts, OSTEP (Arpaci-Dusseau, gratuito). - Atomicidade: linka vizinhas.
NN - Título.mdflat.publish: falsenas notas;publish: truesó no index. - NUNCA fabricar experiências/dados do usuário — galho teórico, sem monólito; cenários genéricos e
exemplos canônicos (jantar dos filósofos NÃO — isso é Concorrência; aqui: o shell, o
ls, o page fault).
Tronco e MOC
- Pasta
03-Dominios/Ciência/Sistemas Operacionais/comindex.md(MOC,type: moc,status: growing,publish: true, fases, rotas, dataview, “Veja também”). - Alias do index: “Sistemas Operacionais” + “Sistema Operacional” + “SO” + “Operating Systems”.
- Entra no MOC do domínio em
Fundamentos/index.mdeFundamentos.md(seção nova ou junto de Concorrência).
Convenções de execução
- Subagent-driven, um por nota, UMA chamada Write, house-style completo no prompt (depth front-loaded — os subagentes fazem undershoot sistemático; prever 2ª passada de enriquecimento nos floors por fase).
- Disparar por fase (Iniciado 1–4, Adepto 5–9, Magus 10–14). Commits direto na main, SEM push, SEM Co-Authored-By.
Sequência de construção
- Scaffold
Sistemas Operacionais/index.md+ aliases. Commit. - Notas por fase, uma por subagente; enriquecer floors. Commit por fase.
- MOCs do domínio. Checar armadilhas + NN-links + alvos externos. Atualizar memória (SO COMPLETO). Próximo na Camada B: Teoria da Computação (10) + Matemática para Computação (11).