Conceitos de programação paralela, concorrente e distribuída. Processos e threads. Condições
de corrida. Regiões críticas. Exclusão mútua. Comunicação e sincronização de processos.
Impasse e inanição. Sistemas distribuídos. Sockets. Objetos distribuídos e invocação remota.
Algoritmos distribuídos. Modelagem de sistemas distribuídos.