next up previous
Next: Estruturas associadas aos semáforos Up: Os Semáforos Previous: Comandos de status usando

Princípio

Inicialmente, o usuário deve associar um valor de uma chave ao semáforo criado. O sistema irá então retornar um identificador único de semáforo ao qual estão agrupados n semáforos (i.e., um grupo de semáforos) numerados de 0 a (n-1). Para especificar um semáforo, o usuário deverá então indicar um identificador do grupo de semáforos e o número de semáforos a serem criados.

A cada semáforo é associado um valor, sempre positivo, que poderá ser incrementado ou decrementado pelo usuário segundo suas necessidades. Considere, por exemplo, N como o valor inicial, e n o valor do incremento determinado pelo usuário:

Como será visto, o bloqueio dos processos é ''parametrizável'', isto é, pode-se especificar que o processo não será bloqueado pelo sistema, sendo enviado apenas um código de erro ao processo que segue sua execução normalmente após o recebimento deste código.

Vale salientar que a cada identificador de semáforo é associada uma lista de permissões de acesso a este (de maneira similar ao caso de arquivos e tubos). Estas permissões são necessárias para controlar as operações sobre os valores dos semáforos. Elas são inoperantes para as duas manipulações a seguir:

Essas modificações só são permitidas para o super-usuário do sistema, para o próprio criador do semáforo, ou por seu proprietário. Note ainda que para o ''bom funcionamento'' dos mecanismos, as operações sobre os semáforos são consideradas indivisíveis (não podem ser interrompidas).



Subsections
next up previous
Next: Estruturas associadas aos semáforos Up: Os Semáforos Previous: Comandos de status usando
Celso Alberto Saibel Santos 2000-11-14