Conceitos fundamentais de sistemas distribuídos. Problemas básicos em computação distribuída: coordenação e sincronização de processo, exclusão mútua, difusão de mensagens. Compartilhamento de informação: controle de concorrência, transações distribuídas. Comunicação entre processos. Tolerância a falhas. Sistemas operacionais distribuídos: sistemas de arquivos, servidores de nomes, memória compartilhada, segurança, estudo de casos.