Beruflich Dokumente
Kultur Dokumente
Sistemas Operacionais
Prof. Luiz Carlos Reis
PARTE II
2. Semestre
Deadlocks
Um processo em um sistema multiprogramado dito estar em uma situao de deadlock quando ele est esperando por um evento particular que jamais ocorrer. Em um deadlock em um sistema, um ou mais processos esto em deadlock. Em sistemas multiprogramados, o compartilhamento de recursos uma das principais metas do sistemas operacionais. Quando recursos so compartilhados entre uma populao de usurios, e cada usurio mantm controle exclusivo sobre os recursos particulares a ele alocados, possvel que haja a ocorrncia de deadlocks no sentido em que alguns usurios jamais sejam capazes de terminar seu processamento. - O estudo de deadlocks envolve quatro reas: prevenir, evitar, detectar e recuperar. - A maioria dos deadlocks em sistemas reais geralmente envolve mltiplos processos competindo por mltiplos recursos.
Deadlocks - Exemplo
1 - Processo A solicita o scanner e autorizado 3 - O gravador de CD solicitado pelo Processo A
Gravador de CD Scanner
Deadlocks Ocorrncias
Em uma Rede:
Vrios usurios compartilhando recursos como impressora, scanner, gravadores de CD e unidades de fitas podem causar deadlocks. Situaes mais delicadas podem causar deadlocks que envolvam 3, 4 ou mais dispositivos. Deadlocks podem ocorrer em diversas situaes alm daquelas que envolvem requisies simultneas a dispositivos de E/S dedicados: - Em sistemas de Banco de Dados: um programa pode ter de bloquear o acesso a diversos registros que estiver usando, a fim de evitar condies de disputa (race conditions). Se o processo A bloquear o acesso ao registro R1, o processo B bloquear o acesso ao registro R2 e depois cada processo tentar bloquear o acesso ao registro do outro, teremos um Deadlocks. Portanto deadlocks podem ocorrer tanto em software quanto em hardware.
Recursos: Conceitos
Para tornar a discusso sobre Deadlocks mais ampla possvel, faremos referncia aos objetos acessados como recursos. Um recurso pode ser um dispositivo de hardware (fita, impressora,etc) ou uma informao (um registro de B.D.), ou seja um recursos algo que pode ser usado por somente um nico processo em um dado instante de tempo. Um Processo pode requisitar quantos recursos precisar para desempenhar a tarefa para qual foi projetado. Um Processo pode utilizar um recurso na seqncia: - Requisitar: se a requisio no pode ser atendida imediatamente (pois o recurso est em uso por outro processo) ento o processo requisitante deve esperar at obter o recurso; - Usar o recurso; - Liberar o recurso.
Tipos de Recursos
Recurso Preemptvel:
aquele que pode ser retirado do processo proprietrio sem nenhum prejuzo. (memria, CPU,etc)
Situao: Pa em execuo. Pa solicita Impressora O time slice do Pa acaba (sai da CPU) Pb entra em execuo. Solicita, sem sucesso, a impressora. Pa tem a impressora e Pb tem a memria. Poderia ocorrer um deadlock, mas possvel tomar a memria do Pb (levar p/ o disco) e carregar o Pa. Termina a execuo e impresso do Pa e carrega o Pb sem nenhum Deadlock.
Tipos de Recursos
Recurso No Preemptvel:
aquele que no podo ser retirado do atual processo proprietrio sem que a computao apresente falha. (unidade de fita, gravador de CD). Situao: Pa comeou a gravar um CD, o Pb solicita tal recurso. Se o sistema retirar repentinamente o gravador de CDs do Pa e fornec-lo a Pb, resultar em um CD com erros.
Deadlocks, em geral, envolvem recursos no preemptveis. Situaes com recursos preemptveis podem ser resolvidos realocando recursos de um processo a outro.
Todas esses quatro condies devem estar presentes para que ocorra um deadlock.
Grafos de Deadlocks
Grafos de Deadlocks
Prevenir Deadlocks
Prevenir que pelo menos uma das condies necessrias para deadlock no ocorra.
Excluso Mtua:
Exemplo de preveno: spooling para impressoras Realidade: no pode ser evitada na maioria das situaes.
Posse e Espera:
Preveno: - um processo deve solicitar todos os seus recursos simultaneamente. - conhecimento anterior dos recursos necessrios. Realidade: - maior espera por recursos - recursos alocados desnecessariamente
Prevenir Deadlocks
No preempo:
preveno: devolver recurso assim que necessrio Realidade: somente prtico quando o estado do recurso pode ser facilmente salvo e restaurado (processador)
Espera Circular:
Preveno: - ordenar todos os recurso e permitir apenas que sejam solicitas em ordem. (R1, R2, R3, R4, R5,...). Realidade: - exige conhecimento prvio de todos os recursos necessrios. - a alocao dos recursos pode no ser a mais eficiente.
Impedir Deadlocks
Estratgias: - no disparar um processo cujo uso de recurso pode levar a um deadlock - no atender pedidos de recursos que podem levar a um deadlock Vantagens: - menos restritivo que preveno Desvantagens: - somente memria,etc) para recursos preemptveis (processador,
Detectar Deadlocks
O S.O. verifica periodicamente o estado dos recursos e processos procurando por deadlocks. Essa procura pode demandar recursos de processador Encontrou ? Como Recuper-los ? cancelar todos os processos em deadlock rollback e restart dos processos em deadlock cancelar progressivamente os processos em deadlock.
Ignorar Deadlocks
Algoritmo do Avestruz Assumir que deadlocks so raros. No justificar o (mau) uso dos recursos para prevenir, evitar ou detectar deadlocks. estratgia adotada Operacionais. pela maioria dos Sistemas