Produtor consumidor
Solução por semáforos
Autoria
� Autores – alunos da disciplina SO II � Local – Instituto de Informática – UFRGS � Versão – V9 – agosto de 2011 – por C. Geyer
Índice
� Visão geral do assunto ....................2 � Conceito ..........................................3 � Conceito mais abrangente ...............6 � Exemplo.........................................19 � Exercício........................................20
Visão Geral do Assunto
� Ao longo do texto em questão, será descrito – o problema do produtor/consumidor – bem como sua solução através do uso de semáforos. � Semáforos constituem um mecanismo para – sincronização e sinalização entre processos, – voltado ao compartilhamento de recursos e dependência entre processos.
Visão Geral do Assunto
� A utilização de semáforos garante os dois tipos
básicos de sincronização:
– exclusão mútua – sinalização
• execução de uma operação somente após o término de outra.
Conceito
� O problema do produtor/consumidor
consiste de
– um processo que produz dados – para serem consumidos por outro processo.
� Os dados - ou mensagens - são – armazenados temporariamente num buffer – enquanto esperam para serem utilizados.
Conceito
� A solução que será apresentada aqui utiliza
semáforos para
– garantir a exclusão mútua – e a seqüência correta
• na execução das operações entre processos • em situações especiais
Conceito mais abrangente
� Sejam dois processos: – um Consumidor e outro Produtor. – O produtor produz dados e os envia ao consumidor; – O consumidor recebe os dados e os processa.
Conceito mais abrangente
� O problema é que o produtor
– só pode enviar cada dado quando o consumidor estiver pronto para recebê-lo; – logo, o produtor fica esperando sem fazer nada enquanto o consumidor não estiver apto a receber os dados.
� Da mesma forma, o consumidor
– sempre precisa esperar um dado enviado pelo produtor – para continuar seu trabalho,