Aula04 Produtor Consumidor
Produtor - Consumidor
Conceitos
O problema consiste de um processo/thread que produz dados para serem consumidos por outro processo/thread. Os dados são armazenados em um temporariamente buffer enquanto esperam para serem utilizados.
Conceitos
• Produtor
– 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
• Consumidor
– Sempre precisa esperar um dado vindo do produtor.
– Também poderá possuir tempo ocioso.
Problema
• Como transferir dados de forma que o produtor e o consumidor fiquem inativos por menos tempo possível.
Buffer
• Eliminar o obstáculo de um processo/thread ter de esperar pelo outro antes de enviar/receber. • A solução é introduzir um buffer, onde os dados ficam armazenados temporariamente.
Buffer
Buffer
• Produtor
– Coloca no buffer os dados que produz
• Consumidor
– Retira os dados do buffer.
Produtor e Consumidor podem operar de forma independente um do outro.
Problemas com Buffer
• Exclusão mútua
– No acesso ao buffer tanto pelo produtor quanto pelo consumidor.
• Buffer cheio
– Produtor tenta inserir dados no buffer, mas o mesmo se encontra cheio.
• Buffer vazio
– Consumidor tenta obter dados do buffer, mas o mesmo não contem dados.
Solução Buffer
• Produtor
– Entrar em pausa quando o buffer estiver cheio.
• Consumidor
– Entrar em pausa quando o buffer estiver vazio.
ATPS
• Tanngrísnir Logística, uma empresa de transporates que necessita de uma solução para melhorar o processo de atendimento a pedidos. • A solução deverá processar os pedidos de forma concorrente e assíncrona, seguindo o clássico problema Produtor-Consumidor.
• Deverá ser criado um protótipo.
ATPS
• Os pedidos serão enviados em um formato de dados contendo um identificador numérico e um pacote de dados em formato texto de
1000 caracteres.
• O buffer terá uma capacidade de 5000 pedidos. ETAPA Nº 1
•