====== 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