problemas clássicos de comunicação interprocessos
TRANSCRIPT
Problemas Clássicos de Comunicação InterprocessosComponentes: Lucas Vinícius e Oto Antônio
Roteiro1. O que são os Problemas Clássicos de
Comunicação Interprocessos;2. Problema dos Produtores e Consumidores
(problema do buffer associado);3. Problema dos Filósofos Jantando (Filósofos
Glutões);4. Problemas dos Leitores e dos Escritores;5. Problema do Barbeiro Adormecido.
A apresentação de conter● Descrição do problema, características
principais;● Como podem ser resolvidos quais técnicas ● Análise do algoritmo proposto na literatura.
O que são os Problemas Clássicos de Comunicação Interprocessos?
Problemas dos Produtores e Consumidores (Buffer Associado)❏ Um sistema é composto por entidades produtoras e
entidades consumidoras.
❏ Os processos compartilham um buffer de tamanho fixo.
❏ O problema consiste em assegurar que o produtor não irá tentar adicionar dados no buffer quando este estiver cheio, que o consumidor não tentará remover dados quando o buffer estiver vazio ou que os dois tentem acessar o buffer ao mesmo tempo.
Problemas dos Produtores e Consumidores (Buffer Associado)
“A solução para o produtor é dormir quando o buffer estiver cheio. Na próxima vez que o consumidor remover um item do buffer, ele irá acordar o produtor, que continuará a colocar dados no buffer. Da mesma forma, o consumidor dorme quando encontra o buffer vazio. Na próxima vez que o produtor adicionar um dado no buffer, ele acordará o consumidor.” (Autor Desconhecido)
Problemas dos Produtores e Consumidores (Buffer Associado)
Produtores e Consumidores usando semáforos❏ Três semáforos.
❏ Full (conta espaços preenchidos).❏ Empty (conta espaços vazios).❏ Mutex (exclusão mutua).
❏ UP/DOWN❏ Down antes de entrar na região critica e up logo
após sair.❏ Up e down são implementados como system calls.
Produtores e Consumidores usando semáforos❏ O problema pode ser generalizado para múltiplos
produtores e múltiplos consumidores.❏ Se múltiplas CPUs são usadas, então os
semáforos devem ser protegidos por uma variável de impedimento para assegurar que apenas uma CPU examine aquele semáforo.
Produtores e Consumidores usando semáforos
Problema dos Filósofos Jantando (Filósofos Glutões)❏ 5 Filósofos sentados em torno de uma mesa
redonda.❏ Cada filósofo tem um prato com espaguete e o
come com dois garfos/hashis.❏ Entre cada par de pratos existe um garfo.
❏ Filósofo come e pensa.
❏ Quando um filósofo fica com fome faz o que ?❏ Pega cada garfo, um de cada vez, e come sua
comida.
Problema dos Filósofos Jantando (Filósofos Glutões)❏ Como fazer com que todos os filósofos comam e
pensem sem “matar” um outro de fome.
❏ �Uma solução é a chamada de um procedimento no qual o filósofo espera até o garfo está disponível e o pega.
❏ Soluções óbvias não funcionam.❏ Deadlock❏ Starvation
Problema dos Filósofos Jantando (Filósofos Glutões)
Problema dos Filósofos Jantando (Filósofos Glutões)
Mas existe uma maneira !
Problema dos Filósofos Jantando (Filósofos Glutões)
Problemas dos Leitores e dos Escritores
❏ O Problema modela um acesso a uma base de dados.
❏ Exemplo: Sistemas de linhas aéreas com muitos processos em competição querendo ler e escrever num banco de dados.
Problemas dos Leitores e dos Escritores
❏ Muitos processos podem ler do banco de dados ao mesmo tempo, mas se um processo estiver atualizando o banco de dados, nenhum outro processo pode ter acesso aos arquivos, nem mesmo os leitores.
Problemas dos Leitores e dos Escritores
Solução 1: Escritores acessam o banco de dados a vontade e os escritores devem esperar até que não haja mais leitores;
Solução 2: Se um escritor entrar, os próximos da fila terão de esperar sua ação para realizarem outras operações (leitura ou escrita).
Problemas dos Leitores e dos Escritores (Algoritmo)
Problema do Barbeiro Adormecido
● Numa barbearia há um barbeiro, uma cadeira de barbeiro e n cadeiras para eventuais clientes;
● O barbeiro senta na cadeira de barbeiro e dorme (quando não há clientes);
● Quando chega um cliente ele acorda o babeiro;
Problema do Barbeiro Adormecido
● Clientes que chegam enquanto o barbeiro estiver trabalhando sentam nas cadeiras se disponíveis;
● Se não houver cadeiras disponíveis o cliente que chegou sai da barbearia.
Problema do Barbeiro Adormecido
● Três semáforos são usados:○ Customers○ Barbers○ Multex○ Variável Waiting
Problema do Barbeiro Adormecido (Algoritmo)
Problema do Barbeiro Adormecido(Imagem Ilustrativa)
Referênciashttp://ces33.blogspot.com.br/2009/05/o-problema-do-jantar-dos-filosofos-com.htmlhttp://wiki.icmc.usp.br/images/7/76/Aula06_2.pdfhttp://nonodigitobr.blogspot.com.br/2012/06/problema-do-produtor-consumidor-usando.htmlhttp://www.ufpi.br/subsiteFiles/eml/arquivos/files/SO/SO_Processos2.pdf
LivroTANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio de Janeiro: Prentice-Hall do Brasil, 2003. 695p Inclui referencias e indice ISBN 9788587918574