Skip to: site menu | section menu | main content
Prof. Marlos Marques
marlos
uesb
gmail
com
DCE734 - Programação Concorrente
Conteúdo Programático
I Unidade
- Introdução/revisão dos sistemas computacionais
- Hardware, Software, Peopleware
- Conceito de Plataforma Computacional
- Processo de Tradução
- Compilação e Interpretação
- Classificação de sistemas computacionais concorrentes, paralelos e distribuídos
- Conceitos de hardware
- Multiprocessadores x Multicomputadores
- Formas de acoplamento
- Sistemas fortemente acoplados
- Sistemas fracamente acoplados
- Taxonomia de Flynn
- SISD, SIMD, MISD, MIMD
- Memória compartilhada x Troca de mensagens
- Conceitos de software
- Gerenciamento de processos
- Modelo de processos
- Hierarquia de processos
- Implementação de processos
- Bloco de controle de processos
- Diagrama de estados de um processo
- Timesharing
- Hierarquia de processos
- Conceito de subprocessos
- Diferença entre programas, processos e threads
- Conceitos de threads
- Implementação de threads
- LWP (processos leves)
- Sistemas multithreads
- Threads em Java
- Threads em C++
II Unidade
- Comunicação entre processos
- Condições de corrida
- Regiões críticas
- Exclusão mútua
- Deadlock
- Starvation
- Espera desnecessária
- Problemas de sincronização
- Estudo de caso: Problema da variável compartilhada X
- Estudo de caso: Problema do Trem
- Ponderações sobre os estudos de caso:
- Como e aonde ocorre a situação indesejada?
- Qual anomalia a situação indesejada gera?
- Como evitar que a situação indesejada ocorra?
- Como identificar a região crítica?
- Como proteger a regiuão crítica?
- Considerações sobre a quantidade de processos
- Considerações sobre a velocidade dos processos
---------- 2025.1 - PROVA P1 ATÉ AQUI ----------
- Soluções por hardware
- Inibição das interrupções
- Instrução test-and-set
- Soluções por software (com e sem espera ocupada)
- Variáveis de travamento
- Estrita alternância
- Solução de Decker
- Solução de Peterson
- Semáforos
- Monitores
- Troca de mensagens
- Problemas clássicos da comunicação entre processos
- Produtor/Consumidor
- Jantar dos Filósofos
- Leitores/Escritores
- Barbeiro Dorminhoco
- Problema da Simulação de Trânsito/Trafégo Autômato
III Unidade
- Introdução a programação paralela
- Medidas de desempenho
- Eficência
- Aceleração/speedup
- Balanceamento de carga
- Granularidade
- Técnicas de desenvolvimento de algoritmos paralelos
- Paralelizando algoritmos seqüênciais
- Estudos de casos: algoritmos de Ordenação
- Algoritmo da Bolha
- Algoritmo da Inserção
- Algoritmo da Seleção
- Algoritmo Odd/Even (sequencial e paralelo) slides de apoio
-------------------- PROVA P2 ATÉ AQUI -------------------------
- Estudos de casos: operações com matrizes
- Elemento neutro
- Transposta
- Determinante
- Multiplicação
- Implementação dos Trabalhos Práticos