====== CI-1215 - Cronograma 2020/1 ====== As datas de entrega dos trabalhos e avaliações estão suspensas enquanto durar a suspensão do calendário acadêmico da UFPR e revistas na sequência. * As atividades indicadas com :!: serão avaliadas. * Os projetos devem ser entregues usando o [[http://moodle.c3sl.ufpr.br|Moodle]]. * Entrega em até **2 semanas** a partir da data da aula. * Leia com atenção as [[teaching:Regras das Atividades de Laboratório]]. === 03/3: Aula 1 === * Apresentação da disciplina * Conceitos básicos === 05/3: Aula 2 === * Estrutura de um SO === 10/3: Aula 3 === * Arquiteturas de SOs * [[http://www.minix3.org/docs/login-2007.pdf|Artigo sobre o Minix 3 (microkernel)]] * [[http://queue.acm.org/detail.cfm?id=2566628|Unikernels]] === 12/3: Aula 4 === * Visão geral do [[PingPongOS]] * :!: P0: [[Biblioteca de filas]] === 17/3: Aula 5 === * O conceito de tarefa * P1: [[Trocas de contexto]] === 19/3: Aula 6 === * Implementação de tarefas - processos * Exemplos: [[Criação de processos]] * [[unix:Gestão de processos]] * :!: P2: [[Gestão de tarefas]] === 24/3: Aula 7 === * Implementação de tarefas - threads * Exemplos: [[Criação de threads]] === 26/3: Aula 8 === * Escalonamento de tarefas === 31/3: Aula 9 === * Escalonamento de tarefas * P3: [[Dispatcher]] * :!: P4: [[Escalonador por prioridades]] === 2/4: Aula 10 === * Comunicação entre tarefas * Mecanismos de comunicação * Exemplos: {{:so:mqueue-recv.c|}}, {{:so:mqueue-send.c|}}, {{:so:shared-mem.c|}} === 7/4: Aula 11 === * P5: [[Preempção por tempo]] * :!: P6: [[Contabilização]] === 9/4: Aula 12 === * Coordenação entre tarefas * O problema da [[exclusão mútua]] === 14/4: Aula 13 === * Mecanismos de coordenação === 16/4: Aula 14 === * P7: [[Tarefa main]] * :!: P8: [[Operador Join]] === 21/4: sem aula (feriado) === === 23/4: Aula 15 === * Problemas clássicos * Exercícios sobre concorrência do [[http://greenteapress.com/wp/semaphores|Pequeno Livro de Semáforos]] === 28/4: Aula 16 === * Impasses === 30/4: Aula 17 === * :!: Prova 1 (introdução, gestão de tarefas, interação entre tarefas, PingPongOS) === 5/5: Aula 18 === * Gestão de memória * Localização de variáveis e constantes: {{:so:variaveis.c|}} * :!: P9: [[Sleeping]] === 7/5: Aula 19 === * Hardware de memória * Exemplos de localidade de referência: {{so:tlb-lin.c}}, {{so:tlb-col.c}} === 12/5: Aula 20 === * :!: P10: [[Semáforos]] * P11: [[Uso de semáforos]] === 14/5: Aula 21 === * Alocação de memória === 19/5: Aula 22 === * Paginação em disco * Exemplo de //thrashing//: {{so:thrash.c}} === 21/5: Aula 23 === * :!: P12: [[Filas de mensagens]] * Hardware de entrada/saída === 26/5: sem aula (semana acadêmica) === === 28/5: sem aula (semana acadêmica) === === 02/6: Aula 24 === * Software de entrada/saída === 04/6: Aula 25 === * Discos * :!: P13: [[Gerente de disco]] === 09/6: Aula 26 === * O conceito de arquivo === 11/6: sem aula (feriado) === === 16/6: Aula 27 === * Uso de arquivos === 18/6: Aula 28 === * Sistemas de arquivos === 23/6: Aula 29 === * Diretórios e atalhos === 25/6: Aula 30 === * :!: Prova 2 (gestão da memória, gestão de entrada/saída, gestão de arquivos, PingPongOS) === 7/7: Exame final === * Mesmo conteúdo das provas 1 e 2