Aula 14 - Deadlocks
Click here to load reader
-
Upload
camilaseixas -
Category
Technology
-
view
109 -
download
1
Transcript of Aula 14 - Deadlocks
Universidade Estadual de Goiás
Unidade universitária de Crixás
PROFESSORA: CAMILA DO NASCIMENTO SEIXAS
SITUAÇÃO EM QUE DOIS OU MAIS
PROCESSOS ESPERAM
INDEFINIDAMENTE POR UM EVENTO
QUE SÓ PODE SER CAUSADO POR
UM DOS PROCESSOS EM ESPERA,
POIS OS RECURSOS QUE ELE
SOLICITOU ESTÃO RESERVADOS
PARA OUTROS PROCESSOS TAMBÉM
EM ESPERA.
EXCLUSÃO MÚTUA
POSSE E ESPERA
INEXISTÊNCIA DE PREEMPÇÃO
ESPERA CIRCULAR
Todas as quatro condições anteriores
devem estar presentes para que um
deadlock aconteça.
A condição de espera circular implica
a condição de posse e espera;
portanto, as quatro não podem ser
completamente independentes.
Pode-se impedir o deadlock
garantindo que nenhuma das
situações anteriores aconteça.
Usar um protocolo para prevenir ou impedira ocorrência de deadlocks, garantindo queo sistema nunca entre em estado dedeadlocks.
Pode-se permitir que o sistema entre em umestado de deadlock, detecte-o e executeuma recuperação.
Pode-se ignorar o problema e fingir quedeadlocks nunca ocorrerão no sistema.
Para que um deadlock ocorra,
cada uma das quatro
condições necessárias deve
estar presente.
Ao assegurar que pelo menos
uma dessas condições não
possa acontecer, podemos nos
prevenir contra a ocorrência de
um deadlock.
A Condição de Exclusão Mútua
deve estar presente para recursos
não compartilháveis. Visto que um
processo não precisa esperar por
um recurso compartilhável.
Em geral, não podemos prevenir
contra deadlocks negando uma
condição de Exclusão Mútua.
Para garantir que esta situação não ocorrano sistema, devemos garantir que, sempreque um processo solicitar um recurso, estenão esteja ocupado por outro.
Um protocolo pode permitir que umprocesso solicite recursos apenas quandoele não tenha qualquer recurso, ou seja,antes de poder solicitar qualquer recursoadicional deve liberar todos os outrosalocados a ele.
A terceira condição necessária para a
ocorrência de deadlocks é que não
haja preempção de recursos que já
tenham sido alocados.
Para impedir esta situação é usado um
protocolo que, se um processo estiver
em posse de alguns recursos e solicitar
outro recurso, todos os recursos
utilizados pelo processo serão liberados.
Situação em que os processos em espera
(circular) aguardam por recursos já
alocados a outro processo e assim por
diante.
Uma maneira de garantir que essa
condição não ocorra é impor uma
ordenação absoluta a todos os tipos de
recursos e requerer que cada processo
solicite apenas recursos em uma ordem
crescente.
Trabalha com algoritmos e restrições para garantira não ocorrência de deadlocks.
Os algoritmos mais simples pedem que osprocessos declarem a quantidade máxima derecursos que ele pode precisar. Assim, é possívelconstruir instruções que evitem o deadlock.
Com este conhecimento o sistema pode decidir,para cada solicitação, se o processo deve ou nãoesperar de modo a evitar um possível deadlockfuturo.
As restrições garantem que pelo menos uma dascondições necessárias para a ocorrência dedeadlocks não ocorra.
Se nenhuma das opções anteriores forem
empregadas, o sistema pode fornecer:
› Um algoritmo que examine o estado do sistema
para determinar se ocorreu o deadlock.
› Um algorimo de recuperação do deadlock.
Quando um deadlock é detectado. Umapossibilidade é informar ao operador oocorrido e deixá-lo lidar com o problema.
Outra possibilidade é permitir que osistema se recupere automaticamente.Existem duas opções para a interrupçãode um deadlock. Uma é simplesmenteabortar um ou mais processos. A outra éprovocar a preempção de algunsrecursos.