SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Redes I - 5.1 Tecnologias de Redes LAN
Redes I - 5.1 Tecnologias de Redes LANRedes I - 5.1 Tecnologias de Redes LAN
Redes I - 5.1 Tecnologias de Redes LAN
Mauro Tapajós
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Adriano Teixeira de Souza
 
Projeto final instalação e configuração de redes locais
Projeto final  instalação e configuração de redes locaisProjeto final  instalação e configuração de redes locais
Projeto final instalação e configuração de redes locais
MarcoSoaresGI
 
Aula 3 Introdução a Redes II
Aula 3   Introdução a Redes IIAula 3   Introdução a Redes II
Aula 3 Introdução a Redes II
wab030
 
Aprendizado de Máquina
Aprendizado de MáquinaAprendizado de Máquina
Aprendizado de Máquina
butest
 

Was ist angesagt? (20)

Redes de computadores 2 - Aula 6 - DNS, DHCP
Redes de computadores 2 - Aula 6 - DNS, DHCPRedes de computadores 2 - Aula 6 - DNS, DHCP
Redes de computadores 2 - Aula 6 - DNS, DHCP
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Principios de Eletronica
Principios de EletronicaPrincipios de Eletronica
Principios de Eletronica
 
Redes I - 5.1 Tecnologias de Redes LAN
Redes I - 5.1 Tecnologias de Redes LANRedes I - 5.1 Tecnologias de Redes LAN
Redes I - 5.1 Tecnologias de Redes LAN
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web Services
 
Curso de redes de computador Parte 2
Curso de redes de computador Parte 2Curso de redes de computador Parte 2
Curso de redes de computador Parte 2
 
Eletronica basica-1
Eletronica basica-1Eletronica basica-1
Eletronica basica-1
 
Projeto final instalação e configuração de redes locais
Projeto final  instalação e configuração de redes locaisProjeto final  instalação e configuração de redes locais
Projeto final instalação e configuração de redes locais
 
Curso de redes de computadores Parte 1
Curso de redes de computadores Parte 1Curso de redes de computadores Parte 1
Curso de redes de computadores Parte 1
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computador
 
Planejamento rede
Planejamento rede Planejamento rede
Planejamento rede
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
PROJETO DE REDE
PROJETO DE REDEPROJETO DE REDE
PROJETO DE REDE
 
Aula 3 Introdução a Redes II
Aula 3   Introdução a Redes IIAula 3   Introdução a Redes II
Aula 3 Introdução a Redes II
 
Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.
Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.
Seminário de Redes: Hub, Switch, Roteador, Modem e Acess Point.
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitos
 
Aprendizado de Máquina
Aprendizado de MáquinaAprendizado de Máquina
Aprendizado de Máquina
 
CON08 - VLAN.pdf
CON08 - VLAN.pdfCON08 - VLAN.pdf
CON08 - VLAN.pdf
 

Mehr von Lucas Vinícius

Mehr von 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)