MC504 - Sistemas Operacionais
Primeiro Semestre de 2016
Notas
Veja a tabela com as médias finais, incluindo as notas das provas, projetos opcionais, seminários e exame. Veja as tabelas publicadas anteriormente: notas da prova1, notas da prova 2, notas da prova 3 e médias parciais.
Critério de Avaliação
Veja o Programa de Desenvolvimento da Disciplina.
Projeto final
Siga as instruções para a escolha dos temas e datas.
Como ponto de partida para projetos com kernel Linux veja estas implementações bem simples de sistemas de arquivos.
Leitura complementar
Aulas
- Introdução: slides, pacote targz, material de apoio
- Threads: slides, pacote targz, material de apoio
- Pilhas de execução: slides,pacote targz, material de apoio
- Exclusão mútua: slides, pacote targz, material de apoio
- Exclusão mútua para N threads: slides, pacote targz, material de apoio
- Semáforos e os Filósofos Famintos: slides, pacote targz, material de apoio
- Barbeiro dorminhoco: slides, pacote targz, material de apoio
- Produtores e consumidores; primitivas de sincronização: slides, pacote targz, material de apoio
- Mutex locks e variáveis de condição: slides, pacote targz, material de apoio
- Barreiras: slides, pacote targz, material de apoio
- Leitores e escritores: slides, pacote targz, material de apoio
- Processos e Sinais: slides, pacote targz, material de apoio
- Gerência de memória: slides, pacote targz, material de apoio
- Chamadas de sistema: slides, material de apoio. Veja também a descrição do experimento.
- Sistemas de arquivos: slides, pacote targz, material de apoio
- Escalonamento de processos: slides
- Buffer overflow: slides, pacote targz, material de apoio
Provas
Prova 1
Conteúdo:
- Conceitos de processos, threads e espaço de escalonamento.
- Conceitos de concorrência, exclusão mútua, deadlock, starvation, progresso.
- Análise de propriedades em códigos multithread.
- Implementação de códigos multithread.
- Semáforos
Você pode conferir as questões de provas anteriores. Como nestes semestres foram realizadas apenas duas provas, o conteúdo cobrado não é o mesmo. Verifique as questões indicadas.
1s2006 (questões 1, 2 e 3), 1s2008 (questões, 1, 2, 3 e 4), 2s2013 (questão 1), 1s2014 (questão 2) e 2s2014 (questão 1).
Prova 2
Conteúdo:
- Conteúdo da prova 1 e
- Uso de operações atômicas em algoritmos para sincronização de processos;
- Mutex locks e variáveis de condição
- Locks recursivos, barreiras e locks de leitura e escrita;
- Sinais sincronos e assíncronos; tratamento de sinais.
Você pode tentar resolver todas as questões da prova 1 dos semestres anteriores:
1s2006, 1s2008, 1s2009, 1s2010, 2s2013, 1s2014 e 2s2014.
Prova 3
Conteúdo:
- Chamada de sistemas
- Gerenciamento de memória
- Sistemas de arquivos
- Escalonamento
- Buffer overflow
Você pode tentar resolver todas as questões da prova 2 dos semestres anteriores:
1s2006, 1s2008, 1s2009, 1s2010, 2s2013, 1s2014 e 2s2014.
Projetos
Você já pode registrar seu grupo nesta wiki
Animação multithread (opcional)
Escreva uma animaço em ASCII para o algoritmo da padaria versão branoco e preto ou o algoritmo Fast Mutual Exclusion Lock (veja aula05). Sua animação deve ter uma boa representação do estado global da aplicação e dos passos do algoritmo.
- Bônus: 1.0 ponto na prova 1.
- Entrega via Moodle até dia 30 de março. Envie o código, um arquivo Makefile e um arquivo texto explicando a animação.
Experimento com chamada de sistemas (opcional)
Veja as instruções.