Pergunta

No meu livro, Sistemas operacionais:Princípios internos e de design (9ª edição) escrito por William Stallings no capítulo 5, explica como funcionam os semáforos:

O princípio fundamental é este:Dois ou mais processos podem cooperar por meio de sinais simples, de modo que um processo possa ser forçado a parar em um local especificado até que tenha recebido um sinal específico.Qualquer requisito complexo de coordenação pode ser atendido pela estrutura apropriada dos sinais.Para sinalização, são utilizadas variáveis ​​especiais chamadas semáforos.Para transmitir um sinal via semáforo s , um processo executa o primitivosemSignal (s) .Para receber um sinal via semáforo s, um processo executa o primitivo semWait (s) ;Se o sinal correspondente ainda não foi transmitido, o processo será suspenso até que a transmissão ocorra.

Não consigo encontrar uma descrição no capítulo 5 de quando um semáforo emitiria um semSignal versus um semWait (que às vezes também é chamado de sinal e espera).Alguém pode descrever as condições sob as quais o semSignal seria emitido versus um semWait?

Foi útil?

Solução

O semáforo não os emite.Um semáforo é um objeto que pode ser usado por processos para coordenar entre si.Assim, um processo chamará semSignal ou semWait em um semáforo compartilhado.Não podemos descrever as condições em que isso será feito em geral, porque depende de cada processo como deseja usar os semáforos.Os semáforos são primitivos que podem ser usados ​​de várias maneiras.Você deve encontrar muitos exemplos online ou em seu livro de uso de semáforos para coordenação;isso lhe dará alguns exemplos de processos específicos e quando esses processos específicos invocarão essas operações em um semáforo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top