MAC0438  Programação Concorrente

Por | Em

OBJETIVOS:  Apresentar problemas clássicos de programação concorrente baseada no compartilhamento de variáveis e em troca de mensagens. Ensinar mecanismos de comunicação e sincronização entre processos/objetos concorrentes.

PROGRAMA:  Conceitos básicos: processos, threads, interrupções, escalonamento. Aspectos de implementação e concorrência. Propriedades de segurança e imparcialidade. Modelos de concorrência. Semântica e implementação de mecanismos de sincronização. Problemas de programação concorrente: deadlock, alocação de recursos, leitura e escrita concorrente, exclusão mútua, consenso. Semântica e implementação de mecanismos de comunicação. Programação concorrente em UNIX. Algoritmos baseados em variáveis compartilhadas: Dijkstra, Peterson, consenso. Algoritmos baseados em envio de mensagens.

PRÉ-REQUISITO NÃO-OFICIAL:  MAC0121.

CARGA HORÁRIA SEMANAL E NÚMERO DE CRÉDITOS:  4 horas, 4 créditos-aula.

CRITÉRIO DE AVALIAÇÃO DA APRENDIZAGEM:  Provas e trabalhos.

BIBLIOGRAFIA BÁSICA: 

  • G.R. Andrews, Concurrent Programming: Principles and Practice, Benjamin Cummings, 1991.
  • N. Gehani, A. McGettrick, Concurrent Programming, coletânea de artigos canônicos, Editora?, 1988.
  • W.R. Stevens, UNIX Network Programming, Prentice Hall, 1990.

OBSERVAÇÃO:  Disciplina obrigatória no currículo do BCC.

 

[Veja dados da disciplina no JúpiterWeb]


Oferecimentos recentes da disciplina: 2001/1, 2002/1.