![Page 1: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/1.jpg)
Processos e Threads
1. Comunicação entre processos (IPS)
2. Problemas clássicos de IPC
3. Problemas
![Page 2: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/2.jpg)
12/16/2002 João Magalhães 2001/2002 2
Comunicação entre processos
Topicos fundamentais de comunicação entre processos:
– Sincronismo entre processos (barreiras, mutex, semaforos)
– Acesso exclusivo a um recurso por um processo (mutex,
semaforos)
– Passagem de informação entre processos (pipes, sockets)
![Page 3: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/3.jpg)
12/16/2002 João Magalhães 2001/2002 3
Comunicação entre processosCondições de corrida
Dois processos a aceder à mesma posição da fila de espera.
![Page 4: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/4.jpg)
12/16/2002 João Magalhães 2001/2002 4
Regiões criticas (1)
Quatro condiçoes para ter acesso exclusivo:– Não podem existir dois processos simultaneamente em regiões
criticas
– Nada se pode assumir sobre a velocidade e o número de CPUs
– Nenhum processo fora da região critica pode bloquear outroprocesso
– Nenhum processo pode esperar eternamente para entrar na regiãocritica
![Page 5: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/5.jpg)
12/16/2002 João Magalhães 2001/2002 5
Regiões criticas (2)
Exclusão mutua utilizando regiões criticas
![Page 6: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/6.jpg)
12/16/2002 João Magalhães 2001/2002 6
Exclusão mutua com espera activa(1)
Solução proposta para problema de regiões criticas(a) Processo 0. (b) Processo 1.
![Page 7: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/7.jpg)
12/16/2002 João Magalhães 2001/2002 7
Exclusão mutua com espera activa (2)
Solução de Peterson's paraexclusãomutua
![Page 8: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/8.jpg)
12/16/2002 João Magalhães 2001/2002 8
Exclusão mutua com espera activa (3)
Entrada e saida de uma região critica utilizando aTSL
![Page 9: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/9.jpg)
12/16/2002 João Magalhães 2001/2002 9
Espera não activa
Acesso a regiões criticas com espera activa:– Ambas as soluções anteriores são correctas
• Instrução TSL • Solução de Peterson’s
– Processo activo enquanto espera consome recursos
Como implementar espera não activa?
![Page 10: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/10.jpg)
12/16/2002 João Magalhães 2001/2002 10
“Adormecer e Acordar”Problema produtor-consumidor pode ser fatal numa situação de corrida
![Page 11: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/11.jpg)
12/16/2002 João Magalhães 2001/2002 11
SemaforosSolução do problema produtor-consumidor com semaforos
![Page 12: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/12.jpg)
12/16/2002 João Magalhães 2001/2002 12
MutexesImplementação de mutex_lock e mutex_unlock
![Page 13: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/13.jpg)
12/16/2002 João Magalhães 2001/2002 13
Monitores (1)Exemplo de um monitor
Grupo de funções, variaveis e estruturas de dados.
Processos podem chamar elementosdo monitor arbitrariamente.
Processos não têm acesso aosdados do monitor.
Apenas um processo está activo num monitor.
![Page 14: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/14.jpg)
12/16/2002 João Magalhães 2001/2002 14
Exemplo de MonitoresProblema produtor-consumidor com monitores
![Page 15: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/15.jpg)
12/16/2002 João Magalhães 2001/2002 15
Implementação de Monitores em JavaSolução do problema produtor-consumidor em Java (parte 1)
![Page 16: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/16.jpg)
12/16/2002 João Magalhães 2001/2002 16
Implementação de Monitores em Java Solução do problema produtor-consumidor em Java (parte 2)
![Page 17: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/17.jpg)
12/16/2002 João Magalhães 2001/2002 17
Barreiras
Utilização de uma barreira:– processos aproximam-se de uma barreira– Todos os processos são bloqueados pela barreira– Quando o ultimo chega (quorum), passam todos
![Page 18: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/18.jpg)
12/16/2002 João Magalhães 2001/2002 18
Problemas clássicos de IPC
Jantar de filosofos (acesso a recursos limitados)
Acessos de leitura e de escrita
Barbeiro adormecido (filas de espera)
![Page 19: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/19.jpg)
12/16/2002 João Magalhães 2001/2002 19
Jantar de filosofos (1)
Filosofos comem/pensam
Para comer são necessários 2 garfos
Escolher um garfo de cada vez
Como prevenir deadlocks
![Page 20: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/20.jpg)
12/16/2002 João Magalhães 2001/2002 20
Jantar de filosofos(2) Solução errada do problema
![Page 21: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/21.jpg)
12/16/2002 João Magalhães 2001/2002 21
Jantar de filosofos(3) Soluçao do problema (parte 1)
![Page 22: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/22.jpg)
12/16/2002 João Magalhães 2001/2002 22
Jantar de filosofos(4) Soluçao do problema (parte 2)
![Page 23: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/23.jpg)
12/16/2002 João Magalhães 2001/2002 23
Acesso de leituras e de escritas
Reader
Writer
Reader Reader ReaderReader
Reader
Espera acessoexclusivo.
![Page 24: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/24.jpg)
12/16/2002 João Magalhães 2001/2002 24
Acessos de leituras e escritasUma solução para o problema
![Page 25: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/25.jpg)
12/16/2002 João Magalhães 2001/2002 25
Problema do barbeiro adormecido (1)
![Page 26: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/26.jpg)
12/16/2002 João Magalhães 2001/2002 26
Problema do barbeiro adormecido(2)Soluçao do problema.
![Page 27: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas](https://reader034.vdocument.in/reader034/viewer/2022050607/5fae5b07f8ea40082d2b2c1c/html5/thumbnails/27.jpg)
12/16/2002 João Magalhães 2001/2002 27
Problema:
No cenário do problema acesso de leituras e escritas
alterar a solução de modo a que o writer não espere
indeterminadamente.
Reader
Writer
Reader Reader ReaderReader
Reader
Espera acessoexclusivo.