====== CI-1215 - Cronograma 2019/1 ====== * As atividades indicadas com :!: serão avaliadas. * Os projetos devem ser entregues em até **2 semanas** a partir da data da aula, usando o [[http://moodle.c3sl.ufpr.br|Moodle do DInf]]. * Leia com atenção as [[teaching:Regras das Atividades de Laboratório]]. === 18/2: Aula 1 === * Apresentação da disciplina * Conceitos básicos === 21/2: sem aula === === 25/2: Aula 2 === * Estrutura de um SO === 28/2: 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]] === 4/3: feriado (Carnaval) === === 7/3: sem aula === === 11/3: Aula 4 === * Visão geral do [[PingPongOS]] * :!: P0: [[Biblioteca de filas]] (prazo 25/3) === 14/3: Aula 5 === * O conceito de tarefa * P1: [[Trocas de contexto]] === 18/3: Aula 6 === * Implementação de tarefas - processos * Exemplos: [[Criação de processos]] * [[unix:Gestão de processos]] * :!: P2: [[Gestão de tarefas]] (prazo 1/4) === 21/3: Aula 7 === * Implementação de tarefas - threads * Exemplos: [[Criação de threads]] === 25/3: Aula 8 === * Escalonamento de tarefas === 28/3: Aula 9 === * Escalonamento de tarefas * P3: [[Dispatcher]] * :!: P4: [[Escalonador por prioridades]] (prazo 11/4) === 1/4: Aula 10 === * Comunicação entre tarefas * Mecanismos de comunicação * Exemplos: {{:so:mqueue-recv.c|}}, {{:so:mqueue-send.c|}}, {{:so:shared-mem.c|}} === 4/4: Aula 11 === * P5: [[Preempção por tempo]] * :!: P6: [[Contabilização]] (prazo 18/4 22/4) === 8/4: Aula 12 === * Coordenação entre tarefas * O problema da [[exclusão mútua]] === 11/4: aula cancelada pelo setor === === 15/4: Aula 13 === * Mecanismos de coordenação === 18/4: Aula 14 === * P7: [[Tarefa main]] * :!: P8: [[Operador Join]] (prazo 02/5) === 22/4: Aula 15 === * Problemas clássicos * Exercícios sobre concorrência do [[http://greenteapress.com/wp/semaphores|Pequeno Livro de Semáforos]] === 25/4: Aula 16 === * Impasses === 29/4: Aula 17 === * :!: Prova 1 (introdução, gestão de tarefas, interação entre tarefas, PingPongOS) === 2/5: Aula 18 === * Gestão de memória * Localização de variáveis e constantes: {{:so:variaveis.c|}} * :!: P9: [[Sleeping]] (prazo 16/5) === 6/5: sem aula === === 9/5: Aula 19 === * Hardware de memória * Exemplos de localidade de referência: {{so:tlb-lin.c}}, {{so:tlb-col.c}} === 13/5: Aula 20 === * :!: P10: [[Semáforos]] (prazo 27/5) * P11: [[Uso de semáforos]] === 16/5: Aula 21 === * Alocação de memória === 20/5: Aula 22 === * Paginação em disco * Exemplo de //thrashing//: {{so:thrash.c}} === 23/5: Aula 23 === * :!: P12: [[Filas de mensagens]] (prazo 6/6) * Hardware de entrada/saída === 27/5: Aula 24 === * Software de entrada/saída === 30/5: Aula 25 === * Discos * :!: P13: [[Gerente de disco]] (prazo 20/6) === 3/6: Aula 26 === * O conceito de arquivo === 6/6: Aula 27 === * Uso de arquivos === 10/6: Aula 28 === * Sistemas de arquivos === 13/6: Aula 29 === * Diretórios e atalhos === 17/6: Aula 30 === * :!: Prova 2 (gestão da memória, gestão de entrada/saída, gestão de arquivos, PingPongOS) === 1/7: Exame final === * Mesmo conteúdo das provas 1 e 2