Questão de Arquitetura de Software — Conceitos Básicos em Governança de TI — FCC 2023
Arquitetura de Software›Conceitos 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
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.
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).
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).
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.
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.