Sistemas operacionais - deadlocks
Deadlock (interbloqueio), no contexto dos sistemas operacionais (SO), caracteriza uma situação em que ocorre um impasse e dois ou mais processos ficam impedidos de continuar suas execuções, ou seja, ficam bloqueados. Trata-se de um problema bastante estudado no contexto dos Sistemas Operacionais, assim como em outras disciplinas, como banco de dados, pois é inerente à própria natureza desses sistemas.
O deadlock ocorre com um conjunto de processos e recursos não-preemptíveis, onde um ou mais processos desse conjunto está aguardando a liberação de um recurso por um outro processo que, por sua vez, aguarda a liberação de outro recurso alocado ou dependente do primeiro processo.
Normalmente o deadlock ocorre com recursos como dispositivos, arquivos, memória, etc. Apesar da CPU também ser um recurso para o SO, em geral é um recurso facilmente preemptível, pois existem os escalonadores para compartilhar o processador entre os diversos processos, quando trata-se de um ambiente multitarefa.
Como prevenir deadlocks?
O deadlock pode ser evitado, mas só quando certas informações estiverem disponíveis.
O Sistema Operacional que adota esta estratégia, procura evitar a ocorrência de deadlocks por meio de alocação cuidadosa de recursos. O sistema deve ser capaz de saber e decidir se liberar um recurso é seguro ou não.
Evitar deadlock é praticamente impossível. Por isso, a prevenção de deadlock tenta garantir que pelo menos uma das condições para ocorrência de deadlock, não aconteça.
Sabendo que são quatro as condições para que possa ocorrer uma situação de deadlock simultaneamente, a prevenção procura eliminar pelo menos uma delas utilizando as seguintes técnicas:
1.Condição de exclusão mútuo: O processo solicita o recurso para uso de forma mutuamente exclusiva. Essa condição é eliminada se o processo solicita todos os recursos que necessita em uma única vez.
2.Condição de