-
starvation é diferente de deadlock
deadlock é quando A precisa um recurso que está com B e este preciso um recurso daquele.
Starvation é quando tem um processo que nunca (ou dificilmente) terá a oportunidade de ser executado
-
Em alguns casos, essas definições parecem se confundir, dependendo da abordagem.
Normalmente eu acerto questões que envolvem Deadlock e Starvation, mas dessa vez fui pego.
-
Gabarito E
Acredito que as palavras nunca ou dificilmente, podem ser associadas a Starvation como ajuda nas provas.
Vamos na fé !
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
-
Acredito que o que possa ajudar também é que, no Starvation, não há uma necessária relação entre os processos, ou seja, dá para imaginar uma fila, em que um vai passando na frente do outro e alguns podem não ser escolhidos para processamento.
Já com relação ao Deadlock, é quando os processos ficam entrelaçados um ao outro, formando um ciclo fechado, em que nenhum deles consegue seguir com o processamento.
É aquilo, com as definições separadas fica um pouco mais fácil compreender, mas às vezes o enunciado traz uma pequena história, como nessa questão, que pode confundir.
-
Ao ler com atenção, vc observa no trecho "faz com que a transação B nunca consiga fazer progresso" que apenas B está sendo prejudicado no processo.
Para ocorrer Deadlock são necessárias, no mínimo, as duas condições abaixo:
1ª Duas transações, no mínimo, ao mesmo tempo. Note que apenas B está sofrendo, logo se descarta deadlock.
2ª Um registro interessado por um está sendo mexido por outro e este está mexendo em um registro interessado pelo primeiro... eles ficam dependentes um do outro...
Starvation é a mesma coisa que "inanição". Tipo "matar o cara de fome", por não alimentá-lo. É o que acontece nessa situação. O processo B nunca será atendido devido a outros processos que vão chegando e tendo prioridade sobre ele... como consequência B sofre starvation.
-
Starvation acontece quando a transação fica dando mole esperando por um recurso, enquanto as outras transações (bem malandras) pulam a vez e pegam o recurso.
-
LETRA E
Deadolock - A espera Recurso B, este está Bloqueado e B espera recurso de A, este está bloqueado - OU SEJA nenhum dos dois receberá o recurso, a menos que o sistema intervenha.
Starvation - Quando B tem uma requisição de BLOQUEIO EXCLUSIVA e requisições de BLOQUEIO COMPARTILHADO são chamdas primeiro.
-
Excelente comentário, @Mr.Robot.
-
Alternativa correta: E.
Pessoal, a palavra-chave que identifica o starvation é prioridade. No starvation, uma transação não recebe recursos pois possui menos prioridade que outras transações, e estas acabam passando na frente daquela. Na questão ficou claro no exemplo que a transação C passou na frente da B pois tem maior prioridade (ocupa menos recursos).
Já no deadlock a questão não envolve prioridade, mas espera circular (A espera B e B espera A).
-
STARVATION = MORRE DE FOME (PRIORIDADE BAIXA OU QUASE NENHUMA)
Go ahead!!!
-
Veja que nesse caso a transação A fica eternamente aguardando para obter um bloqueio exclusivo do item, enquanto que várias outras transações conseguem adquirir e liberar bloqueios compartilhados em relação ao mesmo item.
Esse é um exemplo clássico de starvation, caso em que uma transação aguarda indefinidamente para realizar operações sobre um item, enquanto outras transações que chegaram depois conseguem fazê-lo normalmente.
Gabarito: E