Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
so:produtor_consumidor [2008/07/01 12:36] – maziero | so:produtor_consumidor [2017/08/03 14:12] (atual) – [Problema] maziero | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Produtor/ | ||
+ | ===== Problema ===== | ||
+ | Este projeto consiste em usar semáforos POSIX para construir um sistema produtor/ | ||
+ | |||
+ | < | ||
+ | produtor () | ||
+ | { | ||
+ | while (true) | ||
+ | { | ||
+ | pause = random (0..3) | ||
+ | sleep (pause) | ||
+ | down (s_vaga) | ||
+ | down (s_buffer) | ||
+ | item = random (0..999) | ||
+ | insere item no buffer | ||
+ | up (s_buffer) | ||
+ | up (s_item) | ||
+ | print item | ||
+ | } | ||
+ | } | ||
+ | |||
+ | consumidor () | ||
+ | { | ||
+ | while (true) | ||
+ | { | ||
+ | down (s_item) | ||
+ | down (s_buffer) | ||
+ | retira item do buffer | ||
+ | up (s_buffer) | ||
+ | up (s_vaga) | ||
+ | print item | ||
+ | pause = random (0..3) | ||
+ | sleep (pause) | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Observações ===== | ||
+ | |||
+ | As principais variáveis necessárias para implementar o projeto são: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | O sistema implementado deve ter 3 produtores e 2 consumidores. Ele deve produzir na tela uma saída com formato similar a este: | ||
+ | |||
+ | < | ||
+ | p1 produziu 337 | ||
+ | p2 produziu 441 | ||
+ | c1 consumiu 337 | ||
+ | p3 produziu 649 | ||
+ | p1 produziu 21 | ||
+ | c2 consumiu 441 | ||
+ | p2 produziu 178 | ||
+ | c1 consumiu 649 | ||
+ | ... ... | ||
+ | </ | ||
+ | |||
+ | ===== A entregar ===== | ||
+ | |||
+ | Entregar o código implementado, |