Questão
ID 66576Disciplina: Tecnologia da Informação
Assuntos: Gestão de Processos, Gestão de Recursos
Ano: 2025 Banca: PERFIL - ENADE Órgão: Segundo Simulado Pnd
Um professor de Sistemas Operacionais, em um curso de graduação, está abordando o complexo tópico de 'deadlock' (impasse). Ele quer que os alunos não apenas decorem as quatro condições necessárias para a ocorrência de um deadlock (exclusão mútua, posse e espera, não preempção e espera circular), mas que compreendam como elas interagem em um cenário prático e quais estratégias podem ser usadas para lidar com o problema. Para isso, ele utiliza a clássica 'Analogia do Jantar dos Filósofos'. Ele apresenta a analogia e um trecho do livro 'Sistemas Operacionais: Conceitos e Mecanismos' de Silberschatz, Galvin e Gagne: "Um deadlock é uma situação em que dois ou mais processos ficam permanentemente bloqueados, cada um esperando por um recurso que está sendo retido pelo outro. As estratégias para tratar deadlocks incluem a prevenção (garantir que pelo menos uma das quatro condições nunca ocorra), a evitação (usar algoritmos, como o do Banqueiro, para alocar recursos de forma segura), e a detecção e recuperação (deixar o deadlock acontecer, detectá-lo e tomar uma ação para desfazê-lo, como abortar um processo)." Ele então descreve um sistema com dois processos (P1, P2) e dois recursos (R1, R2, como uma impressora e um scanner). Ocorre a seguinte sequência de eventos:
1. P1 solicita e adquire R1. 2. P2 solicita e adquire R2. 3. P1 solicita R2 (e fica bloqueado, pois R2 está com P2). 4. P2 solicita R1 (e fica bloqueado, pois R1 está com P1).
A partir deste ponto, o sistema está em deadlock.
Considerando o cenário e as estratégias de tratamento de deadlock, avalie as seguintes afirmações:
I. A situação descrita exemplifica perfeitamente as quatro condições de deadlock: os recursos são de exclusão mútua; os processos praticam posse e espera; não há preempção dos recursos; e há uma espera circular (P1 espera por P2, que espera por P1).
II. Uma estratégia de *prevenção* de deadlock que poderia ser aplicada a este sistema seria impor uma ordenação total dos recursos. Por exemplo, todos os processos devem solicitar os recursos em uma ordem específica (primeiro R1, depois R2). Nesse caso, P2 não poderia solicitar R1 enquanto detivesse R2, quebrando a condição de espera circular.
III. Uma estratégia de *detecção e recuperação* consistiria em o sistema operacional detectar o ciclo no grafo de espera de recursos e, então, forçar a preempção do recurso R1 de P1, entregá-lo a P2 para que este complete e libere seus recursos, desfazendo o impasse.
É correto o que se afirma em: