Pular para o conteúdo principal

Sistemas Operacionais I

Sobre esta Disciplina

Estudo dos princípios de sistemas operacionais, cobrindo desde a estrutura interna do SO até processos, chamadas de sistema, execução concorrente, sincronização, escalonamento e virtualização.

:::warning Referência oficial do curso Este material é um apoio ao estudo — ele complementa as aulas presenciais e EAD, mas não substitui a leitura do livro-texto oficial da disciplina:

SILBERSCHATZ, Abraham; GALVIN, Peter B.; GAGNE, Greg. Fundamentos de Sistemas Operacionais. 9. ed. Rio de Janeiro: LTC, 2015. ISBN 978-85-216-3001-2.

Consulte sempre o livro para aprofundamento, exemplos completos e exercícios propostos. As seções correspondentes a cada aula são indicadas ao final de cada página. :::


Aulas

#AulaEmenta
01Introdução aos Sistemas OperacionaisO que é um SO, serviços, visões, modelos de kernel, tipos de SO, suporte de hardware a multiprogramação
02Processos: Conceito, Ciclo de Vida e Chamadas de SistemaMultiprogramação, conceito de processo, estados (modelos 2, 5 e 7 estados), chamadas de sistema, prática em C
03Programação Concorrente: Notação e Modelos de ExecuçãoNotação de execução concorrente, fork/join, parbegin/parend
04System Calls: Arquivos, Diretórios e InformaçõesChamadas de sistema para informações, diretórios e arquivos; exercícios de programação
05Execução Concorrente: Problemas e PropriedadesInterleaving, condição de corrida, seção crítica, exclusão mútua, deadlock e starvation
06Sincronização: Mutex, Semáforos e MonitoresSincronizações básicas — mutex, semáforos, monitores, troca de mensagens; fork e fork-exec
07fork, waitpid e execve na PráticaExercícios com fork, waitpid e execve — TDE: exercício de system call com fork/wait
08PCB, Threads e Chaveamento de ContextoBloco descritor de processos, filas, chaveamento de contexto, modelos 1:1 e N:1, prática com pthreads
09Exclusão Mútua: Algoritmos e HardwareDesabilitando interrupções, variáveis lock (spin-lock) e soluções algorítmicas de exclusão mútua
10Problemas Clássicos de SincronizaçãoProdutor/Consumidor e Jantar dos Filósofos — atividade prática
11Memória Compartilhada e IPCMemória compartilhada, semáforos POSIX, IPC — definição do trabalho de programação concorrente
12Escalonamento de ProcessosEscalonamento de longo, médio e curto prazo; algoritmos FIFO, SJF, RR, Filas Múltiplas, Loteria e Fração Justa
13VirtualizaçãoHistórico, abstração × interfaces × virtualização, tipos, implementações, ferramentas e casos de uso
14Sistemas de Tempo RealCaracterização, exemplos, conceitos, propriedades temporais, abordagens da academia e indústria — TDE: questionário
15Revisão Geral do SemestreRevisão estruturada de todos os tópicos: processos, threads, sincronização, IPC, scheduling, virtualização e tempo real

Como Usar Este Material

  1. Siga a ordem das aulas: o conteúdo é incremental — cada aula pressupõe as anteriores.
  2. Use o livro em paralelo: ao final de cada aula há indicações das seções correspondentes no Silberschatz.
  3. Faça os exercícios: a fixação vem da prática; não pule as atividades propostas.

Pré-Requisitos

  • Algoritmos e Programação (preferível ter completado)
  • Compreensão básica de alguma linguagem de programação estruturada