Departamento de Informática (UM)

Página de Unidade Curricular

DesignaçãoCódigoCursoRegimeRegente

Programação Concorrente

9869 [8506O6]

Licenciatura em Ciências da Computação [CCOM]

S6

Paulo Sérgio Soares Almeida

Objetivos

No seguimento da programação de sistemas e concorrência com granularidade grossa (de Sistemas Operativos) esta UC aborda a programação concorrente em memória partilhada, com a abordagem clássica baseada em monitores, e a concorrência em sistemas distribuídos via troca de mensagens, com ênfase no modelo dos atores.

Programa

1. Introdução a concorrência em memória partilhada
1.1. Exclusão mútua
1.2. Sincronização via semáforos
1.3. Sincronização via monitores
1.4. Introdução a modelos de coerência de memória
2. Introdução a passagem de mensagens e sistemas distribuídos
2.1. Modelo dos atores
2.2. Modelo cliente-servidor

Bibliografia

M. Ben-Ari, Principles of Concurrent and Distributed Programming: Algorithms and Models, Prentice-Hall, 2006

Brian Goetz, Tim Peierls, Joshua Bloch, Java Concurrency in Practice, Addison Wesley, 2006

Joe Armstrong, Programming Erlang, OReilly, 2007

Resultados da aprendizagem

- Modelar sistemas concorrentes;
- Compreender os principais modelos e primitivas de programação concorrente em memória partilhada;
- Escrever aplicações concorrentes em memória partilhada;
- Compreender os principais modelos e primitivas de programação concorrente em sistemas distribuídos;
- Escrever aplicações concorrentes baseadas em passagem de mensagens.

Método de avaliação

A avaliação tem duas componentes: teste e/ou exame final escrito e o trabalho prático a realizar em grupo.

Funcionamento

Turno: T 1; Docente: Paulo Sérgio Soares Almeida; Dep.: DI; Horas: 30.
Turno: PL 1; Docente: Paulo Sérgio Soares Almeida; Dep.: DI; Horas: 30.
Turno: PL 2; Docente: Paulo Sérgio Soares Almeida; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]