Questão de Sistemas Operacionais — Geral — VUNESP 2023
Sistemas Operacionais›Geral
Código
vu197502
Banca
VUNESP
Órgão
CIJUN
Ano
2023
Cargo
Aud ( )
Um sistema operacional utiliza a seguinte técnica relacionada com deadlock (ou impasse):
– deixa o deadlock ocorrer;
– tenta detectá-lo quando ele acontecer;
– após a detecção, toma alguma medida para recuperar-se dessa ocorrência.
Essa técnica é conhecida como
AAlgoritmo do avestruz.
BAlgoritmo do banqueiro.
CCondição de exclusão mútua.
DDetecção e recuperação de impasses.
EPrevenção de impasses.
Revelar gabarito e comentário▾
GabaritoC — Condição de exclusão mútua.
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”.
Deadlock: detecção e recuperação
Gabarito: letra D. A técnica descrita — deixar o deadlock ocorrer, detectá-lo quando acontecer e então tomar medidas para se recuperar — é exatamente a abordagem de detecção e recuperação de impasses, uma das quatro estratégias clássicas de tratamento de deadlock em sistemas operacionais. As demais alternativas representam outras estratégias (algoritmo do avestruz, algoritmo do banqueiro, prevenção) ou uma condição necessária para o deadlock (exclusão mútua), mas não correspondem à descrição do enunciado.
O deadlock (ou impasse) é uma situação em que dois ou mais processos ficam permanentemente bloqueados, cada um aguardando um recurso que está retido por outro processo do conjunto, formando um ciclo de espera. Para que o deadlock ocorra, quatro condições devem ser satisfeitas simultaneamente: exclusão mútua (cada recurso só pode ser usado por um processo por vez), posse e espera (um processo detém um recurso enquanto espera por outro), não-preempção (recursos não podem ser retirados à força) e espera circular (existe um ciclo de processos onde cada um espera por um recurso detido pelo próximo).
As estratégias de tratamento de deadlock dividem-se em quatro grandes grupos, e a questão pede que você reconheça qual delas corresponde à descrição. A detecção e recuperação é a abordagem mais permissiva: o sistema não tenta evitar o impasse, apenas o identifica quando ocorre (por exemplo, por meio de um grafo de alocação de recursos ou de um algoritmo de detecção) e, em seguida, age para desfazê-lo — seja matando um dos processos envolvidos, seja preemptando recursos (retirando-os à força de um processo e entregando a outro). É uma estratégia reativa, em contraste com as preventivas.
As outras três estratégias são: prevenção (atacar uma das quatro condições necessárias para que o deadlock nunca ocorra, como a espera circular, por exemplo, ordenando a solicitação de recursos), impedimento/evitação (como o algoritmo do banqueiro, que analisa cada solicitação e só a concede se o sistema permanecer em estado seguro) e ignorar o problema (o chamado algoritmo do avestruz, que simplesmente finge que o deadlock não existe, confiando na baixa probabilidade de ocorrência).
A pegadinha da questão está em distinguir a detecção e recuperação (que age depois que o impasse ocorre) das demais estratégias, que agem antes (prevenção e evitação) ou simplesmente ignoram (avestruz). O enunciado descreve claramente o ciclo "deixar ocorrer → detectar → recuperar", que é a marca registrada da detecção e recuperação.
Estratégias de deadlock: Prevenção (Ataca condição necessária, Impede que ocorra); Evitação (banqueiro) (Analisa cada solicitação, Só concede em estado seguro); Ignorar (avestruz) (Finge que não existe); Detecção e recuperação (Deixa ocorrer, Detecta quando acontece, Recupera após a ocorrência)
Alternativa A — ❌ Incorreta
O algoritmo do avestruz é a estratégia de simplesmente ignorar o deadlock, assumindo que ele é tão raro que não vale a pena o custo de tratá-lo. Não há detecção nem recuperação — o sistema apenas segue operando como se o problema não existisse. A descrição do enunciado, com detecção e recuperação, é o oposto dessa abordagem.
Alternativa B — ❌ Incorreta
O algoritmo do banqueiro é uma técnica de evitação (ou impedimento) de deadlock. Ele analisa cada solicitação de recurso e só a concede se o sistema permanecer em um estado seguro (ou seja, se ainda for possível concluir todas as tarefas pendentes). É uma estratégia preventiva, que age antes do deadlock ocorrer, não depois. O enunciado descreve uma ação posterior à ocorrência, o que não se encaixa aqui.
Alternativa C — ❌ Incorreta
A condição de exclusão mútua é uma das quatro condições necessárias para que um deadlock ocorra, não uma técnica de tratamento. Ela estabelece que cada recurso só pode ser usado por um processo por vez. A prevenção de deadlock pode atacar essa condição (por exemplo, permitindo que vários processos leiam um arquivo simultaneamente), mas a exclusão mútua em si não é uma estratégia de lidar com o impasse — é uma característica do sistema que, combinada com as outras três condições, pode levar ao deadlock.
Alternativa D — ✅ Correta ⟵ GABARITO
A detecção e recuperação de impasses é exatamente a técnica descrita: o sistema permite que o deadlock ocorra, utiliza mecanismos para detectá-lo (como o grafo de alocação de recursos ou algoritmos de detecção) e, após a detecção, toma medidas para se recuperar — por exemplo, matando um processo, preemptando recursos ou fazendo rollback. É a abordagem reativa, que age depois que o impasse se estabelece.
Alternativa E — ❌ Incorreta
A prevenção de impasses é uma estratégia proativa: ela ataca uma das quatro condições necessárias para o deadlock (exclusão mútua, posse e espera, não-preempção, espera circular) para garantir que o impasse nunca ocorra. Por exemplo, ordenar a solicitação de recursos elimina a espera circular. O enunciado descreve uma abordagem que permite o deadlock ocorrer, o que é o oposto da prevenção.
Gabarito: letra D — a técnica descrita é a detecção e recuperação de impasses, que age após a ocorrência do deadlock, detectando-o e tomando medidas para desfazê-lo.