A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Problema do Produtor - Consumidor

Apresentações semelhantes


Apresentação em tema: "Problema do Produtor - Consumidor"— Transcrição da apresentação:

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.

10

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.


Carregar ppt "Problema do Produtor - Consumidor"

Apresentações semelhantes


Anúncios Google