Cursos‎ > ‎

Programacao Concorrente e Paralela 2011.2

Introdução

No início dos tempos da computação a maioria dos programas realizavam processamento sequencial (batch). Com o aumento da capacidade dos processadores e a demanda dos programas em realizar várias tarefas simultaneamente, tornaram importante as questões de programação concorrente. Atualmente, a profusão de processadores com vários núcleos e a demanda por serviços de rede em nuvens, torna a programação concorrente um tema importante para o futuro profissional.

O assunto do curso consiste em uma continuação dos conceitos da disciplina Sistemas Operacionais, pré-requisito para essa disciplina. No entanto, o enfoque será na aplicação e implementação dos conceitos para resolver problemas do mundo real que envolvem concorrência em uma máquina ou uma rede.

Objetivos do Curso

O objetivo do curso é aprofundar conceitos de programação concorrente e paralela, focados na implementação. A metodologia consiste na exposição dos principais conceitos e mostrar exemplos de problemas e soluções em programação concorrente.

Avaliação

A avaliação do curso consistirá em 2 (duas) avaliações escritas (NPC) e 1 (um) trabalho prático com valor de NPC. O trabalho prático da disciplina será a implementação de um programa para resolver o problema proposto abaixo.

A nota final será a média aritmética das DUAS melhores notas obtidas (será desprezada a menor nota). Caso o aluno não atinja a nota mínima deverá prestar o Exame Final (NEF)

Somente será aplicada segunda chamada mediante justificativa conforme prescreve o Regimento da UECE.

Conteúdo programático

  1. Introdução
  2. Simultaneidade e Paralelismo
  3. Modelagem e Threads
  4. Sincronização
  5. Vivacidade e Métodos Protegidos
  6. Objeto Condição
  7. Propriedades de Concorrência
  8. Redes de Petri
  9. Computação Paralela

Bibliografia






Doug Lea
Concurrent Programming in Java™: Design Principles and Pattern (2nd Edition)
Prentice Hall
1999










Mordechai Ben-Ari
Principles of Concurrent and Distributed Programming (2nd Edition) 
Addison Wesley
2006











http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601
Brian Goetz
Java Concurrency in Practice
Addison Wesley
2006





Material do curso

Slides do curso: 

Parte 1 - Introdução
Parte 2 - Simultaneidade e Paralelismo
Parte 3 - Modelagem e Threads
Parte 4 - Sincronização
Parte 5 - Vivacidade e Métodos Protegidos
Parte 6 - Objeto Condição
Parte 7 - Propriedades de Concorrência
Parte 8 - Redes de Petri
Parte 9 - Computação Paralela

Material Extra - Revisão de Sistemas Operacionais

Lista de Exercício:

Lista de Exercício 2011.2

Material complementar:

Texto com resumo sobre programação concorrente: Issue in Concurrent Programming

O pequeno (não tão pequeno...) livro de semáforos: The Little Book of Semaphores 

Descrição do Projeto

Os detalhes do projeto final da disciplina: Babuínos cruzando um cânion.

O projeto poderá ser realizado por um grupo de no máximo 3 (três) alunos, sendo necessário especificar a parte desenvolvida por cada um (as notas poderão ser diferentes, caso fique claro o desequilíbrio das atividades realizadas).

O projeto consiste em fazer uma implementação e entregar um relatório descrevendo a solução adotada, os detalhes da implementação e um manual de instalação e uso, além do código fonte do programa. Será marcada uma ou mais datas para apresentação e entrega do trabalho.

IMPORTANTE: A detecção de plágio nos trabalhos entregues são passíveis de aplicação das penalidades previstas no Regimento da UECE.

Cronograma de apresentações do trabalho final

06/12/2011:

Grupo 1: Daniel Pinto, Renan, Wairton

Grupo 2: Carlos Samarony, Jerfesson Quesado

Grupo 3: Fabiano, Marco Antonio

08/12/2011:

Grupo 4: Felipe de Almeida, João Gonçalves

Grupo 5: Anderson Gomes, Raphael Bezerra

Grupo 6: Antonio Rootedy, Henrique Silva

13/12/2011:

Grupo 7: Davi Teles, Leonardo Lopes, Marco Guilherme

Grupo 8: Anderson Couto, Daniel Sucupira, José Henrique, 

Grupo 9: Luis Paulo, Thiago Gomes, Waner Ferreira

15/12/2011:

Grupo 10: Fernando Furtado, Rodrigo Bastos

Grupo 11: Fracisco Jackson, Hedley, José Elano

Grupo 12: Diego Leal, Jeovania, Robert Marinho

Calendário (tentativa)

Início das aulas: 16/08/2011

Primeira Avaliação (NPC 1): 04/10/2011 (Partes 1 a 4)

Segunda Avaliação (NPC 2): 01/12/2011 (Partes 5 a 9)

Apresentação do Trabalho Final: 6, 8, 13, 15/12

Entrega do Trabalho Final (relatório): 12/12/2011

Prova Final (NEF): 20/12/2011

Entrega NEF e revisão: 22/12/2011

Fim das aulas: 23/12/2011