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