Cursos / Eletrônica / Sistemas Operacionais / Aula 09

arrow_back Aula 09 - Gerenciamento de Processos

Deadlock: Impasse entre Processos

Quando dois ou mais processos ficam impedidos de continuar suas execuções, ou seja, quando estiverem bloqueados aguardando a liberação de recursos que estão alocados entre eles, dizemos que essa situação é denominada como deadlock. É difícil identificar a ocorrência de deadlocks; basicamente essa situação de impasse pode ser representada por um grafo, conforme exemplo apresentado na Figura 9.

Processos A e B em <span class='italico'>deadlock</span> devido aos recursos R1 e R2

No caso da Figura 9, o processo “A” está usando os recursos de R1 e precisa, para concluir sua tarefa, usar os recursos de R2; por sua vez, o processo “B” está usando os recursos de R2, porém, precisa dos recursos de R1 para concluir sua tarefa. Deve-se destacar que os recursos R1 e R2 são críticos e, portanto, devem ser usados com exclusão mútua. Esse estado de colapso corresponde ao que chamamos de deadlock.

Outro exemplo envolvendo o conceito de deadlock é apresentado na Figura 10. No exemplo, supomos que quatro trens estão chegando a uma encruzilhada ao mesmo tempo. Não há sinal e assume-se que nenhum trem pode dar marcha a ré. Como não existe nenhum meio de controle para acessar a encruzilhada, os trens ficarão bloqueados, ou seja, sem poder avançar por tempo indeterminado até que algum seja rebocado. Tal situação também representa um estado de deadlock, em que fazemos uma analogia dos trens com processos e a encruzilhada como uma região crítica.

Quatro trens chegam ao mesmo tempo em uma encruzilhada sem sinal

Observe que, quanto mais recursos compartilhados forem necessários para execução de processos, há mais riscos desses processos atingirem uma situação de impasse com outros processos. Um exemplo simples seria um sistema envolvendo processos para manipulação de banco de dados, cujas diferentes tabelas podem ser consideradas como recursos compartilhados. Veja um exemplo no qual pode ocorrer um deadlock.

Para efetuar uma venda, um processo é criado no computador onde estão as informações no banco de dados. O sistema precisa alocar as tabelas de estoque dos produtos e de clientes. Como vários vendedores podem registrar vendas ao mesmo tempo, dois processos podem receber a autorização de acesso a uma das tabelas em questão enquanto ficam aguardando a liberação da outra; assim, tanto os processos ficam bloqueados, como os recursos ficam indisponíveis até que essa situação de impasse seja resolvida. E, afinal de contas, quais são as estratégias para tratamento de deadlocks?

Versão 5.3 - Todos os Direitos reservados