Impasses
Introdução
Este trabalho tem foco nas principais características dos Impasses (também chamados deadlocks), que ocorrem nos Sistemas Operacionais, que é uma falha existente nos sistemas operacionais que acarreta algumas consequências como travamentos ou até perda de dados.
Veremos onde ocorrem os impasses, como ocorrem e quais os fatores influenciam tais ocorrências. Serão respondidas questões como: Quais são estratégias adotadas para corrigi-los? Qual é a melhor estratégia de correção? O que é o Algoritmo do avestruz?
1 - Como ocorre um Deadlock
Existem quatro condições necessárias para que se configure uma situação de deadlock:
1. Condição da exclusão mútua: cada recurso ou está alocado a exatamente um processo ou está disponível.
2. Condição de posse e de espera: processos que estejam de posse de recursos obtidos anteriormente podem solicitar novos recursos.
3. Condição de não-preempção: recursos já alocados a processos não podem ser tomados à força. Eles precisam ser liberados explicitamente pelo processo que detém a sua posse.
4. Condição de espera circular: deve existir uma cadeia circular de dois ou mais processos, cada um dos quais esperando por um recurso que está com o próximo membro da cadeia.
Portanto, todas as condições acima devem estar presentes para que ocorra um deadlock.
2 - Tratamento de deadlock
As situações de deadlock podem ser tratadas ou não em um sistema, e cabe aos desenvolvedores avaliar o custo/benefício que essas implementações podem trazer. Normalmente, as estratégias usadas para detectar e tratar as situações de deadlocks geram grande sobrecarga, podendo até causar um dano maior que a própria ocorrência do deadlock, sendo, às vezes, melhor ignorar a situação. Em geral, utilizam-se quatro estratégias para tratar os deadlocks:
1. Detecção e recuperação da situação de deadlock.
2. Evitar dinamicamente o deadlock, pela cuidadosa alocação dos recursos