Ementa e Plano de Ensino
A Disciplina na FGA
Fundamentos de Sistemas Operacionais (código FGA-201286) é uma disciplina obrigatória do 5º semestre do curso de Engenharia de Software da Faculdade UnB Gama (FGA), Universidade de Brasília.
No currículo de 2008 (quando Marco cursou), Sistemas Operacionais era optativa. Com a reforma curricular de 2016, tornou-se obrigatória — um reconhecimento de que engenheiros de software precisam entender a camada que roda por baixo de tudo que constroem.
Ficha da Disciplina
Disciplina: Fundamentos de Sistemas Operacionais
Código: FGA-201286
Departamento: FGA — Faculdade do Gama
Créditos: 4 (2 Teóricos + 2 Práticos)
Carga horária: 60 horas (15 semanas × 4h/semana)
Semestre: 5º (obrigatória)
Pré-requisito: Fundamentos de Arquitetura de Computadores (FGA-193674)
Professores que já ministraram:
• Prof. Bruno César Ribas (brunoribas.com.br/so/)
• Prof. Tiago Alves da Fonseca
• Prof. Ivan Saboia
Ementa Oficial
A ementa oficial, extraída do Projeto Pedagógico de Curso (PPC 2016, páginas 289-290):
- Princípios e características dos sistemas operacionais — Conceitos, estrutura, chamadas ao sistema
- Gerência de processos e threads — Escalonamento, concorrência, deadlock
- Gerência de memória — Monoprogramação × multiprogramação, memória virtual, paginação, algoritmos de substituição, segmentação
- Gerência de dispositivos de E/S — Princípios de hardware e software, discos, relógios
- Sistemas de arquivos — Arquivos, diretórios, gerenciamento de espaço em disco, consistência
- Segurança e proteção — Criptografia, autenticação, ataques, mecanismos de proteção
- Virtualização
Cronograma Semestral
Baseado nos planos de ensino do Prof. Bruno Ribas (2019-2022), a distribuição típica de 15 semanas:
Semana Tópico Nosso Módulo
────── ──────────────────────────────────────── ────────────
1 Introdução: o que é um SO, modo Módulo 1
usuário vs kernel, chamadas de sistema
2 Gerência de Processos: conceito, Módulo 2
estados, criação, PCB
3 Threads, modelos de threading Módulo 2
4 Concorrência: exclusão mútua, Módulo 3
semáforos, monitores
5 Deadlock: condições, prevenção, Módulo 3
detecção
─── P1 (Prova 1) ───
6 Escalonamento de CPU: FIFO, SJF, Módulo 3
Round-Robin, MLFQ
7 Gerência de Memória: espaços de Módulo 4
endereçamento, monoprogramação
8 Memória Virtual: paginação, Módulo 4
page tables, TLBs
9 Algoritmos de substituição: FIFO, Módulo 4
LRU, Clock, thrashing
10 Segmentação, fragmentação
─── P2 (Prova 2) ───
11 Sistemas de Arquivos: conceitos, Módulo 5
atributos, operações
12 Diretórios, permissões, links Módulo 5
13 Implementação de FS: alocação, Módulo 5
inodes, journaling
14 Gerência de E/S: drivers, DMA, (Módulo 6)
discos
15 Virtualização e Segurança (Módulo 7)
─── P3 (Prova 3) ───
Bibliografia
Bibliografia básica (oficial do PPC):
- SILBERSCHATZ, A.; GAGNE, G.; GALVIN, P.B. Operating System Concepts. Wiley, 8ª ed., 2008.
- TANENBAUM, A.S. Sistemas Operacionais Modernos. Pearson, 3ª ed., 2010.
- DEITEL, H.M.; DEITEL, P.J.; CHOFFNES, D.R. Sistemas Operacionais. Prentice Hall, 3ª ed., 2005.
Referências complementares que usamos neste curso:
- ARPACI-DUSSEAU, R.; ARPACI-DUSSEAU, A. Operating Systems: Three Easy Pieces (OSTEP). Disponível gratuitamente em ostep.org.
- Código-fonte do xv6 (MIT) — sistema operacional didático em RISC-V.
- Documentação do kernel Linux — para exemplos do mundo real.
No harness.os
Este curso não é apenas teórico — cada conceito será aplicado diretamente no harness.os, o sistema que Marco está construindo. A tabela abaixo mostra como os módulos do curso mapeiam para componentes reais:
Tópico FGA Equivalente no harness.os
──────────────────────────── ─────────────────────────────────────────
Processos e estados Sessões de agente (pending→active→completed)
Threads e concorrência Agentes paralelos no orchestrator
Escalonamento de CPU Priorização de requests, token budget
Memória virtual Context window, prompt cache (5min TTL)
Paginação / substituição Quais knowledge chunks carregar/evictar
Sistemas de arquivos Scale 1 = filesystem-based harness
Diretórios e permissões Estrutura de pastas do harness, access control
E/S e drivers MCP tools como device drivers
Virtualização Harness instances como VMs isoladas
Segurança API keys, governance concern
Cada aula termina com uma seção "No harness.os" que faz essa ponte. O homework pede para você identificar, analisar, melhorar ou construir algo no harness.os usando o conceito aprendido.
Método de Avaliação
Na FGA, a avaliação típica do Prof. Bruno Ribas usa peso progressivo:
MF = (1×P1 + 2×P2 + 3×P3 + Listas + 2×T1) / 9
Onde:
P1, P2, P3 = Provas (peso crescente — você melhora ao longo do semestre)
Listas = Exercícios no CD-MOJ (juiz online da UnB)
T1 = Trabalho prático
Conceitos:
SS (90-100) | MS (70-89) | MM (50-69)
MI (30-49) | II (1-29) | SR (0)
Frequência mínima: 75%
No nosso curso, usamos quizzes ao final de cada aula e o homework aplicado ao harness.os como avaliação contínua. O importante não é a nota — é entender o conceito bem o suficiente para aplicá-lo.
Homework
- Leia a ementa oficial no PPC (link nas referências) e compare com os módulos que temos aqui. O que falta? O que adicionamos?
- Visite o site do Prof. Bruno Ribas (
brunoribas.com.br/so/) e explore um plano de ensino real. Como a distribuição de semanas se compara ao nosso cronograma? - No harness.os, identifique qual módulo deste curso você acha que terá mais impacto direto no seu trabalho diário. Justifique em 2-3 frases.
Resumo
Verifique seu entendimento
Quantos créditos tem a disciplina de Fundamentos de SO na FGA?
- FGA-201286: disciplina obrigatória do 5º semestre de Engenharia de Software
- 4 créditos, 60 horas, pré-requisito: Arquitetura de Computadores
- Ementa cobre: princípios de SO, processos, memória, E/S, arquivos, segurança, virtualização
- Semestre dividido em 15 semanas com 3 provas progressivas
- Bibliografia principal: Silberschatz, Tanenbaum, complementada por OSTEP
- Cada módulo do nosso curso mapeia para um componente real do harness.os