Ementa e critérios de avaliação
O exame será no dia 11 de dezembro.
Notas
Prova1, Prova2, Proj1, Proj2 e exame: Média final
Horário para revisão:
- sexta, 13 de dezembro das 14h às 17h00 na sala 18 do IC-01.
Prova1: gabarito comentado.
Projeto 2
Veja a descrição aqui. Data de entrega: 27 de novembro e 4 de dezembro (com desconto por atraso).
Repositórios e temas
- Bruno Vargas, Rafael Almeida e Jonatan Tiago:
mycall - verifica o estado de um processo.
- Augusto dos Santos e Fabio Sartorato: superuser - atribui privilégios de root ao processo que invoca esta chamada.
- Guilherme Pereira: mycall - retorna informações sobre um processo (tipo de thread, nome e quantidade de páginas em uso).
- Guilherme Henrique, Paulo Vitor e Thiago Pires: forkn - executa n forks de um processo.
- Sergio Rodrigues: kern_buf - armazena e recupera dados de um buffer no espaço de kernel.
- Daniel Scocco: mymemset - chamada de sistema que preenche vetores.
- Arthur Espindola e Felipe Lemes: mkuniquedir - cria um diretório com o número do processo como sufixo.
- Lucas Lustosa, Luis Henrique e Rafael Matias: open_n - abre uma lista de arquivos passada como parâmetro.
- Arthur Alvarez e Pedro Figueiredo: timed_stop - envia um sinal SIGSTOP para um processo após um tempo passado como parâmetro.
- Hélder Lima e Lucas Mageste:
mycall - envia um SIGTERM para um processo e, após um intervalo de tempo, um SIGKILL.
- Marina Calça: criptografia de senhas. Entrega pendente.
- Amadeu e Lucas Tadeu: getccount e getcpid - retornam um contador para um número de filhos e um vetor com os PIDs dos processos filhos.
- Henrique Fischer, André Vitor e Gustavo Rodrigues:
multikill - envia sinal para n processos.
- André Pinheiro, Raphael Elias e Gustavo Bento: forkLimit - limita o número de forks que o sistema pode executar.
- Rafael Gouvêa e Marcelo Abiarraj: imortal - registra processos que não morrerão ao receber SIGKILL.
- Henrique Lima: mycall - atribui prioridade máxima ao processo passado como parâmetro.
- Danilo e Raíssa: mycall - altera o diretório de trabalho, procurando primeira ocorrência do nome passado como parâmetro no caminho atual.
Prova 2
- Data: 13 de novembro.
- Veja a prova de 2006.
- Veja a prova de 2008 e depois o seu gabarito.
- Veja as provas de 2009 e
2010.
- Veja algumas questões e
os slides da aula de
revisão com comentá para resolução da
lista.
Aulas
- Processos e Threads 1: slides, material de apoio
- Processos e Threads 2: slides, material de apoio
- Processos e Threads 3: slides, material de apoio
- Processos e Threads 4: slides, material de apoio
- Produtores e consumidores: slides, material de apoio
- Filósofos famintos: slides, material de apoio
- Locks recursivos: slides, material de apoio
- Barbeiro dorminhoco: slides, material de apoio
- Implementação de futexes: slides
- Leitores e escritores: slides, material de apoio
- Barreiras: slides, material de apoio
- Processos e sinais: slides, material de apoio
- Escalonadores: slides
- Gerência de memória: slides, material de apoio
- Buffer overflow: slides, material de apoio
- Sistemas de arquivos: slides, material de apoio
Projeto 1
O livro The Little Book
on Semaphores, de Allen B. Downey, tem uma excelente lista de
problemas interessantes. Você deve implementar uma animação de um destes problemas que permita:
- Boa visão do estado global da aplicação
- Boa visão das mudanças de estado
- Alteração de parâmetros (permita variar, por exemplo, o número de clientes)
Você deve deixar seu código disponível em um repositório do
tipo github. Os grupos e endereços dos
repositórios deverão ser enviados por email para islene at ic dot
unicamp dot br até o dia 29 de setembro. A data da apresentação do
código é no dia 30 de setembro. A versão do código a ser
considerada deverá estar disponível antes do horário da aula (21h). A
ordem de apresentação dos grupos será decidida por sorteio. Grupos que
não enviarem o endereço do repositório até o dia 29 ou não estiverem
prontos para apresentar no dia 30 terão desconto na nota.
Repositórios e temas
- Bruno Vargas, Rafael Almeida e Jonatan Tiago:
Selvagens
- Augusto dos Santos e Fabio Sartorato: H2O
- Guilherme Pereira: Papai Noel
- Guilherme Henrique, Paulo Vitor e Thiago Pires: Travessia do Rio
- Sergio Rodrigues: H2O
- Daniel Scocco: Filósofos
- Arthur Espindola e Felipe Lemes: Creche
- André Nogueira e André Seiji:
Sushi
- Lucas Lustosa, Luis Henrique e Rafael Matias: H2O
- Arthur Alvarez e Pedro Figueiredo: Selvagens
- Hélder Lima e Lucas Mageste:
H2O
- Marina Calça: Banheiro
- Amadeu e Lucas Tadeu: Sushi
- Henrique Fischer, André Vitor e Gustavo Rodrigues:
Papai Noel
- André Pinheiro, Raphael Elias e Gustavo Bento: Produtores e Consumidores
- Rafael Gouvêa e Marcelo Abiarraj: Papai Noel
- Henrique Lima: Baboon
- Danilo e Raíssa: Fumantes
- André Araújo e João Dalben e Fábio Orsi: Produtor e Consumidor
Prova 1
A prova 1 está chegando! Acho que este material pode ajudar:
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.