Em um sistema operacional típico de um computador, três proc...

Próximas questões
Com base no mesmo assunto
Q869108 Sistemas Operacionais

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

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a E, que menciona a ocorrência de uma situação conhecida como starvation (inanição). Para compreendermos o motivo desta ser a alternativa correta, precisamos discutir sobre o conceito de starvation e como ele se aplica ao cenário apresentado.

Starvation, ou inanição, ocorre em sistemas operacionais quando um ou mais processos não conseguem acessar recursos necessários para prosseguir com sua execução por um período indefinido de tempo. Isso geralmente acontece porque outros processos com prioridades mais altas estão utilizando esses recursos incessantemente.

No cenário descrito, temos uma interação contínua entre P1 e P2 trocando mensagens. Sem uma intervenção ou política do sistema operacional para prevenir a inanição, o processo P3, que tem uma prioridade mais baixa, nunca será desbloqueado, pois está esperando uma mensagem de P1. Como P1 está constantemente envolvido na troca de mensagens com P2, nunca envia uma mensagem para P3, e, portanto, P3 sofre de starvation.

As outras alternativas são incorretas, pois:

  • A alternativa A está incorreta porque a troca de mensagens em si não reduz automaticamente as prioridades dos processos em sistemas operacionais típicos.
  • A alternativa B está incorreta porque o simples passar do tempo (1 segundo, neste caso) não garante que um processo bloqueado (como P3) será desbloqueado.
  • A alternativa C está incorreta, pois não é qualquer interrupção que desbloquearia P3, mas sim uma interrupção específica ou uma condição de desbloqueio que fosse atendida (como receber uma mensagem de P1).
  • A alternativa D está incorreta porque deadlock (impasse) é uma situação diferente, onde dois ou mais processos estão esperando uns pelos outros indefinidamente, e não é o caso aqui.

Portanto, a alternativa correta, E, descreve exatamente o que aconteceria no cenário dado, uma vez que P3 está em uma situação de espera que pode nunca ser resolvida, caracterizando a inanição.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Em programação concorrente, ocorre inanição quando um processo nunca é executado ("morre de fome"), pois processos de prioridade maior sempre o impedem de ser executado

https://pt.wikipedia.org/wiki/Inani%C3%A7%C3%A3o_(computa%C3%A7%C3%A3o)

Uma observação em relação à assertiva: "o processo P3 se encontra bloqueado, situação da qual sairá apenas quando receber uma mensagem do processo P1". Esta assertiva informa que o processo encontra-se bloqueado, logo, seria Deadlock, e não, inanição(starvation), cujo  estado é de espera.  Alguem poderia comentar ? 

Starvation (Inanição):

 

"No escalonamento por prioridades básico, as tarefas de baixa prioridade só recebem o processador na ausência de tarefas de maior prioridade. Caso existam tarefas de maior prioridade frequentemente ativas, as de baixa prioridade podem sofrer de inanição (starvation), ou seja, nunca ter acesso ao processador."

 

Envelhecimento

 

"Para evitar a inanição e garantir a proporcionalidade expressa através das prioridades estáticas, um fator interno denominado envelhecimento (task aging) deve ser definido. O envelhecimento indica há quanto tempo uma tarefa está aguardando o processador e aumenta sua prioridade proporcionalmente. Dessa forma, o envelhecimento evita a inanição dos processos de baixa prioridade, permitindo a eles obter o processador periodicamente. Uma forma simples de implementar o envelhecimento está resumida no seguinte algoritmo (que considera uma escala de prioridades positiva)". 

 

FONTE: http://wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=so:so-livro.pdf

 

Entraria com recurso. 

 

"Em um sistema operacional típico..." 

 

Em um SO típico, haveria filas com prioridades. As prioridades seriam alteradas conforme um processo recebe tempo de CPU justamente para evitar o starvation dos demais processos. A questão deveria ter especificado o algoritmo de escalonamento usado para que se possa responder objetivamente a questão. 

Questão passível de ANULAÇÃO,

 

Primeiro, a condição de starvation permite que o processo continue em execução mesmo aguardando um recurso. Dessa forma, o processo P3 não se encontra bloqueado.

 

Segundo, como não informaram o algoritmo implementado, a afirmativa A poderia está correta, visto que há algoritmos que implementam filas de prioridades, evitando que um processo aguarde indefinidademente. 

 

 

Att,

Foco na missão!!!

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo