Next: Sobre a entrega
Up: ep2
Previous: O Problema da Montanha
- Este EP deve ser implementado no Linux, usando semáforos (funções
sem_init, sem_wait e sem_post) e a
biblioteca Pthreads (POSIX threads). Como o objetivo é usar
semáforos, não devem ser usadas as funções da biblioteca Pthreads
que dão suporte a sinalização/espera por condições (funções
pthread_cond).
- O principal no programa é o uso de semáforos para controle de
concorrência e sincronização entre threads. A ordem de chegada dos
passageiros na fila de embarque na montanha russa deve ser
respeitada. Sua solução não deve deixar que passageiros furem essa
fila.
- O carro só pode partir se estiver cheio.
- A saída do seu programa deve ser bem planejada, de modo a mostrar
o que está acontecendo a cada momento, sem ficar carregada demais.
- Bônus: Faça seu programa lidar com o caso de threads
carro, onde . Como a montanha russa tem só um par de
trilhos, nenhum carro pode ultrapassar outro. Em outras palavras,
os carros devem terminar cada volta na montanha russa na ordem em que
eles começaram essa volta. Como anteriormente, um carro só pode
partir se estiver cheio. (Esta parte é opcional.)
Next: Sobre a entrega
Up: ep2
Previous: O Problema da Montanha
Francisco Reverbel
2006-04-24