Questão nº 28
Questão de Tecnologia da Informação · FCC DPE-AM 2017 (nº 28)
Em um sistema operacional típico de um computador, três processos se encontram na seguinte situação:
- o processo P1 envia uma mensagem ao Processo P2.
- o processo P2, ao receber a mensagem de P1, responde essa mensagem a P1.
- o processo P1, ao receber a mensagem de resposta de P2, responde a P2 com uma nova mensagem, e assim sucessivamente.
- o processo P3 se encontra bloqueado, situação da qual sairá apenas quando receber uma mensagem do processo P1.
Considerando que a prioridade do processo P3 é menor do que as prioridades dos processos P1 e P2, tem-se que
- Aa cada troca de mensagens entre P1 e P2 as respectivas prioridades automaticamente serão reduzidas, e quando elas forem inferior à do processo P3, esse será executado.
- Bapós passar 1 segundo bloqueado, o relógio de tempo real do sistema operacional automaticamente dará oportunidade de o processo P3 ser desbloqueado.
- Co processo P3 sairá dessa situação assim que uma interrupção qualquer ocorra.
- Docorrerá uma situação conhecida como impasse (deadlock).
- Eocorrerá uma situação conhecida como inanição (starvation). (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Inanição (starvation) é quando um processo (um programa em execução) de baixa prioridade nunca consegue ser executado ou acessar um recurso, porque outros processos de maior prioridade estão sempre usando o processador ou o recurso, impedindo o processo de baixa prioridade de fazer progresso.
(A) Incorreta: A redução automática de prioridade (conhecida como "envelhecimento" ou aging) é uma técnica de escalonamento que pode ser implementada para evitar a inanição, mas não é um comportamento automático e universal do sistema operacional para cada troca de mensagens. O problema não indica que essa política está em uso.
(B) Incorreta: O processo P3 está bloqueado aguardando uma mensagem específica de P1. Um temporizador (relógio de tempo real) pode desbloquear um processo que está esperando por um tempo limite, mas não pode fazer com que P1 envie a mensagem necessária para P3.
(C) Incorreta: Uma interrupção é um sinal para a CPU, mas não garante que a condição de P3 (receber uma mensagem de P1) será atendida. P3 precisa da mensagem, não apenas de uma interrupção genérica.
(D) Incorreta: Impasse (deadlock) ocorre quando dois ou mais processos estão mutuamente esperando uns pelos outros para liberar recursos, formando um ciclo de espera. Neste cenário, P1 e P2 estão ativamente trocando mensagens e progredindo. P3 está esperando por P1, mas P1 não está esperando por P3; P1 está ocupado com P2. Não há um ciclo de espera mútua que impeça todos os processos de progredir. A armadilha aqui é confundir a espera de P3 com um ciclo de espera mútua que caracteriza o impasse. P1 e P2 estão ativos, enquanto P3 está sendo ignorado.
(E) Correta: Ocorre uma situação conhecida como inanição (starvation). P1 e P2 têm prioridade mais alta e estão em um ciclo contínuo de comunicação, consumindo o tempo de CPU. Como P3 tem prioridade mais baixa e depende de P1 para ser desbloqueado, o escalonador (o "gerente" do sistema operacional que decide qual processo roda) sempre dará preferência a P1 e P2. Assim, P3 nunca terá a oportunidade de ser executado, nem de receber a mensagem de P1 (pois P1 está ocupado com P2 ou, se tiver chance, o escalonador priorizará P1/P2 sobre P3), permanecendo indefinidamente bloqueado e sem progresso.
Fonte: FCC DPE-AM 2017 Assistente Técnico em Tecnologia da Informação de Defensoria - Assistente Técnico de Suporte (Caderno Tipo 001). Reproduzida para fins de estudo.