Download - Comunicação Interprocessos
![Page 1: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/1.jpg)
1
Comunicação Interprocessos
Prof. Alexandre Monteiro
Recife
![Page 2: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/2.jpg)
Contatos
Prof. Guilherme Alexandre Monteiro Reinaldo
Apelido: Alexandre Cordel
E-mail/gtalk: [email protected]
Site: http://www.alexandrecordel.com.br/fbv
Celular: (81) 9801-1878
![Page 3: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/3.jpg)
Comunicação Interprocessos
Os processos podem precisar trocar informações entre eles ou podem solicitar a utilização de um mesmo recurso simultaneamente, como arquivos, registros, dispositivos de E/S e memória.
O compartilhamento de recursos entre vários processos pode causar situações indesejáveis e, dependendo do caso, gerar o comprometimento da aplicação.
O Sistema Operacional tem a função de gerenciar e sincronizar processos concorrentes, com o objetivo de manter o bom funcionamento do sistema.
![Page 4: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/4.jpg)
4
Comunicação InterprocessoCondições de Disputa/Corrida
Dois processos querem ter acesso simultaneamente à memória compartilhada (Ex: spool de Impressão )
![Page 5: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/5.jpg)
Regiões Críticas
Para se evitar uma condição de corrida é preciso definir métodos que proíba que mais de um processo acesse uma determinada área de memória compartilhada ao mesmo tempo.
Esses métodos são conhecidos como exclusão mútua ou MUTEX (MUTual EXclusion).
A parte do programa no qual o processo acessa memória compartilhada é chamada seção crítica ou região crítica.
Dessa forma, a solução para se evitar uma condição de corrida seria organizar os problemas de tal forma que nenhum de dois ou mais processos estivessem em suas regiões críticas ao mesmo tempo.
![Page 6: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/6.jpg)
6
Regiões Críticas (1)
Condições necessárias para prover exclusão mútua:
1. Nunca dois processos simultaneamente em uma região crítica
2. Nada pode ser afirmado sobre a velocidade ou sobre o número de CPUs
3. Nenhum processo executando fora de sua região crítica pode bloquear outros processos
4. Nenhum processo deve esperar eternamente para entrar em sua região crítica
![Page 7: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/7.jpg)
7
Regiões Críticas (2)Espera Ativa
Exclusão mútua usando regiões críticas
proposta de exclusão mútua na qual, um processo quando está acessando sua região crítica, outro processo que deseja entrar também em região crítica fica aguardando.
![Page 8: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/8.jpg)
8
Exclusão Mútua com Espera Ociosa (1) – Alternativa Estrita
Solução proposta para o problema da região crítica(a) Processo 0. (b) Processo 1.
![Page 9: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/9.jpg)
9
Exclusão Mútua comEspera Ociosa (2)
Solução de Peterson para implementar exclusão mútua
![Page 10: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/10.jpg)
10
Dormir e Acordar
Problema do produtor-consumidor com uma condição de disputa fatal
![Page 11: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/11.jpg)
11
Semáforos
O problema do produtor-consumidor usando semáforos
![Page 12: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/12.jpg)
12
Mutexes
Implementação de mutex_lock e mutex_unlock
![Page 13: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/13.jpg)
13
Monitores (1)
Exemplo de um monitor
![Page 14: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/14.jpg)
14
Monitores (2)
• Delineamento do problema do produtor-consumidor com monitores– somente um procedimento está ativo por vez no monitor– o buffer tem N lugares
![Page 15: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/15.jpg)
15
Monitores (3)
Solução para o problema do produtor-consumidor em Java
![Page 16: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/16.jpg)
16
Monitores (4)
Solução para o problema do produtor-consumidor em Java (parte 2)
![Page 17: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/17.jpg)
17
Troca de MensagensO problema do produtor-consumidor com N mensagens
![Page 18: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/18.jpg)
18
Barreiras
• Uso de uma barreiraa) processos se aproximando de uma barreira
b) todos os processos, exceto um, bloqueados pela barreira
c) último processo chega, todos passam
![Page 19: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/19.jpg)
19
Jantar dos Filósofos (1)
• Filósofos comem/pensam• Cada um precisa de 2
garfos para comer• Pega um garfo por vez• Como prevenir deadlock• Situação de impasse.
![Page 20: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/20.jpg)
20
Jantar dos Filósofos (2)
Uma solução errada para o problema do jantar dos filósofos
![Page 21: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/21.jpg)
21
Jantar dos Filósofos (3)
Uma solução para o problema do jantar dos filósofos (parte 1)
![Page 22: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/22.jpg)
22
Jantar dos Filósofos (4)
Uma solução para o problema do jantar dos filósofos (parte 2)
![Page 23: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/23.jpg)
23
O Problema dos Leitores e Escritores
Uma solução para o problema dos leitores e escritores
![Page 24: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/24.jpg)
24
O Problema do Barbeiro Sonolento (1)
![Page 25: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/25.jpg)
25
O Problema do Barbeiro Sonolento (2)
Solução para o problema do barbeiro sonolento
![Page 26: Comunicação Interprocessos](https://reader035.vdocuments.com.br/reader035/viewer/2022062717/56812b0b550346895d8ef4ae/html5/thumbnails/26.jpg)
Referências
Sistemas Operacionais Modernos – 3ª Edição. A. Tanenbaum, 2008.
Modern Operating Systems 3 e. Prentice-Hall, 2008.