SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Problemas Clássicos
de Comunicação
Interprocessos
Componentes: Lucas Vinícius e Oto
Antônio
Roteiro
1. 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ências
http://ces33.blogspot.com.br/2009/05/o-problema-do-jantar-dos-filosofos-co
m.html
http://wiki.icmc.usp.br/images/7/76/Aula06_2.pdf
http://nonodigitobr.blogspot.com.br/2012/06/problema-do-produtor-consumid
or-usando.html
http://www.ufpi.br/subsiteFiles/eml/arquivos/files/SO/SO_Processos2.pdf
Livro
TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio de
Janeiro: Prentice-Hall do Brasil, 2003. 695p Inclui referencias e indice ISBN
9788587918574

Mais conteúdo relacionado

Mais procurados

Sistemas operacionais de redes particionamento de discos ii
Sistemas operacionais de redes   particionamento de discos iiSistemas operacionais de redes   particionamento de discos ii
Sistemas operacionais de redes particionamento de discos ii
Carlos Melo
 
Tipos de cabos
Tipos de cabosTipos de cabos
Tipos de cabos
BrunoXina
 
Cabeamentos e conectores de rede
Cabeamentos e conectores de redeCabeamentos e conectores de rede
Cabeamentos e conectores de rede
alphabigdog
 
Apostila.de.redes. .cabeamento.e.estruturado
Apostila.de.redes. .cabeamento.e.estruturadoApostila.de.redes. .cabeamento.e.estruturado
Apostila.de.redes. .cabeamento.e.estruturado
jpl200
 
Projeto: Montagem de uma rede local
Projeto: Montagem de uma rede local Projeto: Montagem de uma rede local
Projeto: Montagem de uma rede local
Verônica Veiga
 
Planeamento projecto redes
Planeamento projecto redesPlaneamento projecto redes
Planeamento projecto redes
H.p. Lisboa
 

Mais procurados (20)

Cabos de rede
Cabos de redeCabos de rede
Cabos de rede
 
Projeto de Rede Local (LAN)
Projeto de Rede Local (LAN)Projeto de Rede Local (LAN)
Projeto de Rede Local (LAN)
 
49778140 projeto-de-rede
49778140 projeto-de-rede49778140 projeto-de-rede
49778140 projeto-de-rede
 
Sistemas operacionais de redes particionamento de discos ii
Sistemas operacionais de redes   particionamento de discos iiSistemas operacionais de redes   particionamento de discos ii
Sistemas operacionais de redes particionamento de discos ii
 
Tipos de cabos
Tipos de cabosTipos de cabos
Tipos de cabos
 
Cablagem de rede
Cablagem de redeCablagem de rede
Cablagem de rede
 
Informática - 4ª Geração
Informática - 4ª GeraçãoInformática - 4ª Geração
Informática - 4ª Geração
 
Cabeamentos e conectores de rede
Cabeamentos e conectores de redeCabeamentos e conectores de rede
Cabeamentos e conectores de rede
 
Apostila.de.redes. .cabeamento.e.estruturado
Apostila.de.redes. .cabeamento.e.estruturadoApostila.de.redes. .cabeamento.e.estruturado
Apostila.de.redes. .cabeamento.e.estruturado
 
Projeto: Montagem de uma rede local
Projeto: Montagem de uma rede local Projeto: Montagem de uma rede local
Projeto: Montagem de uma rede local
 
Projeto de redes
Projeto de redesProjeto de redes
Projeto de redes
 
Planeamento projecto redes
Planeamento projecto redesPlaneamento projecto redes
Planeamento projecto redes
 
Infraestrutura de Redes
Infraestrutura de RedesInfraestrutura de Redes
Infraestrutura de Redes
 
Redes 5 cabeamento
Redes 5 cabeamentoRedes 5 cabeamento
Redes 5 cabeamento
 
Aula 01 - Redes Wireless
Aula 01 - Redes WirelessAula 01 - Redes Wireless
Aula 01 - Redes Wireless
 
FIBRA ÓPTICA
FIBRA ÓPTICA FIBRA ÓPTICA
FIBRA ÓPTICA
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de Hardware
 
Sistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFSSistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFS
 
