Deadlocks - Sistemas Operacionais
Um conjunto de N processos está em deadlock quando cada um dos N processos está bloqueado à espera de um evento que somente pode ser causado por um dos N processos do conjunto. Obviamente, essa situação somente pode ser alterada por alguma iniciativa que parta de um processo fora do conjunto dos N processos.
Ou ainda: um processo em um sistema multiprogramado é dito estar em uma situação de deadlock quando ele está esperando por um evento particular que jamais ocorrerá. Em um deadlock em um sistema, um ou mais processos estão em deadlock.
Em sistemas multiprogramados, o compartilhamento de recursos é uma das principais metas dos sistemas operacionais. Quando recursos são compartilhados entre uma população de usuários, e cada usuário mantém controle exclusivo sobre os recursos particulares a ele alocados, é possível que haja a ocorrência de deadlocks no sentido em que alguns usuários jamais sejam capazes de terminar seu processamento.
Talvez a forma de ilustrar um deadlock seja com um exemplo de uma lei aprovada pela assembleia norte-americana no início deste século: "Quando dois trens se aproximarem um do outro em um cruzamento, ambos deverão parar completamente e nenhum dos dois deverá ser acionado até que o outro tenha partido."
EXEMPLOS DE DEADLOCKS
DEADLOCK DE TRÁFEGO
Um certo número de automóveis está tentando atravessar uma parte da cidade bastante movimentada, mas o tráfego ficou completamente paralisado. O tráfego chegou numa situação onde somente a polícia pode resolver a questão, fazendo com que alguns carros recuem na área congestionada. Eventualmente o tráfego volta a fluir normalmente, mas a essa altura os motoristas já se aborreceram e perderam tempo considerável.
DEADLOCK SIMPLES DE RECURSOS
Muitos deadlocks ocorrem em sistemas de computação devido à natureza de recursos dedicados (isto é, os recursos somente podem ser usados por um usuário por vez).
Suponha