Академический Документы
Профессиональный Документы
Культура Документы
ProblemasClssicosdeComunicaoentre Processos
NortonTrevisanRoman MarceloMorandini JUeyama
Produtor Consumidor
Responsveis pela produo de itens que so armazenados em um buffer (ou em uma fila) Itens produzidos podem ser consumidos por qualquer consumidor Consomem os itens armazenados no buffer (ou na fila) Itens consumidos podem ser de qualquer produtor
Entidades consumidoras
Produtor Consumidor
Cinco filsofos esto sentados ao redor de uma mesa circular para o jantar.
Cada filsofo possui um prato para comer macarro. Alm disso, eles dispem de hashis, em vez de garfos
4 3
0 2 1
Se conseguir pegar os dois, come por alguns instantes e depois larga os hashis
tpicos
Que fazer???
tpicos
Isso funciona?
Isso funciona?
Em take_fork():
E como solucionar?
Isso funciona?
Em take_fork():
E como solucionar?
Aps pegar o hashi da esquerda, o filsofo verifica se o da direita est livre. Se no estiver, devolve o hashi que pegou, espera um pouco e tenta novamente
Isso funciona?
Isso funciona?
Vero que o da direita no est livre Largaro seu garfo e e esperaro Pegaro novamente o garfo da esquerda Vero que o da direita no est livre ...
Starvation (inanio)
Deadlock todos os filsofos pegam um nico hashi ao mesmo tempo; Starvation os filsofos ficam indefinidamente pegando hashis simultaneamente;
0
4 3
2 1
E agora?
Via ethernet, exatamente isso que feito com envio de pacotes Sistemas no crticos E controle de segurana em usina nuclear? Ser uma boa idia?
Proteger os passos aps pensar por um instante com um semforo binrio um mutex
down(mutex)
up(mutex)
semaphore mutex = 1;
down(&mutex);
up(&mutex);
H problemas?
H problemas?
Somente um filsofo pode comer em um dado momento Com 5 hashis, deveramos permitir que 2 filsofos comessem ao mesmo tempo
Como solucionar?
Sem deadlocks ou starvation Com o mximo de paralelismo para um nmero arbitrrio de filsofos
Como solucionar?
Sem deadlocks ou starvation Com o mximo de paralelismo para um nmero arbitrrio de filsofos Usar um arranjo state para identificar se um filsofo est comendo, pensando ou faminto (pensando em pegar os hashis)
Um filsofo s pode comer (estado) se nenhum dos vizinhos estiver comendo Filsofos famintos podem ser bloqueados se os hashis estiverem ocupados
til para modelar processos que competem por acesso exclusivo a um nmero limitado de recursos:
Leitores e Escritores
Modela acessos a uma base de dados Um sistema com uma base de dados acessado simultaneamente por diversas entidades. Estas entidades realizam dois tipos de operaes:
Leitura Escrita
Leitores e Escritores
Neste sistema aceitvel a existncia de diversas entidades lendo a base de dados ao mesmo tempo. Porm, se um processo necessita escrever na base, nenhuma outra entidade pode estar realizando acesso a ela
Leitores e Escritores
O que fazer?
Leitores e Escritores
O que fazer?
Se for o primeiro leitor a usar a base, deve bloque-la, para que nenhum escritor entre Se, contudo, j houver outro leitor l, basta usar a base
Leitores e Escritores
Possvel soluo:
Ele esconde uma deciso tomada por ns Suponha que um leitor acesse a base Enquanto isso, outro leitor aparece, e entra sem problemas. Mais leitores aparecem, entrando na base Agora suponha que um escritor aparece
E como resolvemos?
E como resolvemos?
Podemos fazer com que, quando um leitor chegar e um escritor estiver esperando, o leitor suspenso tambm, em vez de ser admitido imediatamente
Escritores precisam apenas esperar que leitores ativos completem No precisam esperar por leitores que chegam depois dele H menos concorrncia menor performance
Desvantagem:
Barbeiro Sonolento
Barbeiro Sonolento
Quando um cliente chega, ele acorda o barbeiro. Quando um cliente chega e o barbeiro estiver atendendo um cliente, ele aguarda sua vez sentado na cadeira de espera. Quando um cliente chega e no existem cadeiras de espera disponveis, o cliente vai embora. O problema programar o barbeiro e os clientes sem que haja condio de disputa
Um cliente que entra na barbearia deve contar o nmero de clientes espera de atendimento. Se este for menor que o nmero de cadeiras, ele ficar; do contrrio, sair Qualquer outro cliente (e at o barbeiro) deve esperar a liberao de mutex
Sugesto de Exerccios:
Links Interessantes