Redes de computadores 2 - Aula 4 - Divisão em sub-redes
Redes de computadores 2 - Aula 4 - Divisão em sub-redesRedes de computadores 2 - Aula 4 - Divisão em sub-redes
Redes de computadores 2 - Aula 4 - Divisão em sub-redes
 
Wifi
WifiWifi
Wifi
 

Mais de Lucas Vinícius

Mais de Lucas Vinícius (17)

A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
 
Como utilizar windows management instrumentation com a linguagem vb script
Como utilizar windows management instrumentation com a linguagem vb scriptComo utilizar windows management instrumentation com a linguagem vb script
Como utilizar windows management instrumentation com a linguagem vb script
 
Probabilidade e estatística - Variáveis Aleatórias
Probabilidade e estatística - Variáveis AleatóriasProbabilidade e estatística - Variáveis Aleatórias
Probabilidade e estatística - Variáveis Aleatórias
 
A robustez de circuitos sequenciais
A robustez de circuitos sequenciaisA robustez de circuitos sequenciais
A robustez de circuitos sequenciais
 
Definição de marketing e suas implicações
Definição de marketing e suas implicaçõesDefinição de marketing e suas implicações
Definição de marketing e suas implicações
 
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagem
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagemTeorias da aprendizagem de Piaget: equilibração e fases de aprendizagem
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagem
 
Behaviorismo de Skinner
Behaviorismo de SkinnerBehaviorismo de Skinner
Behaviorismo de Skinner
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUM
 
Ruído em higiene e segurança no trabalho
Ruído em  higiene e segurança no trabalhoRuído em  higiene e segurança no trabalho
Ruído em higiene e segurança no trabalho
 
Rethinking main memory oltp recovery
Rethinking main memory oltp recoveryRethinking main memory oltp recovery
Rethinking main memory oltp recovery
 
Gerenciamento de processos Linux
Gerenciamento de processos LinuxGerenciamento de processos Linux
Gerenciamento de processos Linux
 
Prevenção, proteção e combate ao incêndio de classe A
Prevenção, proteção e combate ao incêndio de classe APrevenção, proteção e combate ao incêndio de classe A
Prevenção, proteção e combate ao incêndio de classe A
 
Fases do desenvolvimento de acordo com a Teoria de Freud
Fases do desenvolvimento  de acordo com a Teoria de FreudFases do desenvolvimento  de acordo com a Teoria de Freud
Fases do desenvolvimento de acordo com a Teoria de Freud
 
Telefone sem fio - um problema de má comunicação
Telefone sem fio - um problema de má comunicaçãoTelefone sem fio - um problema de má comunicação
Telefone sem fio - um problema de má comunicação
 
Pesquisas envolvendo seres humanos
Pesquisas envolvendo seres humanosPesquisas envolvendo seres humanos
Pesquisas envolvendo seres humanos
 
Complexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd WarshallComplexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd Warshall
 
Introdução a Simulação de redes Sensores sem fio com Castalia
Introdução a Simulação de redes Sensores sem fio com CastaliaIntrodução a Simulação de redes Sensores sem fio com Castalia
Introdução a Simulação de redes Sensores sem fio com Castalia
 

Problemas clássicos de comunicação interprocessos

  • 2. Roteiro 1. 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.
  • 3. 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.
  • 4. O que são os Problemas Clássicos de Comunicação Interprocessos?
  • 5. 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.
  • 6. 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)
  • 7. Problemas dos Produtores e Consumidores (Buffer Associado)
  • 8. 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.
  • 9. 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.
  • 11. 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.
  • 12. 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
  • 13. Problema dos Filósofos Jantando (Filósofos Glutões)
  • 14. Problema dos Filósofos Jantando (Filósofos Glutões) Mas existe uma maneira !
  • 15. Problema dos Filósofos Jantando (Filósofos Glutões)
  • 16. 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.
  • 17. 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.
  • 18. 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).
  • 19. Problemas dos Leitores e dos Escritores (Algoritmo)
  • 20. 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;
  • 21. 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.
  • 22. Problema do Barbeiro Adormecido ● Três semáforos são usados: ○ Customers ○ Barbers ○ Multex ○ Variável Waiting
  • 23. Problema do Barbeiro Adormecido (Algoritmo)
  • 24. Problema do Barbeiro Adormecido (Imagem Ilustrativa)