DEPARTAMENTO DE ENGENHARIAS E CIÊNCIA DA COMPUTAÇÃO Disciplina: Programação Paralela e Distribuída Código: 30-895 Carga Horária: 40h (30h Prática + 10h Teórica) Nº de Créditos: 02
EMENTA Programação Concorrente. Implementação de sincronização e IPC. Multithreading.
OBJETIVOS Apresentar ao aluno conceitos de programação concorrente, com enfoque em multithreading, buscando através de conceitos teóricos e implementação prática, dar subsídios para o desenvolvimento de aplicações concorrentes e multitarefa.
CONTEÚDOS CURRICULARES Definições de Programação Concorrente Problemas de Concorrência Implementação de comunicação entre processos Implementação de sincronização de processos Programação Procedural Baseada em Variáveis Compartilhadas Programação Multithread Gerenciamento de Processadores e Distribuição de Processos Conceitos Características de hardware e software Escalonamento Balanceamento de carga Comunicação e Coordenação Distribuída Ordenação de eventos Exclusão mútua Atomicidade Controle Impasse Gerenciamento de recursos Chamadas Remotas de Procedimento
METODOLOGIA Os alunos desenvolverão Trabalhos Discente Efetivos (TDE) no total de 20h, de acordo com o planejamento do professor: estudos de caso, pesquisas bibliográficas, resolução de problemas e lista de exercícios. O desenvolvimento dos conteúdos será feito através de aulas expositivas verbais e diálogo entre alunos e professor (com utilização de recursos audiovisuais e técnicas como exibição de slides, exposição oral, demonstrações práticas e teóricas), enquanto são discutidos os itens de cunho teórico; evoluindo em tópicos específicos para exercícios práticos e demonstrações (com técnicas como atividades práticas individuais, em grupos, demais atividades direcionadas ao conteúdo e discussões) visando a fixação dos conteúdos, e contextualização baseada em publicações atualizadas. Uso de atividades em laboratório com o objetivo de demonstrar os conceitos estudados. Também serão realizados estudos de caso, debates, resolução de exercícios práticos, com execução de atividades que possibilitem a aplicação do conteúdo visto em aula de forma dinâmica e interativa. No decorrer do semestre, serão utilizadas metodologias ativas com o objetivo de potencializar o processo de ensino-aprendizagem.
AVALIAÇÃO Para esta disciplina a avaliação semestral deve considerar a média ponderada entre as notas, que serão definidas através das seguintes avaliações: Parte da avaliação da disciplina, com peso 20%, será referente às atividades desenvolvidas nas TDEs, conforme previsto pelas regras da graduação Ativa da URI; Comporá também uma das notas da disciplina a avaliação do aluno conforme o projeto integrador, com peso a ser definido pelo professor de acordo com o tema norteador e projeto aplicado no semestre; O restante das notas consistirá em provas e trabalhos (teóricos e/ou práticos), com assuntos específicos da disciplina. A atribuição de notas para a avaliação do desempenho do acadêmico, segue o prescreve o Regimento Geral da Universidade, Art. 88 a 92.
|
BIBLIOGRAFIA BÁSICA BARNES, David J; KÖLLING, Michael. Programação orientada a objetos com Java: uma introdução prática usando o BlueJ. 4. ed. São Paulo: Pearson Prentice Hall, 2009. SEBESTA, Robert W. Conceitos de linguagens de programação. 9 ed. Porto Alegre: Bookman, 2011. TOSCANI, Simão Sirineo; OLIVEIRA, Rômulo Silva de; CARISSIMI, Alexandre da Silva. Sistemas operacionais e programação concorrente. Porto Alegre: Sagra Luzzatto, 2003.
BIBLIOGRAFIA COMPLEMENTAR S., OLIVEIRA, Rômulo, CARISSIMI, Alexandre S., and TOSCANI, Simão S. Sistemas Operacionais - Vol. 11 - 4a edição. Bookman, 2010. VitalBook file. Ken, ARNOLD,, GOSLING, James, and HOLMES, David. A Linguagem de Programação Java, 4a edição. Bookman, 2007. VitalBook file. DANTAS, Mário. Computação distribuída de alto desempenho: redes, clusters e grids computacionais. Rio de Janeiro:Axcel Books do Brasil, 2005. DEITEL, Paul; DEITEL, Harvey; FÁBIO LUÍS PICELLI LUCCHINI EV. TÉCNICA. Java: como programar. 8. ed. São Paulo: Pearson Prentice Hall, 2011. xxix, 1144 p. SILBERSCHATZ, Abraham ; Galvin, Peter. B. GAGNE, Greg. Sistemas Operacionais Com Java. 7. ed. São Paulo: Elsevier, 2008
|