====== CI-1215 - Cronograma 2021/1 ======
* 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: 20/9 a 24/9 ===
Encontros:
* 21/9 17:30 - Apresentação da disciplina
* 23/9 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é 03/10)
----
=== Semana 2: 27/9 a 01/10 ===
Encontros:
* 28/9 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: 04/10 a 08/10 ===
Encontros:
* 05/10 17:30 - Encontro semanal
Conteúdo teórico:
* Cap 06 - Escalonamento de tarefas
* 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:
* P3: [[Dispatcher]]
* P4: [[Escalonador por prioridades]] :!: (entrega até 17/10)
----
=== Semana 4: 11/10 a 15/10 ===
Encontros:
* 14/10 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:
* P5: [[Preempção por tempo]]
* P6: [[Contabilização]] :!: (entrega até 24/10)
----
=== Semana 5: 18/10 a 22/10 ===
Encontros:
* 19/10 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:
* P7: [[Tarefa main]]
* P8: [[Operador Join]]
----
=== Semana 6: 25/10 a 29/10 ===
Encontros:
* 26/10 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:
* Defesa dos projetos P0 a P6 (entrevistas individuais agendadas c/ o professor)
* P9: [[Sleeping]] :!: (entrega até 07/11)
----
=== Semana 7: 01/11 a 05/11 ===
Encontros:
* 04/11 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 8: 08/11 a 12/11 ===
Encontros:
* 09/11 17:30 - Encontro semanal (falta de energia)
* 11/11 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é 21/11)
----
=== Semana 9: 15/11 a 19/11 ===
Encontros:
* 16/11 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é 28/11)
----
=== Semana 10: 22/11 a 26/11 ===
Encontros:
* 23/11 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 11: 29/11 a 03/12 ===
Laboratório:
* Defesa dos projetos P7 a P13 (entrevistas individuais agendadas c/ o professor).
----
=== Semana 12: 06/12 a 10/12 ===
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 08/12.
* 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).
----