Apresenta o Tratamento de deadlock
Recuperação - Tratamento de
Deadlocks
Diego Carlos Alves
Jonathan Manzine
Tânia Aparecida de Freitas
Wagner Silva Correa
Deadlock(impasse) em 2PL
• Ocorrência de deadlock
▫ T1 está na Fila-WAIT(X) bloqueado por T2
▫ T2 está na Fila-WAIT(Y) bloqueado por T1
• Pode ser precisamente descrito por um
SCHEDULE PARCIAL e um GRÁFICO DE
ESPERA.
• Schedule parcial
• Gráfico de espera
• Só estará em estado de deadlock se, e somente se, o gráfico de espera contiver ciclo.
Não está em estado de deadlock
Está em estado de deadlock
2 métodos principais para Tratamento de Deadlock
• Prevenção de deadlock
▫ Garantir que o sistema nunca entrará em tal situação. • Detecção e recuperação de deadlock
▫ Deixar que o sistema entre em estado de deadlock e só então remove-lo desta situação recuperando por meio de esquemas.
Prevenção de deadlock por Timestamp
• Wait-die(esperarmorrer)
▫ Quando uma transação Ti solicita um item de dado mantido por Tj, Ti pode esperar somente se possuir um timestamp menor que o de Tj. Caso
contrário, Ti será revertida (morta).
• Wound-wait(ferir-esperar)
▫ Quando uma transação Ti solicita um item de dado mantido por Tj, Ti poderá esperar somente se possuir timestamp maior que Tj. Caso contrário,
Tj será desfeita.
Detecção e recuperação de deadlock
• Caso o sistema não tenha um protocolo resistente contra a ocorrência do deadlock então um esquema de detecção e recuperação deve ser aplicado. Um algoritmo que examina o estado do sistema é evocado periodicamente para determinar se um deadlock está ocorrendo. Se estiver, então o sistema precisa tentar recuperar-se. Para isso, ele precisa:
• Manter informações sobre a alocação corrente dos itens de dados para transações, assim como qualquer solicitação de itens de dados pendente. • Proporcionar um algoritmo que use essas informações para determinar se o sistema entrou em estado de deadlock.
• Recupar-se de um deadlock quando o algoritmo de detecção determinar que