====== CI-1215 - Cronograma 2020/2 (ERE3) ====== * As atividades indicadas com :!: serão avaliadas (valem nota). * Os projetos **podem ser feitos em duplas**. * Entrega até o final da semana seguinte à semana de anúncio, usando o [[http://moodle.c3sl.ufpr.br|Moodle]]. * Somente projetos apresentados/defendidos terão suas notas consideradas. * Leia com atenção as [[teaching:Regras das Atividades de Laboratório]]. Links úteis: * [[https://bbb.c3sl.ufpr.br/b/car-chu-evg|Sala de aula online]] (BBB do DINF/UFPR) * [[socm:start|Livro-texto da disciplina]] ---- === Regras de avaliação === A média final (M) da disciplina é calculada pelas notas dos projetos solicitados (entre 0 e 100), da seguinte forma: M = (P0 + P4 + P6 + P9 + P12) / 5 + P13 / 5 ---- === Semana 1: 03/5 a 07/5 === Encontros: * 04/5 17:30 - Apresentação da disciplina * 06/5 17:30 - Encontro semanal Conteúdo teórico: * Cap 01 - Conceitos básicos * Cap 02 - Estrutura de um SO * Cap 03 - Arquiteturas de SOs Material complementar: * [[http://www.minix3.org/docs/login-2007.pdf|Artigo sobre o Minix 3 (microkernel)]] * [[http://queue.acm.org/detail.cfm?id=2566628|Unikernels]] * [[https://www.cs.vu.nl/~ast/Publications/Papers/computer-2006a.pdf|Can We Make Operating Systems Reliable and Secure?]] (discussão sobre isolamento de //drivers//) Laboratório: * Visão geral do [[PingPongOS]] * P0: [[Biblioteca de filas]] :!: (entrega até 16/5) ---- === Semana 2: 10/5 a 14/5 === Encontros: * 11/5 17:30 - Encontro semanal Conteúdo teórico: * Cap 04 - O conceito de tarefa * Cap 05 - Implementação de tarefas Material complementar: * Exemplos: [[Criação de processos]] * Exemplos: [[Criação de threads]] * [[unix:Gestão de processos]] Laboratório: * P1: [[Trocas de contexto]] * P2: [[Gestão de tarefas]] ---- === Semana 3: 17/5 a 21/5 === Encontros: * 18/5 17:30 - Encontro semanal Conteúdo teórico: * Cap 06 - Escalonamento de tarefas Laboratório: * P3: [[Dispatcher]] * P4: [[Escalonador por prioridades]] :!: (entrega até 30/5) ---- === Semana 4: 24/5 a 28/5 === Encontros: * 25/5 17:30 - Encontro semanal Conteúdo teórico: * Cap 08 - Comunicação entre tarefas * Cap 09 - Mecanismos de comunicação Material complementar: * Exemplos de mecanismos de comunicação: {{:so:mqrecv.c|}}, {{:so:mqsend.c|}}, {{:so:shm.c|}} Laboratório: * P5: [[Preempção por tempo]] * P6: [[Contabilização]] :!: (entrega até 6/6) ---- === Semana 5: 31/5 a 04/6 === Encontros: * 01/6 17:30 - Encontro semanal Conteúdo teórico: * Cap 10 - Coordenação entre tarefas * Cap 11 - Mecanismos de coordenação Material complementar: * O problema da [[exclusão mútua]] Laboratório: * Completar e entregar os projetos P0 a P6 ---- === Semana 6: 07/6 a 11/6 === Encontros: * 08/6 17:30 - Encontro semanal Conteúdo teórico: * Cap 12 - Problemas clássicos * Cap 13 - Impasses Material complementar: * Exemplos de problemas clássicos: {{:so:pc-sem.c}}, {{:so:pc-cvar.c}}, {{:so:rw1.c}}, {{:so:rw2.c}}, {{:so:filosofos.c}}, * Exercícios sobre concorrência do [[http://greenteapress.com/wp/semaphores|Pequeno Livro de Semáforos]] Laboratório: * Defesa dos projetos P0 a P6 (entrevistas individuais agendadas c/ o professor) * P7: [[Tarefa main]] * P8: [[Operador Join]] ---- === Semana 7: 14/6 a 18/6 === Encontros: * 15/6 17:30 - Encontro semanal Conteúdo teórico: * Cap 14 - Hardware de memória * Cap 15 - Uso da memória Material complementar: * Exemplos de localidade de referência: {{so:tlb-lin.c}}, {{so:tlb-col.c}} * Localização de variáveis e constantes: {{:so:variaveis.c|}} Laboratório: * P9: [[Sleeping]] :!: (entrega até 27/6) ---- === Semana 8: 21/6 a 25/6 === Encontros: * 22/6 17:30 - Encontro semanal Conteúdo teórico: * Cap 16 - Alocação de memória * Cap 17 - Paginação em disco * Cap 18 - Tópicos em gestão de memória Material complementar: * Exemplo de //thrashing//: {{so:thrash.c}} * Ordenação de arquivo: {{:so:sort-fopen.c}}, {{:so:sort-mmap.c}}, {{:so:dumpdata.c}} Laboratório: * P10: [[Semáforos]] * P11: [[Uso de semáforos]] ---- === Semana 9: 28/6 a 02/7 === Encontros: * 29/6 17:30 - Encontro semanal Conteúdo teórico: * Cap 19 - Hardware de entrada/saída * Cap 20 - Software de entrada/saída * Cap 21 - Discos Laboratório: * P12: [[Filas de mensagens]] :!: (entrega até 18/7) ---- === 03/7 a 18/7: recesso === ---- === Semana 10: 19/7 a 23/7 === Encontros: * 20/7 17:30 - Encontro semanal Conteúdo teórico: * Cap 22 - O conceito de arquivo * Cap 23 - Uso de arquivos Laboratório: * P13: [[Gerente de disco]] :!: (entrega até 5/8) ---- === Semana 11: 26/7 a 30/7 === Encontros: * 27/7 17:30 - Encontro semanal Conteúdo teórico: * Cap 24 - Sistemas de arquivos * Cap 25 - Diretórios e atalhos Laboratório: * Completar e entregar os projetos P7 a P13 ---- === Semana 12: 02/8 a 06/8 === Encontros: * 03/8 17:30 - Encontro semanal Laboratório: * Completar e entregar os projetos P7 a P13 ---- === Semana 13: 09/8 a 13/8 === Laboratório: * Defesa dos projetos P7 a P13 (entrevistas individuais agendadas c/ o professor). ---- === Semana 14: 16/8 a 20/8 === Exame final: :!: * Os alunos que obtiverem média entre 40 e 69 na disciplina podem entregar novamente seus projetos, corrigidos e melhorados, até o dia 17/8. * Durante a semana serão feitas novas defesas desses projetos, em entrevistas individuais. * A nota do exame final será calculada considerando a última versão entregue dos projetos solicitados (limitada a 100 pontos). ----