Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Problema do Produtor - Consumidor
2
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.
3
Conceitos Produtor Consumidor
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.
4
Problema Como transferir dados de forma que o produtor e o consumidor fiquem inativos por menos tempo possível.
5
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.
6
Buffer
7
Buffer Produtor Consumidor Coloca no buffer os dados que produz
Retira os dados do buffer. Produtor e Consumidor podem operar de forma independente um do outro.
8
Problemas com Buffer Exclusão mútua Buffer cheio Buffer vazio
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.
9
Solução Buffer Produtor Consumidor
Entrar em pausa quando o buffer estiver cheio. Consumidor Entrar em pausa quando o buffer estiver vazio.
11
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.
12
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.
13
ETAPA Nº 1 Relatório sobre Programação Concorrente, Multiprogramação e Threads. Criar um protótipo em C utilizando threads que consumam, de um buffer de 5000 posições previamente preenchidas. Consumidor irá eliminar os pedidos do buffer simulando uma pausa de milissegundos. Ter um log com a identificação da thread, do pedido, horário inicial e horário final. Quando o buffer estiver vazio, as threads serão bloqueadas.
14
ETAPA Nº 1 Faça um experimento iniciando quantidades distintas de threads simultâneas (1,0,50,100,500,1000). Para cada uma, faça 10 execuções até que o buffer esteja vazio, e armazene o tempo de execução de cada uma.
15
ETAPA Nº2 Relatório sobre Exclusão Mútua e Objetos Compartilhados.
Altere o projeto anterior, de modo que agora o buffer seja alimentado por uma thread Produtora. O tempo para cada produtor deverá ser de 5000 milissegundos. Ter um log com a identificação da thread, do pedido, horário inicial e horário final.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.