Programação Distribuída e Paralela

Nome da disciplina: Programação Distribuída e Paralela

Carga horária: 30h

Ementa:  Conceitos básicos em programação distribuída e paralela. Concorrência, distribuição e paralelismo. Modelos de interação entre processos. Compartilhamento de memória e mecanismos de sincronização. Troca de mensagens e mecanismos de comunicação. Threads, Sockets, e Interfaces de Troca de Mensagens.

Objetivos: Introduzir conceitos básicos e avançados sobre as principais metodologias para programação concorrente, distribuída e paralela: comunicação entre processos, threads, sockets, objetos distribuídos, algoritmos paralelos e serviços. Fazer com que os discentes entendam e implementem exemplos de programas em clusters, grids e nuvem.

Bibliografia básica:

  1. ANDREWS, Gregory. Foundations of Multithreaded, Parallel and Distributed Programming -Addison- Wesley, 1999.
  2. BAL, Henri. Programming Distributed Systems – Prentice Hall, 1990.
  3. HORSTMANN, Cay s. and CORNELL, Gary . Core Java 2 – Volume II – Advanced Features, Prentice Hall, 1998
  4. 3. GRAMA, Ananth et al.Introduction TO Parallel Computing. 2. ed. Harlow: Pearson Addison Wesley, 2003. p. 636. ISBN 0-201-64865-2.
  5. DEITEL, Harvey M.; DEITEL, Paul J. Java: Como Programar. 4a Edição. Bookman, 2002.
  6. TANENBAUM, Andrew. Sistemas Operacionais Modernos. Pearson, 2010.
  7. GROPP, W.; LEDERMAN, S. H.; LUMSDAINE, A.; LUSK, E.; NITZBERG, B.;
  8. SAPHIR, W.; SNIR, M.. MPI: The Complete Reference (Vol. 2): MIT PRESS, 1998