java -indonésia -real -anos -ao parte

Propaganda
Processos e Threads
1. Comunicação entre processos (IPS)
2. Problemas clássicos de IPC
3. Problemas
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
2
Comunicação entre processos
Condições de corrida
Dois processos a aceder à mesma posição da fila de espera.
12/16/2002
João Magalhães 2001/2002
3
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 outro
processo
– Nenhum processo pode esperar eternamente para entrar na região
critica
12/16/2002
João Magalhães 2001/2002
4
Regiões criticas (2)
Exclusão mutua utilizando regiões criticas
12/16/2002
João Magalhães 2001/2002
5
Exclusão mutua com espera activa(1)
Solução proposta para problema de regiões criticas
(a) Processo 0.
12/16/2002
(b) Processo 1.
João Magalhães 2001/2002
6
Exclusão mutua com espera activa (2)
Solução de
Peterson's
para
exclusão
mutua
12/16/2002
João Magalhães 2001/2002
7
Exclusão mutua com espera activa (3)
Entrada e saida de uma região critica utilizando a
TSL
12/16/2002
João Magalhães 2001/2002
8
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
9
“Adormecer e Acordar”
Problema produtor-consumidor pode ser fatal numa situação de corrida
12/16/2002
João Magalhães 2001/2002
10
Semaforos
Solução do problema produtor-consumidor com semaforos
12/16/2002
João Magalhães 2001/2002
11
Mutexes
Implementação de mutex_lock e mutex_unlock
12/16/2002
João Magalhães 2001/2002
12
Monitores (1)
Exemplo de um monitor
Grupo de funções, variaveis e
estruturas de dados.
Processos podem chamar elementos
do monitor arbitrariamente.
Processos não têm acesso aos
dados do monitor.
Apenas um processo está activo num
monitor.
12/16/2002
João Magalhães 2001/2002
13
Exemplo de Monitores
Problema produtor-consumidor com monitores
12/16/2002
João Magalhães 2001/2002
14
Implementação de Monitores em Java
Solução do problema produtor-consumidor em Java (parte 1)
12/16/2002
João Magalhães 2001/2002
15
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
16
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
17
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
18
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
19
Jantar de filosofos(2)
Solução errada do problema
12/16/2002
João Magalhães 2001/2002
20
Jantar de filosofos(3)
Soluçao do problema (parte 1)
12/16/2002
João Magalhães 2001/2002
21
Jantar de filosofos(4)
Soluçao do problema (parte 2)
12/16/2002
João Magalhães 2001/2002
22
Acesso de leituras e de escritas
Espera acesso
exclusivo.
Writer
Reader
Reader
Reader
Reader
Reader
Reader
12/16/2002
João Magalhães 2001/2002
23
Acessos de leituras e escritas
Uma solução para o problema
12/16/2002
João Magalhães 2001/2002
24
Problema do barbeiro adormecido (1)
12/16/2002
João Magalhães 2001/2002
25
Problema do barbeiro adormecido(2)
Soluçao do problema.
12/16/2002
João Magalhães 2001/2002
26
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.
Espera acesso
exclusivo.
Writer
Reader
Reader
Reader
Reader
Reader
Reader
12/16/2002
João Magalhães 2001/2002
27
Download