Go backward to IPC em SYSV
Go up to Unix
Semáforos em SYSV
- semid = semget(key, count, flag) arrayt de count semáforos.
- status = semop(semid, sops, nsops), onde sops aponta para um
array de operações. Operação pode ser incrementar (>0), esperar até
semáforo estar a 0 (=0), ou esperar que o valor seja maior ou igual ao
valor absoluto (<0) e depois subtrair esse valor.
- Todas as operações avançam ou bloqueiam. Nenhuma outra operação pode
executar em paralelo.
- IPC_NOWAIT evita bloqueio.
- Kernel mantém UNDO LIST para o caso do processo sair.
vitor@cos.ufrj.br