Computaçao
DCA-108 Sistemas Operacionais
Programação
Concorrente
Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br
Luiz Affonso Guedes
1
Conteúdo
❒
Abstrações e Paradigmas em Programação Concorrente
❍
❒
❒ Apresentar os principais conceitos e
Tarefas, região crítica, sincronização, comunicação.
paradigmas associados com programação concorrente. ❒ Apresentar Redes de Petri como uma ferramenta de modelagem de sistemas concorrentes. ❒ Associar os paradigmas e problemas de programação concorrente com o escopo dos
Sistemas Operacionais
Redes de Petri como ferramenta de modelagem de sistemas concorrentes. ❒
Propriedades de sistemas concorrentes
❒
Primitivas de Programação Concorrente
❍
Exclusão mútua, Starvation e DeadLock
❍
❒
Semáforos, monitores
❍
Memória compartilhada e troca de mensagens
Problemas clássicos em programação concorrente
❍
Produtor-consumidor
❍
Leitores e escritores
❍
2
Objetivos
Caracterização e escopo da programação concorrente.
❒
Luiz Affonso Guedes
Jantar dos filósofos
Luiz Affonso Guedes
3
Recordando
Luiz Affonso Guedes
4
Recordando
❒ Cenário Atual dos Sistemas Operacionais
❍ Uma ou mais CPUs, controladores de devices conectedos via uma barramento comum, acessando memórias compartilhadas.
❍ Execução concorrente de CPUs e devices competindo por recursos.
Objetivos de sistema operacional
❒ Executar programas de forma conveniente
para o usuário.
❒ Gerenciar os recursos de software e
hardware como um todo.
❒ Utilizar os recursos de hardware de forma eficiente e segura.
Luiz Affonso Guedes
5
Luiz Affonso Guedes
6
1
Recordando
Conseqüências da Multiprogramação
❒ Para se construir SO eficientes, há
❒ Necessidade de controle e sincronização
dos diversos programas.
a necessidade Multiprogramação!
❒ Necessidade de se criar conceitos e
abstração novas
❍