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 09:36] – maziero | so:produtor_consumidor [2017/08/03 11: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, | ||