Cursos‎ > ‎

Programação Concorrente e Paralela 2011.1

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. Conceitos Básicos

  3. Threads e Processos

  4. Exclusão Mútua

Material do curso

Slides do curso: 

Slides do Curso

Lista de Exercícios:

Lista de exercício

Descrição do Projeto

Os detalhes do projeto final da disciplina: Barbeiro Dorminhoco Extendido.

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.

O relatório final poderá ser entregue via e-mail até a data indicada no calendário.

A avaliação dos trabalhos será comparativa, assim, funcionamento correto, ausência de bugs e boa interface resultarão em melhores notas.

IMPORTANTE: A detecção de plágio nos trabalhos entregues são passíveis de aplicação das penalidades previstas no Regimento da UECE além da inevitável nota compatível com o ato (zero).

Grupos e data de apresentação

Felipe José, Francisco Robson e Eduardo: 05/07/2011

Manoel, Isac e Jefferson Rodrigo: 07/07/2011

Yuri, Débora e Thiago: 07/07/2011

Diego e Rivaney: 12/07/201

Jefferson Gomes, Luiz Edgar e Emanuela: 12/07/2011

Calendário (tentativa)

Início das aulas: 22/03/2011

Primeira Avaliação: 03/05/2011 (Matéria: Parte 1 até Parte 4)

Segunda Avaliação: 30/06/2011 (Matéria: Parte 5 até Parte 9)

Entrega do Trabalho Final: 05, 07 e 12/07/2011

Entrega do relatório escrito do Trabalho Final (data final): 12/07/2011

Prova Final: 14/07/2011

Entrega da nota final: 15/07/2011

Encerramento das aulas: 21/07/2011