Pular para o conteúdo principal

Questão de Sistemas Operacionais — Geral — VUNESP 2024

Sistemas OperacionaisGeral
Código
vu212433
Banca
VUNESP
Órgão
EsFCEx
Ano
2024
Cargo
CFO/QC ( )

Assinale a alternativa correta relacionada com semáforos utilizados em sistemas operacionais.

  1. AA inicialização de qualquer tipo de semáforo tem a função de atribuir a ele o valor zero.
  2. BQuando uma operação V (ou up) é realizada, se o semáforo estiver com valor zero e existir algum processo no estado bloqueado, um deles será retirado desse estado, estando pronto para execução.
  3. CQuando uma operação P (ou down) é realizada, ela incrementa o valor do semáforo.
  4. DQuando uma operação P (ou down) é realizada, se o semáforo estiver com valor diferente de zero, o processo é bloqueado.
  5. EQuando uma operação V (ou up) é realizada, se o semáforo estiver com valor diferente de zero, o valor do semáforo é decrementado.
Revelar gabarito e comentário

GabaritoB — Quando uma operação V (ou up) é realizada, se o semáforo estiver com valor zero e existir algum processo no estado bloqueado, um deles será retirado desse estado, estando pronto para execução.

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 em Sistemas Operacionais

Gabarito: letra B. A operação V (ou up) incrementa o valor do semáforo; se houver processos bloqueados aguardando esse semáforo, um deles é despertado e passa para o estado de pronto. Essa é a semântica clássica definida por Dijkstra, presente em qualquer livro de sistemas operacionais (Tanenbaum, Silberschatz, etc.).

Semáforo é uma variável inteira não negativa, utilizada para controle de concorrência entre processos ou threads. Ele suporta duas operações atômicas: P (do holandês Proberen, testar) e V (do holandês Verhogen, incrementar). Em inglês, são conhecidas como down e up, respectivamente. A atomicidade garante que não haja condição de corrida durante a verificação e atualização do valor.

A operação P (down) decrementa o valor do semáforo. Se o valor resultante for negativo, o processo que a executou é bloqueado e colocado na fila de espera daquele semáforo. Se o valor for maior ou igual a zero, o processo continua sua execução normalmente. Já a operação V (up) incrementa o valor do semáforo. Se houver processos bloqueados na fila, um deles é acordado e movido para a fila de prontos, podendo então ser escalonado.

Um exemplo clássico é o controle de vagas em um estacionamento: o semáforo é inicializado com o número total de vagas. Cada carro que entra executa down(vagas); se ainda houver vagas (valor > 0), ele entra; se não houver (valor = 0), o carro fica bloqueado até que outro carro saia e execute up(vagas), liberando uma vaga e acordando um dos carros esperando.

A pegadinha desta questão está em inverter os efeitos das operações: a banca troca incremento por decremento e bloqueio por liberação. O candidato que não domina a semântica exata de P e V acaba marcando uma alternativa que descreve o comportamento da operação oposta.

Guarde a regra de ouro: P decrementa e pode bloquear; V incrementa e pode desbloquear. É exatamente essa distinção que separa as alternativas corretas das incorretas.

Semáforo
  • 1Variável inteira não negativa
  • 2Controle de concorrência
  • 3Operações atômicas
    • P (down)
      • Decrementa
      • Pode bloquear (valor = 0)
    • V (up)
      • Incrementa
      • Pode desbloquear (acorda processo)
  • 4Inicialização
    • Valor conforme o problema
    • Ex.: nº de vagas
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A inicialização de um semáforo não tem a função de atribuir valor zero. O valor inicial é definido conforme o problema: pode ser zero, mas também pode ser qualquer inteiro não negativo (por exemplo, o número de vagas de um estacionamento ou o número de recursos disponíveis). A afirmativa generaliza indevidamente.

Alternativa B — ✅ Correta ⟵ GABARITO

A operação V (up) incrementa o valor do semáforo. Se o valor era zero e há processos bloqueados, um deles é despertado e passa para o estado de pronto. Isso está exatamente de acordo com a semântica clássica: após o up, o semáforo continua com valor zero (pois o incremento é compensado pela liberação de um processo), mas há um processo a menos na fila de bloqueados.

Alternativa C — ❌ Incorreta

A operação P (down) decrementa o valor do semáforo, não o incrementa. Incrementar é função da operação V (up). A alternativa inverte o efeito da operação.

Alternativa D — ❌ Incorreta

Quando a operação P (down) é realizada e o semáforo está com valor diferente de zero (ou seja, positivo), o processo não é bloqueado; ele continua sua execução normalmente. O bloqueio ocorre apenas quando o valor é zero (ou negativo, dependendo da implementação). A alternativa descreve o comportamento contrário.

Alternativa E — ❌ Incorreta

A operação V (up) incrementa o valor do semáforo, não o decrementa. Decrementar é função da operação P (down). A alternativa inverte o efeito da operação.

Gabarito: letra B

Link permanente: /questoes/vu212433