processos e threads - ipsltodi.est.ips.pt/nribeiro/lecturing/so_02-03/a03.pdfprocessos e threads 1....
TRANSCRIPT
Processos e Threads
1. Comunicação entre processos (IPS)
2. Problemas clássicos de IPC
3. Problemas
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)
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.
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
12/16/2002 João Magalhães 2001/2002 5
Regiões criticas (2)
Exclusão mutua utilizando regiões criticas
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.
12/16/2002 João Magalhães 2001/2002 7
Exclusão mutua com espera activa (2)
Solução de Peterson's paraexclusãomutua
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
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?
12/16/2002 João Magalhães 2001/2002 10
“Adormecer e Acordar”Problema produtor-consumidor pode ser fatal numa situação de corrida
12/16/2002 João Magalhães 2001/2002 11
SemaforosSolução do problema produtor-consumidor com semaforos
12/16/2002 João Magalhães 2001/2002 12
MutexesImplementação de mutex_lock e mutex_unlock
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.
12/16/2002 João Magalhães 2001/2002 14
Exemplo de MonitoresProblema produtor-consumidor com monitores
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)
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)
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
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)
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
12/16/2002 João Magalhães 2001/2002 20
Jantar de filosofos(2) Solução errada do problema
12/16/2002 João Magalhães 2001/2002 21
Jantar de filosofos(3) Soluçao do problema (parte 1)
12/16/2002 João Magalhães 2001/2002 22
Jantar de filosofos(4) Soluçao do problema (parte 2)
12/16/2002 João Magalhães 2001/2002 23
Acesso de leituras e de escritas
Reader
Writer
Reader Reader ReaderReader
Reader
Espera acessoexclusivo.
12/16/2002 João Magalhães 2001/2002 24
Acessos de leituras e escritasUma solução para o problema
12/16/2002 João Magalhães 2001/2002 25
Problema do barbeiro adormecido (1)
12/16/2002 João Magalhães 2001/2002 26
Problema do barbeiro adormecido(2)Soluçao do problema.
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.