Tópicos abordados nas aulas.
As referências são todas a capítulos do livro do Andrews (Foundations of
Multithreaded, Parallel and Distributed Programming).
-
Aula 1 (2 de Março):
Apresentação. Critério de Aprovação. Provas: P1: 27/04, P2: 22/06.
-
Aula 2 (5 de Março):
Introdução: Arquiteturas de máquinas. Tipos de concorrência. Paralelismo
iterativo - Seções do Andrews 1 -> 1.4
-
Aula 3 (9 de Março):
Introdução: Paralelismo recursivo. Produtor consumidor - Seções do Andrews
1.5, 1.6
-
Aula 4 (12 de Março):
Introdução: Cliente/Servidor. Computação por pares. Seções do Andrews 1.7, 1.8
-
Aula 5 (16 de Março):
Processos e sincronização. Sincronização. Seções do Andrews 2 -> 2.6
-
Aula 6 (19 de Março):
Aula sobre pthreads (texto do
Guilherme)
Autor: Guilherme O'Connor
-
Aula 7 (23 de Março):
Ações atômicas, await. Seções do Andrews 2 -> 2.6
-
Aula 8 (26 de Março):
Continuação pthreads e concorrência em Java (apostila e apresentação)
Autor: Daniel de Angelis Cordeiro
-
Aula 9 (29 de Março):
Problema da seção crítica e justiças
-
Aula 10 (2 de Abril):
Algoritmos para memória compartilhada - Tie Breaker.
- Semana do Break (8-12 Abril)
-
Aula 11 (13 de Abril):
Ticket and Bakery algorithms
-
Aula 12 (16 de Abril):
Bakery algorithm e Barreiras de sincronização
-
Aula 13 (20 de Abril):
Barreiras de sincronização
-
Aula 14 (23 de Abril):
Semáforos (introdução).
Curiosidade: Vale a pena ler seguinte texto do
Dijkstra (ele até fala sobre semáforos).
- Aula 15 (27 de Abril):
Primeira Prova.
- Aula 16 (30 de Abril):
Resolução da Prova.
- (4 de Maio):
Break.
- Aula 17 (7 de Maio):
Problema dos Filósofos, Leitores e Escritores.
- Aula 18 (11 de Maio):
Leitores e Escritores (continuação) - Passagem de Bastão.
- Aula 19 (14 de Maio):
Alocação de recursos e escalonamento.
- Aula 20 (18 de Maio):
Início de monitores. Implementação de semáforos usando monitores.
- Aula 21 (21 de Maio):
Monitores: Leitores e Escritores, Menor tarefa.
- Aula 22 (25 de Maio):
Monitores: Timers de intervalo, o problema do Barbeiro Dorminhoco.
- Aula 23 (28 de Maio):
Exercício sobre monitores.
- Aula 24 (2 de Junho):
Hyperthreading
Paper sobre o Hyperthreading.
Apresentacao.
-
- Aula 25 (15 de Junho):
Padrões para programação concorrente (técnicas de exclusão).
Objetos imutáveis e sincronização.
- Aula 26 (18 de Junho):
Padrões para programação concorrente (técnicas de exclusão).
Confinamento.
- Aula 27 (22 de Junho):
Segunda prova.