Pular para o conteúdo principal

Questão de Arquitetura de Software — Conceitos Básicos em Governança de TI — FCC 2023

Arquitetura de SoftwareConceitos Básicos em Governança de TI
Código
fc069472
Banca
FCC
Órgão
TRT - 12ª Região (SC)
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Área de Apoio Especializado (Especialidade Tecnologia da Informação)
Durante a execução de processos em um sistema operacional, uma Analista observou que processos de maior prioridade apareciam sempre que um processo de menor prioridade ativo queria chamar o kernel. Nesse caso, estava ocorrendo o
  1. Adeadlock, que é o mesmo que intervention, pois um processo trava o outro mantendo o impasse. Para evitar isso utiliza-se o thread attempt para análise e correção.
  2. Bthread tock interference afetando a prioridade do fluxo de execução. Uma possível solução para essa interferência é priorizar as threads utilizando uma fila do tipo último que entra, primeiro que sai (LIFO - last in, first out).
  3. Cstarvation, mas é possível evitá-lo mantendo a ordem de atendimento dos processos escritores utilizando uma fila do tipo primeiro que entra, primeiro que sai (FIFO - first in, first out).
  4. Ddeadlock, que é o mesmo que lock interference, pois um processo trava o outro mantendo o impasse. Para evitar isso utiliza-se o release lock para liberação.
  5. Estarvation, que é o mesmo que thread interference, mas uma forma de correção disso é a utilização da ordem de atendimento dos processos escritores por meio de uma fila do tipo último que entra, primeiro que sai (LIFO - last in, first out).
Revelar gabarito e comentário

GabaritoC — starvation, mas é possível evitá-lo mantendo a ordem de atendimento dos processos escritores utilizando uma fila do tipo primeiro que entra, primeiro que sai (FIFO - first in, first out).

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”.

Starvation em sistemas operacionais

Gabarito: letra C. O cenário descrito — um processo de menor prioridade sempre preterido quando um de maior prioridade deseja chamar o kernel — é a definição clássica de starvation (inanição). A alternativa correta aponta que o problema pode ser evitado usando uma fila FIFO (primeiro que entra, primeiro que sai) para ordenar o atendimento dos processos escritores.

A banca testa a distinção entre os conceitos de deadlock, starvation e interferência entre threads. A chave está em reconhecer que a situação não é um impasse (deadlock), e sim uma postergação indefinida.

Conceito

Definição

Característica-chave

Solução proposta

Starvation (inanição)

Processo de menor prioridade é preterido sempre que um de maior prioridade deseja chamar o kernel

Processo continua ativo, mas nunca é escalado

Fila FIFO (primeiro que entra, primeiro que sai)

Deadlock (impasse)

Dois ou mais processos bloqueados esperando recursos que o outro detém

Nenhum processo avança

Liberação de locks (release lock)

Thread interference

Interferência entre threads concorrentes

Acesso concorrente a recursos compartilhados

Ordenação por fila LIFO (último que entra, primeiro que sai)

Starvation vs. Deadlock
  • 1Starvation (inanição)
    • Processo de baixa prioridade ativo
    • Nunca é escalado
    • Solução: fila FIFO
  • 2Deadlock (impasse)
    • Processos bloqueados
    • Esperam recurso um do outro
    • Nenhum avança
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que é deadlock e que deadlock é o mesmo que intervention. Deadlock é um impasse onde dois ou mais processos ficam bloqueados esperando recursos que o outro detém – não há execução. No caso descrito, o processo de baixa prioridade continua ativo, mas nunca é escalado. A sugestão de usar "thread attempt" não é uma solução real.

Alternativa B — ❌ Incorreta

Introduz o termo "thread tock interference", que não existe como conceito padrão. A solução proposta (fila LIFO) agravaria a starvation, pois o último processo a chegar seria atendido primeiro, deixando os antigos esperando ainda mais.

Alternativa C — ✅ Correta ⟵ GABARITO

Identifica corretamente o problema como starvation e propõe a fila FIFO como solução. Uma fila FIFO garante que todos os processos sejam atendidos na ordem de chegada, eliminando a possibilidade de um processo de baixa prioridade ser eternamente preterido.

Alternativa D — ❌ Incorreta

Repete o erro de chamar de deadlock e o confunde com "lock interference". O termo "release lock" é genérico e não trata especificamente da starvation.

Alternativa E — ❌ Incorreta

Até menciona starvation, mas o iguala a "thread interference", que é um conceito diferente. A solução LIFO é inadequada: em vez de corrigir, pioraria a starvation.

NÃO CAIA NESSA!

A banca mistura os sintomas de deadlock e starvation. No deadlock, nenhum processo avança; na starvation, o processo de baixa prioridade existe e está pronto, mas nunca ganha a CPU. A fila FIFO é a saída correta para garantir justiça.

PEGA ESSA DICA!

Para diferenciar, lembre-se: deadlock = impasse total (ninguém anda); starvation = um processo fica "morrendo de fome" enquanto outros são atendidos. Na prova, a palavra-chave é "sempre que um processo de maior prioridade aparece" — isso é starvation, não deadlock.

Gabarito: letra C.

Link permanente: /questoes/fc069472