MC504 - Sistemas Operacionais
Primeiro Semestre de 2014
Notas
- Veja as notas finais incluindo as notas da Prova 1, Prova 2, Projetos 1, 2 e 3 e a nota do exame.
- Como inicialmente estavam previstos dois projetos de Linux, a nota de projetos será calculada como o máximo entre:
ou
Ementa e critérios de avaliação
Prova 2
Provas anteriores:
Prova 1
Provas anteriores:
Projetos
Projeto 3: Drivers no Linux
- Aula do dia 29 de maio no laboratório. Aquecimento com o Null driver.
- Aula do dia 05 de junho no laboratório. Testes com um Driver de caracteres com caracteres.
- Seu driver deverá implementar uma funcionalidade de brinquedo (por exemplo, armazenar dados criptografados) e ter alguns parâmetros controlados por ioctl. Você deverá também escrever uma aplicação que teste o seu driver. A entrega e apresentação será nos dias 24 e 26 de junho.
- A entrega deverá seguir o padrão dos outros
projetos. Deverá ser disponibilizado o código do
driver em repositório github ou bitbucket, acompanho de um
pequeno texto explicativo. Pelo menos um membro do grupo
deverá apresentar o projeto para a professora.
- Atendendo a pedidos haverá mais duas datas de entrega
sem desconto na nota:
- 3 de julho; apresentação nos
laboratórios 302 e 303 do IC-03.
- 10 de julho (para quem não depende da nota do Proj 3
para ser aprovado na disciplina); apresentação a
partir das 16h30 no laboratório 304 do IC-03.
Aulas
- Introdução: slides, material de apoio
- Processos e Threads: introdução: slides, material de apoio
- Processos e Threads: condição de corrida: slides, material de apoio
- Processos e Threads: exclusão mútua para N threads: slides, material de apoio
- Processos e Threads: algoritmo da padaria, primitivas de sincronização e o problema do produtor-consumidor: slides, material de apoio
- O problema dos Filósofos Famintos: slides, material de apoio
- Processos e Threads: mutex locks, variáveis de condição e locks recursivos slides, material de apoio
- Barreiras: slides, material de apoio
- Processos e sinais: slides, material de apoio
- Leitores e escritores: slides, material de apoio
- Processos e sinais: slides, material de apoio
- Gerência de memória: slides, material de apoio
- Buffer overflow: slides, material de apoio
- Sistemas de arquivos: slides, material de apoio
- Escalonadores: slides
- Chamada de sistema (com implementação): slides, material de apoio
- Entrada/saída e pipes: slides, material de apoio
Referências
- Modern
Operating Systems Andrew Tanenbaum, terceira edição, Pearson.
- The Little Book on
Semaphores, de Allen B. Downey. Livro livre (e gratuito!) sobre
semáforos e problemas de sincronização.
-
Undestanding the Linux Kernel, Daniel P. Bovet; Marco
Cesati. O'Reilly Media, Inc. Terceira Edição. Acesso livre a partir das máquinas da Unicamp.
-
Futex are tricky. Ulrich Drepper. Red Hat.
- Hubertus Franke, Rusty Russell, Matthew Kirkwood, Fuss,
futexes and furwocks: Fast Userlevel Locking in Linux, Ottawa
Linux Symposium 2002.