O que é deadlock

Escrito na categoria "Desenvolvimento e TI" por Alex Benfica.

Em computação, deadlock é um termo comum utilizado para descrever uma situação em que o processo A fica bloqueado pelo sistema operacional esperando por dados do processo B, ao mesmo tempo que processo B também fica bloqueado esperando por dados do processo. Na verdade podem ocorrer deadlocks mesmo que exista apenas 1 processo envolvido, neste caso as trheads do processo podem estar em deadlock.

O deadlock pode ocorrer em vários níveis, com bem mais do que apenas 2 processos envolvidos. É possível que vários processos esperem por outros em cadeia, sendo algum processo da cadeia espera por dados do processo que iniciou a cadeia. Por estes e outros motivos detectar um deadlock é uma tarefa de alta complexidade, geralmente NÃO implementada pelos sistemas operacionais. Em sistemas de banco de dados o deadlock também é bastante comum e vários fatores devem ser considerados para minimizar a ocorrência dos mesmos.

Não entraremos muito em detalhes sobre como tratar ou minimizar a ocorrência deadlocks. A imagem abaixo é um exemplo de deadlock na vida real. E cada vez mais real no trânsito louco das cidades grandes.

Deadlock na vida real

Deadlock na vida real

Esta foto foi tirada no cruzamento da avenida Amazonas com Contorno, em um segunda-feira chuvosa em Belo Horizonte. Observe que deadlock perfeito. Até parece que foi combinado!

Possivelmente os semáforos (os do trânsito) não estavam funcionando. Em breve será publicado um novo artigo sobre “o que são semáforos”, no contexto da Ciência da Computação.

Sobre o autor

Autor Alex Benfica

Profissional de TI com mais de 20 anos de experiência na indústria. Bacharel em Matemática Computacional, sempre aprendendo sobre tecnologia, desenvolvimento de software e automação. É criador do site Palpite Digital onde compartilha conhecimentos desde 2007!

Deixe um comentário