next up previous
Next: Conclusão Up: Implementação dos semáforos de Previous: Implementação dos semáforos de

Exemplo de utilização dos semáforos de Dijkstra

Inicialmente, o semáforo (modelando um recurso compartilhado) é criado com valor 1. O processo filho garante a posse do recurso fazendo a operação P sobre o semáforo, levando seu valor para 0. O processo pai é bloqueado sobre um semáforo (fazendo P sobre um semáforo com valor nulo). Ele se desbloqueará quando ser filho liberar o recurso demandado por ele, fazendo a operação V que colocará novamente o valor do semáforo em 1.

Resultado da execução:

euler:~> test_sem_dijkstra

Criacao do semaforo do identificador 128
Eu sou o PAI e vou dormir 2 segundos...
        Eu sou o FILHO e fazer P sobre o semaforo
        Eu sou o FILHO e vou dormir 10 segundos...
Eu sou o PAI e vou me bloquear fazendo P sobre o semaforo
        Eu sou o FILHO e vou fazer V sobre o semaforo
Eu sou o PAI e acabei de me desbloquear
Eu sou o PAI e vou acabar o processamento



Celso Alberto Saibel Santos 2000-11-14