Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
so:cronograma_2022_1 [2022/06/23 14:37] mazieroso:cronograma_2022_1 [2022/08/03 11:18] (atual) maziero
Linha 1: Linha 1:
 +====== CI-1215 - Cronograma 2022/1 ======
 +
 +<note important>
 +  * As atividades indicadas com :!: serão avaliadas.
 +  * Os projetos são individuais.
 +  * Os projetos devem ser entregues usando o [[http://moodle.c3sl.ufpr.br|Moodle]].
 +  * Entrega em até **2 semanas** a partir da data da aula.
 +  * Somente projetos apresentados/defendidos terão suas notas consideradas.
 +  * Leia com atenção as [[teaching:Regras das Atividades de Laboratório]].
 +</note>
 +
 +=== Links úteis ===
 +
 +  * [[https://bbb.c3sl.ufpr.br/b/car-chu-evg|Sala online]] (BBB do DINF/UFPR)
 +  * [[socm:start|Livro-texto da disciplina]]
 +
 +=== Regras de avaliação ===
 +
 +A média final da disciplina é calculada com as notas das provas e dos projetos solicitados (entre 0 e 100), da seguinte forma:
 +
 +  Mprova = (Pv1 + Pv2) / 2
 +  Mproj  = (P0 + P4 + P6 + P9 + P12 + P13) / 5  (sim, é sobre 5 e não sobre 6)
 +  Media  = (Mprova + Mproj) / 2
 +
 +----
 +
 +=== 07/6: Aula 1 ===
 +
 +Conteúdo teórico:
 +
 +  * Apresentação da disciplina
 +  * Conceitos básicos
 +
 +----
 +
 +=== 09/6: Aula 2 ===
 +
 +Conteúdo teórico:
 +
 +  * Estrutura de um SO
 +
 +----
 +
 +=== 14/6: Aula 3 ===
 +
 +Projeto:
 +
 +  * Visão geral do [[PingPongOS]]
 +  * :!: P0: [[Biblioteca de filas]] 
 +
 +----
 +
 +=== 16/6: feriado ===
 +
 +----
 +
 +=== 21/6: Aula 4 ===
 +
 +Conteúdo teórico:
 +
 +  * Arquiteturas de SOs
 +
 +Leitura complementar:
 +
 +  * [[http://www.minix3.org/docs/login-2007.pdf|Minix 3 (microkernel)]]
 +  * [[http://queue.acm.org/detail.cfm?id=2566628|Unikernels]] (exemplos: [[https://mirage.io/|MirageOS]] e [[https://osv.io/|OSv]])
 +
 +----
 +
 +=== 23/6: Aula 5 ===
 +
 +Conteúdo teórico:
 +
 +  * O conceito de tarefa
 +
 +Projeto:
 +
 +  * P1: [[Trocas de contexto]]
 +  * P2: [[Gestão de tarefas]]
 +
 +----
 +
 +=== 28/6: Aula 6 ===
 +
 +Conteúdo teórico:
 +
 +  * Implementação de tarefas - processos
 +  * Exemplos: [[Criação de processos]]
 +  * [[unix:Gestão de processos]]
 +
 +----
 +
 +=== 30/6: Aula 7 ===
 +
 +Conteúdo teórico:
 +
 +  * Implementação de tarefas - threads
 +  * Exemplos: [[Criação de threads]]
 +
 +Projeto:
 +
 +  * P3: [[Dispatcher]]
 +
 +----
 +
 +=== 05/7: Aula 8 ===
 +
 +Conteúdo teórico:
 +
 +  * Escalonamento de tarefas
 +
 +----
 +
 +=== 07/7: Aula 9 ===
 +
 +Conteúdo teórico:
 +
 +  * Escalonamento de tarefas (cont.)
 +
 +Projeto:
 +
 +  * :!: P4: [[Escalonador por prioridades]]
 +
 +Leitura complementar:
 +
 +  * [[https://man7.org/linux/man-pages/man7/sched.7.html|Manpage de escalonamento do Linux]]
 +  * [[https://www.trustedreviews.com/news/what-is-the-intel-thread-director-4158842|Intel Thread Director]]
 +
 +----
 +
 +=== 12/7: Aula 10 ===
 +
 +Conteúdo teórico:
 +
 +  * Comunicação entre tarefas
 +  * Mecanismos de comunicação
 +  * Exemplos: {{:so:mqrecv.c|}}, {{:so:mqsend.c|}},  {{:so:shm.c|}}
 +
 +Leitura complementar:
 +
 +  * [[https://docs.microsoft.com/en-us/windows/win32/winmsg/messages-and-message-queues|Windows messaging]]
 +
 +Projeto:
 +
 +  * P5: [[Preempção por tempo]]
 +
 +----
 +
 +=== 14/7: Aula 11 ===
 +
 +Conteúdo teórico:
 +
 +  * Coordenação entre tarefas
 +  * O problema da [[exclusão mútua]]
 +
 +----
 +
 +=== 19/7: Aula 12 ===
 +
 +Conteúdo teórico:
 +
 +  * Mecanismos de coordenação
 +
 +Leitura complementar:
 +
 +  * [[https://docs.microsoft.com/en-us/windows/win32/sync/using-semaphore-objects|Semáforos em Windows]]
 +
 +Projeto:
 +
 +  * :!: P6: [[Contabilização]]
 +
 +----
 +
 +=== 21/7: Aula 13 ===
 +
 +Conteúdo teórico:
 +
 +  * Problemas clássicos
 +  * Exemplos: {{ :so:filosofos.c |}}
 +
 +Leitura complementar:
 +
 +  * Exercícios sobre concorrência do [[http://greenteapress.com/wp/semaphores|Pequeno Livro de Semáforos]]
 +  * //Reader/Writer locks// em [[https://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_rwlock_init.html|POSIX]], [[https://docs.microsoft.com/en-us/windows/win32/sync/slim-reader-writer--srw--locks|Windows]] e [[https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/locks/ReadWriteLock.html|Java]]
 +
 +----
 +
 +=== 26/7: Aula 14 ===
 +
 +Conteúdo teórico:
 +
 +  * Impasses
 +
 +Projeto:
 +
 +  * P7: [[Tarefa main]]
 +  * P8: [[Operador Join]]
 +
 +----
 +
 +=== 28/7: Aula 15 ===
 +
 +  * :!: Prova 1 (introdução, gestão de tarefas, interação entre tarefas, PingPongOS)
 +
 +----
 +
 +=== 02/8: Aula 16 ===
 +
 +Conteúdo teórico:
 +
 +  * Hardware de entrada/saída
 +
 +Leitura complementar:
 +
 +  * Exemplo de I/O: [[https://wiki.osdev.org/CMOS#Getting_Current_Date_and_Time_from_RTC|Leitura do RTC (Real-Time Clock)]]
 +
 +Projeto:
 +
 +  * :!: P9: [[Sleeping]]
 +
 +----
 +
 +=== 04/8: Aula 17 ===
 +
 +Conteúdo teórico:
 +
 +  * Software de entrada/saída
 +
 +----
 +
 +=== 09/8: Aula 18 ===
 +
 +Conteúdo teórico:
 +
 +  * Discos
 +
 +----
 +
 +=== 11/8: Aula 19 ===
 +
 +Projeto:
 +
 +  * P10: [[Semáforos]]
 +  * P11: [[Uso de semáforos]]
 +
 +----
 +
 +=== 16/8: Aula 20 ===
 +
 +Conteúdo teórico:
 +
 +  * O conceito de arquivo
 +
 +----
 +
 +=== 18/8: Aula 21 ===
 +
 +Conteúdo teórico:
 +
 +  * Uso de arquivos
 +
 +Projeto:
 +
 +  * :!: P12: [[Filas de mensagens]]
 +
 +----
 +
 +=== 23/8: Aula 22 ===
 +
 +Conteúdo teórico:
 +
 +  * Sistemas de arquivos
 +
 +----
 +
 +=== 25/8: Aula 23 ===
 +
 +Conteúdo teórico:
 +
 +  * Diretórios e atalhos
 +
 +Projeto:
 +
 +  * :!: P13: [[Gerente de disco]]
 +
 +----
 +
 +=== 30/8: Aula 24 ===
 +
 +Conteúdo teórico:
 +
 +  * Hardware de memória
 +
 +----
 +
 +=== 01/9: Aula 25 ===
 +
 +Conteúdo teórico:
 +  * Hardware de memória (cont.)
 +  * Uso da memória
 +  * Exemplos de localidade de referência: {{so:tlb-lin.c}}, {{so:tlb-col.c}}
 +  * Localização de variáveis e constantes: {{:so:variaveis.c|}}
 +
 +----
 +
 +=== 06/9: Aula 26 ===
 +
 +Conteúdo teórico:
 +
 +  * Alocação de memória
 +  * Paginação em disco
 +
 +----
 +
 +=== 08/9: Feriado ===
 +
 +----
 +
 +=== 13/9: Aula 27 ===
 +
 +Conteúdo teórico:
 +
 +  * Paginação em disco (cont.)
 +  * Exemplo de //thrashing//: {{so:thrash.c}}
 +
 +----
 +
 +=== 15/9: Aula 28 ===
 +
 +  * :!: Prova 2 (gestão de entrada/saída, gestão de arquivos, gestão da memória, PingPongOS)
 +
 +----
 +
 +=== 22/9: Exame final ===
 +
 +  * Mesmo conteúdo das provas 1 e 2
 +
 +----