Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

Deadlocks 
 
 
 
 
Douglas Horvath 
Rafael Seiji Nasso Moreira 
 
 
 
 
 
 
 
 
Presidente Prudente - SP 
Setembro / 2023 
 
 
 
 
Introdução: 
 
No âmbito da computação, particularmente em ambientes multiprocessados, 
deadlocks constituem um desafio significativo. Eles ocorrem quando dois ou mais 
processos ficam bloqueados indefinidamente, cada um aguardando a liberação de 
recursos que o outro detém. Essa situação pode ter implicações graves em sistemas 
críticos, resultando na perda de eficiência e, em alguns casos, falhas completas. 
Portanto, a compreensão e implementação de estratégias eficazes para lidar com 
deadlocks são cruciais para manter a integridade e a confiabilidade dos sistemas. Este 
trabalho explora detalhadamente quatro estratégias fundamentais: Ignorar, detectar e 
recuperar, evitar dinamicamente e prevenir. Ao analisar cada uma delas e examinar 
casos práticos, busca-se fornecer uma visão abrangente e prática sobre como abordar 
esse desafio complexo. A compreensão e aplicação dessas estratégias não apenas 
aprimoram a confiabilidade dos sistemas, mas também refletem a habilidade essencial 
de um profissional de TI em gerenciar situações críticas com eficácia. 
 
 
O processo “A” necessita do recurso “R2”, este por sua vez está dependente do 
processo “B”, este processo depende do recurso “R1”, que por fim está travado em 
dependência do processo “A”. 
 
Estratégias de Tratamento de Deadlocks 
1. Ignorar o problema: Nesta estratégia, o sistema operacional simplesmente não faz 
nada para evitar ou lidar com deadlocks. Ele assume que os deadlocks são raros ou 
que não causam impacto significativo no funcionamento do sistema. 
Exemplo: Em sistemas onde os deadlocks são muito improváveis de ocorrer ou 
onde os custos associados à prevenção e recuperação são muito altos, pode ser 
aceitável ignorar o problema. Por exemplo, em sistemas embarcados com recursos 
extremamente limitados, a prevenção de deadlocks pode ser muito complexa e 
consumir recursos valiosos. 
 
2. Detectar e Recuperar o Problema: Esta estratégia permite que os deadlocks 
ocorram, mas o sistema opera com um mecanismo de detecção de deadlock que 
periodicamente verifica se ocorreu um deadlock. Se um deadlock for detectado, o 
sistema toma medidas para recuperar dele. 
Exemplo: Um sistema operacional pode usar um algoritmo de detecção de 
deadlock que verifica regularmente o estado dos processos e recursos alocados. Se 
um deadlock for identificado, o sistema operacional pode interromper um ou mais 
processos envolvidos no deadlock e liberar os recursos alocados. 
 
3. Evitar Dinamicamente o Problema: Nesta abordagem, o sistema tenta evitar a 
ocorrência de deadlocks ao tomar decisões dinâmicas sobre alocações de recursos. 
Isso significa que o sistema só aloca recursos se isso não criar uma situação de 
deadlock. 
Exemplo: Um sistema de gerenciamento de banco de dados pode usar travas 
compartilhadas e exclusivas para acessar dados. Se um processo solicitar uma trava 
exclusiva e outra transação já tiver uma trava compartilhada no mesmo recurso, o 
sistema pode alocar a trava exclusiva somente se nenhum outro processo tiver 
acesso ao recurso no momento. 
 
4. Prevenir o Problema: A prevenção de deadlocks envolve a implementação de 
políticas e mecanismos que garantem que os quatro requisitos para a ocorrência 
de um deadlock (exclusão mútua, retenção e espera, sem preempção e espera 
circular) não sejam todos satisfeitos simultaneamente. 
Exemplo: Um exemplo clássico é o algoritmo do banqueiro, usado em sistemas 
operacionais. Nesse algoritmo, os processos devem solicitar e liberar recursos de 
maneira ordenada. O sistema verifica se a alocação solicitada não levará a um 
estado de deadlock antes de conceder o recurso. 
 
A escolha da estratégia de tratamento de deadlocks depende das características do 
sistema, da frequência esperada de deadlocks, dos requisitos de desempenho e das 
implicações de custo. Muitas vezes, uma combinação de estratégias é usada em 
sistemas complexos para garantir a robustez e o funcionamento eficiente.

Mais conteúdos dessa disciplina