Questão nº 49
Questão de Conhecimentos Específicos - Suporte · CESGRANRIO BANESE 01/2025 (nº 49)
Um mecanismo de sincronização clássico é conhecido como semáforo. Um semáforo é uma variável inteira não negativa que só pode ser manipulada por duas instruções, chamadas de instruções Down e Up. Para evitar a espera ocupada, que desperdiça tempo de processamento da máquina, a operação Down utiliza uma estrutura de dados, geralmente uma First In, First Out (FIFO).
Quando um processo executa a instrução Down num semáforo que tem o valor zero, o processo
- Asegue a sua execução normal, e o semáforo permanece com o valor zero.
- Bsegue a sua execução normal, e o semáforo é incrementado de uma unidade.
- Centra no estado de espera, e o semáforo permanece com o valor zero. (alternativa correta)
- Dentra no estado de espera, e o semáforo é incrementado de uma unidade.
- Eentra no estado de espera, e outro processo é retirado da fila de espera do semáforo.
Resposta comentada
Gabarito Alternativa C
Conceito-chave: O semáforo é como um porteiro com uma senha (o valor inteiro). A operação Down (ou wait) é o processo pedindo a senha: se houver senha (valor > 0), ele pega e o valor diminui; se não houver (valor = 0), ele não pode entrar e é colocado numa fila de espera (FIFO), ficando bloqueado até que outro processo devolva a senha (operação Up). O valor do semáforo não muda quando o processo é bloqueado — ele só muda quando alguém executa Up.
- (A) Incorreta: Se o valor é zero, o processo não pode seguir em frente, pois isso violaria a exclusão mútua ou o controle de recurso; ele precisa esperar.
- (B) Incorreta: O semáforo não é incrementado na operação
Down; incrementar só ocorre na operaçãoUp(quando um recurso é liberado). - (C) Correta: Exatamente isso: com valor zero, o processo entra no estado de espera (bloqueado, dormindo) e o semáforo permanece com valor zero — ele só será acordado quando outro processo fizer
Up(que incrementa para 1 e o acorda). - (D) Incorreta: A armadilha clássica: o processo não incrementa o semáforo ao ser bloqueado. Incrementar seria sinalizar que há recurso disponível, o que é falso — o recurso está esgotado.
- (E) Incorreta: A operação
Downnão retira outro processo da fila; quem retira da fila é a operaçãoUp(quando um recurso é liberado, o primeiro da fila FIFO é acordado). Aqui, o processo atual apenas entra na fila.
Fonte: CESGRANRIO BANESE 01/2025 Técnico Bancário III - Suporte (Caderno Prova C). Reproduzida para fins de estudo.