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