Você está na página 1de 3

Universidade Estadual do Sudoeste da Bahia

Harilson Pires de Oliveira

Deadlock

Jequié
2021
Quando se está criando aplicações multi-threaded, um dos problemas mais comuns são
os Deadlock e de longe um dos mais difíceis de resolver. Traduzindo literalmente Deadlock é
um impasse entre os processos. Ele é definido da seguinte forma: Um conjunto de processos do
Sistema Operacional esta em situação de Deadlock se todo processo pertencente ao conjunto
estiver esperando por um evento que somente outro processo desse mesmo conjunto poderá
fazer acontecer, ou seja, um conjunto de processos que estão bloqueados indefinidamente
esperando uns pelos outros quando tentam acessar um mesmo recurso ao mesmo tempo.

Assim, nenhum processo consegue executar recurso que precisa, ou liberar recurso que
esta de posse, ou ser acordado, pois o recurso que precisa está ocupado. Alguma das condições
para se entrar no estado de Deadlock:

Exclusão Mútua: todo recurso está disponível ou associado a um único processo;

Posse e Espera: processos que retém recurso podem solicitar novos recursos;

Não Preempção: recursos concedidos previamente não podem ser forçosamente


tomados;

Espera Circular: deve haver uma cadeia circular de dois ou mais processos, na qual cada
um está á espera de recursos retidos pelo membro seguinte dessa cadeia.

Todas essas condições devem ocorrer simultaneamente para que ocorra Deadlock. Sem que
uma dessas condições não ocorra, não haverá deadlock.

São algumas formas de tratar o Deadlock:

Ignorar por completo é razoável se deadlocks ocorrem muito raramente;

Por meio de uma detecção e recuperação pode-se retirar um recurso de algum


processo em favor de outro, armazenar pontos de verificação de processos
periodicamente e restaurar quando preciso ou eliminar um dos processos nos ciclos de
processos em deadlock;

Fazendo uma alocação mais atenta e avaliando as chances de resultar em um


deadlock;

Por meio de ações preventivas, atacando as condições que tornam possível o


deadlock.

Ainda temos o Algoritmo do Banqueiro, que é um algoritmo de alocação de


recursos que previne Deadlock desenvolvido por Edsger Dijkstra que testa a segurança,
simulando a alocação de quantias máximas predeterminadas possíveis de todos os recursos, em
seguida, faz uma verificação “estados-seguros” para testar a possibilidade de condições de
deadlock para todas as outras atividades, antes de decidir se a alocação deve prosseguir.

Os sistemas operacionais Android utilizam da detecção e recuperação como meio de lidar com
deadlocks, então o sistema detecta que ocorreu um deadlock e parte dai para tentar se recuperar. Detectar
um deadlock é facilmente possível já que cada processo está bloqueado e esperando uns pelos outros.
Apos a recuperação, o algoritmos que rastreia a alocação de recursos e estados dos processos, começa
tudo outra vez com um ou mais dos processos em para solucionar o deadlock.
Os sistemas Windows utilizam de técnicas de prevenção ao deadlock, muitos programas
possuem mecanismos de proteção anti-deadlock, desse jeito, evitando condições que podem causar um
deadlock por meio de prevenção.

Os sistemas Linux e iOS ignoram por completo, apesar que nos sistemas iOS é razoável, pois se
trata de um fenômeno que é raro de acontecer. Já os sistemas Linux possuem algumas ferramentas para
construir hierarquias de controle de bloqueio dinamicamente, observando como os bloqueios acontecem
no sistemas e gerando um erro quando nota uma ordem de aquisição de bloqueio conflitante.

Referencias Bibliográficas

OFICINA DA NET. Sistemas operacionais o que é deadlock.


https://www.oficinadanet.com.br/post/12786-sistemas-operacionais-o-que-e-
deadlock

SCIENCE DIRECT. Deadlock. https://www.sciencedirect.com/topics/computer-


science/deadlock

PREZI. Introduction of Android.


https://prezi.com/pwxtdbdndbym/introduction-of-android-os/#:~:text=Android
%20use%20second%20option%20to,it%20let%20deadlocks%20to
%20occur.&text=Now%20it%20has%20to%20recover,order%20to%20remove
%20the%20deadlock.

GEEKS FOR GEEKS. Bankers algorithm in operating system.


https://www.geeksforgeeks.org/bankers-algorithm-in-operating-system-2/

Você também pode gostar