Analista Fazendário Municipal - Área de Conhecimento: Ciência da Computação, Informática/Processamento de Dados
Acerca de primitivas de sincronização e deadlocks, julgue o próximo item.No ambiente de programação, um semáforo é um sinal emitido pelo hardware para que o sistema operacional possa executar um laço com o objetivo de evitar um deadlock.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Semáforos e Deadlocks
Gabarito: ❌ ERRADO. O item está incorreto porque define semáforo de forma equivocada. Um semáforo é uma estrutura de dados (variável inteira) utilizada para sincronização entre processos ou threads, geralmente implementada por meio de chamadas de sistema (system calls) como wait() e signal(), e não um sinal emitido pelo hardware. Além disso, o objetivo do semáforo é controlar o acesso a recursos compartilhados, evitando condições de corrida, e não executar um laço para evitar deadlock. A descrição de "executar um laço" remete a uma espera ocupada (spinlock), que é uma técnica diferente e normalmente não é usada com semáforos em sistemas operacionais modernos (que suspendem o processo).
O erro central está em confundir semáforo com um sinal de hardware (como uma interrupção) e atribuir a ele um mecanismo de polling (laço) que não é sua característica principal. Semáforos podem ser usados em algoritmos de prevenção de deadlock, mas não são definidos dessa forma.
NÃO CAIA NESSA!
A banca mistura conceitos: semáforo (abstração de software) com sinal de hardware (interrupção) e com espera ocupada (spinlock). O candidato que sabe que semáforo é usado em sincronização pode marcar certo, mas a definição apresentada é tecnicamente incorreta.
Conclusão: O item está errado, pois a definição de semáforo apresentada não condiz com a realidade dos sistemas operacionais. Gabarito: ❌ ERRADO.