Questão nº 44
Questão de Tecnologia da Informação · FGV CVM 2024 (nº 44)
O analista José está diante de um sistema operacional hipotético que implementa um modelo avançado de gerenciamento de processos. Esse modelo define cinco estados distintos pelos quais um processo pode passar durante seu ciclo de vida, além de incorporar mecanismos sofisticados para o escalonamento e a comunicação entre processos. Considerando esse cenário, José precisa resolver um problema complexo de deadlock que ocorreu devido a uma sequência específica de transições de estado e solicitações de recursos entre quatro processos distintos. Para entender e resolver esse problema, é fundamental que o analista compreenda os conceitos e estados de processo no contexto dos sistemas operacionais.
Para resolver o problema de deadlock, a sequência dos estados de processo e os conceitos que o analista José deve considerar são:
- Acriação (o processo é criado), pronto (aguarda pela alocação do processador), executando (o processo está sendo executado pelo processador), espera/bloqueado (o processo espera por algum evento ou recurso), terminado (o processo conclui sua execução). Deadlocks ocorrem quando processos em estado de espera/bloqueado mantêm recursos que outros processos estão tentando acessar, enquanto simultaneamente tentam acessar recursos mantidos por outros processos, criando um ciclo de dependência sem resolução; (alternativa correta)
- Bexecutando (o processo está sendo executado pelo processador), pronto (aguarda pela alocação do processador), espera/bloqueado (o processo espera por algum evento ou recurso), criação (o processo é criado), terminado (o processo conclui sua execução). Deadlocks são resolvidos automaticamente pelo sistema operacional através de preempção regular dos processos;
- Cpronto (aguarda pela alocação do processador), executando (o processo está sendo executado pelo processador), criação (o processo é criado), terminado (o processo conclui sua execução), espera/bloqueado (o processo espera por algum evento ou recurso). Deadlocks não são problemáticos em sistemas que implementam algoritmos de escalonamento baseados em prioridades;
- Despera/bloqueado (o processo espera por algum evento ou recurso), pronto (aguarda pela alocação do processador), executando (o processo está sendo executado pelo processador), criação (o processo é criado), terminado (o processo conclui sua execução). A detecção de deadlocks requer que o sistema operacional monitore o grafo de alocação de recursos para identificar ciclos de dependência;
- Eterminado (o processo conclui sua execução), espera/bloqueado (o processo espera por algum evento ou recurso), pronto (aguarda pela alocação do processador), executando (o processo está sendo executado pelo processador), criação (o processo é criado). Em sistemas operacionais modernos, mecanismos de comunicação entre processos, como semáforos e monitores, são utilizados para prevenir e resolver deadlocks.
Resposta comentada
Gabarito Alternativa A
Um processo é um programa em execução. Durante sua vida, ele passa por diferentes estados (fases) como nascer, aguardar para usar o processador, usar o processador, esperar por algo (como um arquivo) e terminar. Um deadlock (impasse) ocorre quando vários processos ficam esperando uns pelos outros para liberar recursos, criando um ciclo de dependência onde nenhum consegue avançar.
- (A) Correta: A sequência de estados (criação, pronto, executando, espera/bloqueado, terminado) descreve o ciclo de vida padrão de um processo. A explicação de deadlock está precisa: processos em estado de espera/bloqueado mantêm recursos e tentam acessar outros, formando um ciclo de dependência sem resolução, o que corresponde às condições de deadlock (exclusão mútua, posse e espera, não preempção, espera circular).
- (B) Incorreta: A ordem dos estados está incorreta. Além disso, deadlocks não são resolvidos automaticamente por "preempção regular"; a preempção pode ser uma estratégia de prevenção, mas a resolução de um deadlock existente geralmente envolve ações mais complexas, como a interrupção de processos.
- (C) Incorreta: A ordem dos estados está incorreta. Algoritmos de escalonamento baseados em prioridades gerenciam o acesso à CPU, mas não previnem ou resolvem deadlocks relacionados à alocação de recursos. Deadlocks são problemáticos independentemente do escalonamento de prioridades.
- (D) Incorreta: A ordem dos estados está incorreta. Embora a afirmação sobre a detecção de deadlocks via grafo de alocação de recursos e ciclos de dependência seja conceitualmente correta, a sequência dos estados de processo apresentada não segue uma lógica de ciclo de vida, tornando a alternativa inadequada como um todo. A armadilha aqui é que a parte sobre deadlock é verdadeira, mas a lista e ordem dos estados está confusa.
- (E) Incorreta: A ordem dos estados está completamente desorganizada. Semáforos e monitores são ferramentas de sincronização que podem prevenir deadlocks se usados corretamente, mas não são mecanismos para resolver deadlocks uma vez que eles já ocorreram no sentido de quebrar o ciclo automaticamente.
Fonte: FGV CVM 2024 Analista CVM - TI Sistemas e Desenvolvimento (Perfil 8) (Caderno Tipo 1). Reproduzida para fins de estudo.