1 deadlock prof. alexandre monteiro recife. contatos n prof. guilherme alexandre monteiro reinaldo n...
TRANSCRIPT
![Page 1: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/1.jpg)
1
Deadlock
Prof. Alexandre Monteiro
Recife
![Page 2: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/2.jpg)
Contatos
Prof. Guilherme Alexandre Monteiro Reinaldo
Apelido: Alexandre Cordel
E-mail/gtalk: [email protected]
Site: http://www.alexandrecordel.com.br/fbv
Celular: (81) 9801-1878
![Page 3: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/3.jpg)
Exemplos de recursos de computador• impressoras• unidades de fita• tabelas
Processos precisam de acesso aos recursos numa ordem racional
Suponha que um processo detenha o recurso A e solicite o recurso B• ao mesmo tempo um outro processo detém B e
solicita A• ambos são bloqueados e assim permanecem
![Page 4: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/4.jpg)
Seqüência de eventos necessários ao uso de um recurso
1. solicitar o recurso
2. usar o recurso
3. liberar o recurso
Deve esperar se solicitação é negada
– processo solicitante pode ser bloqueado
– pode falhar resultando em um código de erro
![Page 5: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/5.jpg)
Deadlocks ocorrem quando …• garante-se aos processos acesso exclusivo aos
dispositivos• esses dispositivos são normalmente
chamados de recursos Recursos preemptíveis
• podem ser retirados de um processo sem quaisquer efeitos prejudiciais
Recursos não preemptíveis• vão induzir o processo a falhar se forem
retirados
![Page 6: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/6.jpg)
Conceito
Deadlock (interbloqueio, encravamento, impasse)pode se definir como situação em que ocorre um impasse e dois ou mais processos ficam impedidos de continuar suas execuções, ou seja, ficam bloqueados.
O deadlock ocorre com um conjunto de processos e recursos não-preemptíveis, onde um ou mais processos desse conjunto está aguardando a liberação de um recurso por um outro processo que, por sua vez, aguarda a liberação de outro recurso alocado ou dependente do primeiro processo.
![Page 7: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/7.jpg)
Conceito Representação de Deadlock em grafos de
alocação de recursos, com dois processos A e B, e dois recursos R1 e R2.
O deadlock é representado na forma de grafos dirigidos, onde o processo é representado por um círculo e o recurso, por um quadrado.
Quando um processo solicita um recurso, uma seta é dirigida do círculo ao quadrado. Quando um recurso é alocado a um processo, uma seta é dirigida do quadrado ao círculo.
![Page 8: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/8.jpg)
Conceito
Na figura, podemos ver dois processos diferentes (A e B), cada um com um recurso diferente alocado (R1 e R2). Neste exemplo, é facilmente visível a condição de espera circular em que os processos se encontram, onde cada um solicita o recurso que está alocado ao outro processo.
![Page 9: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/9.jpg)
Conceito
O deadlock pode ocorrer mesmo que haja somente um processo no SO, considerando que este processo utilize múltiplos threads e que tais threads requisitem os recursos alocados a outros threads no mesmo processo;
O deadlock é independente da quantidade de recursos disponíveis no sistema;
![Page 10: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/10.jpg)
Condições Necessárias para a Ocorrência de Deadlock
O deadlock ocorre naturalmente em alguns sistemas. No entanto, existem Condições de Coffman para que uma situação de deadlock se manifeste:
1. Condição de exclusão mútua: cada recurso pode estar, alocado a um processo ou estar disponível;
2. Condição de posse-e-espera: cada processo pode solicitar um recurso, ter esse recurso alocado para si e ficar bloqueado esperando por um outro recurso;
3. Condição de não-preempção: recursos já alocados a processos não podem ser tomados a força. Eles precisam ser liberados explicitamente pelo processo que detém a sua posse;
4. Condição de espera circular: deve existir uma cadeia circular de dois ou mais processos, cada um dos quais esperando por um recurso que está com o próximo membro da cadeia.
![Page 11: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/11.jpg)
Escalonamento de Processos
Prevenir a ocorrência de deadlocks
1) Exclusão mútua: o processo solicita o recurso para uso de forma mutuamente exclusiva.
Esta condição é eliminada se o processo solicita todos os recursos que necessita em uma única vez.
![Page 12: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/12.jpg)
Escalonamento de Processos
Prevenir a ocorrência de deadlocks
2) Espera por recursos (posse-e-espera):. Processos possuem recursos enquanto esperam por recursos adicionais.
Um processo pode requisitar e liberar recursos, mas quando requisitar um recurso não disponível deve liberar os que estavam utilizando e, então solicitar todos coletivamente
![Page 13: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/13.jpg)
Escalonamento de Processos
Prevenir a ocorrência de deadlocks
3) Não preempção: Quando os recursos não puderem ser confiscados temporariamente para serem alocados a outros processos.
Elimina-se esta condição se os recursos forem ordenados e os processos devem requisitar os recursos em uma seqüência que respeite esta ordenação.
![Page 14: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/14.jpg)
Escalonamento de Processos
Prevenir a ocorrência de deadlocks
4) Espera circular: Quando for possível a formação de um ciclo no qual cada processo está bloqueado à espera de recursos que estão alocados para outros processos de mesmo ciclo.
Esta condição é eliminada se for construído um grafo e se for verificado, para cada requisição, se o atendimento não levará o sistema a um estado não seguro. As requisições que levarem o sistema a um estado não seguro ou de deadlock não deverão ser atendidas.
![Page 15: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/15.jpg)
Condições Necessárias para a Ocorrência de Deadlock
As três primeiras caracterizam um modelo de sistema, e a última é o deadlock propriamente dito: Processos que estejam de posse de recursos
obtidos anteriormente podem solicitar novos recursos.
Caso estes recursos já estejam alocados a outros processos, o processo solicitante deve aguardar pela liberação do mesmo;
Uma solução bastante utilizada na maioria dos S.Os. é eliminar os processos envolvidos no deadlock e desalocar os recursos já garantidos por eles, quebrando assim a espera circular.
![Page 16: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/16.jpg)
Estratégias para tratar Deadlocks1. ignorar por completo o problema
2. detecção e recuperação
3. evitação dinâmica
• alocação cuidadosa de recursos
4. prevenção
• negação de uma das quatro condições necessárias
![Page 17: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/17.jpg)
Tratamento de Deadlock
Existem quatro estratégias para tratamento de deadlocks:
Algoritmo do Avestruz (Ignorar a situação) A estratégia mais simples para tratamento (ou
não) do deadlock, conhecida como Algoritmo do Avestruz, é simplesmente ignorá-lo. É defendida pelo fato de que a frequência de ocorrência deste tipo de evento é baixa demais para que seja necessário sobrecarregar a CPU com códigos extras de tratamento, e que, ocasionalmente, é tolerável reiniciar o sistema como uma ação corretiva.
![Page 18: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/18.jpg)
Tratamento de Deadlock
Existem quatro estratégias para tratamento de deadlocks:Detectar o deadlock e recuperar o sistema
Nessa estratégia, o sistema permite que ocorra o deadlock e só então executa o procedimento de recuperação, que resume-se na detecção da ocorrência e na recuperação posterior do sistema. Na execução desse procedimento ocorre a sobrecarga, pois existem dois grandes problemas: primeiramente, como/quando detectar o deadlock e depois, como corrigi-lo.
Caso um recurso seja solicitado e a nova situação gere um impasse, o Sistema Operacional tentará eliminar um processo do ciclo.
Se o ciclo ainda existir, outro processo será eliminado até que o ciclo seja quebrado.
![Page 19: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/19.jpg)
Tratamento de Deadlock
Existem quatro estratégias para tratamento de deadlocks:
Evitar o deadlock (Deadlock avoidance)
O sistema pode evitar que um impasse ocorra mediante a alocação cuidadosa dos recursos disponíveis. Para que isso ocorra, o sistema precisará de informações adicionais a priori de quais recursos um processo irá requisitar e usar durante sua execução.
Analisaremos o algoritmo do banqueiro para um recurso e para múltiplos recursos, que são utilizados para avaliar se uma alocação de recursos é considerada segura ou não.
![Page 20: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/20.jpg)
Algoritmo do Banqueiro
O algoritmo do banqueiro foi proposto por Dijkstra (1965).
Este algoritmo é baseado na mesma idéia de um banqueiro de uma pequena cidade para garantir ou não crédito a seus clientes. A idéia é que um banco jamais possa alocar todo seu dinheiro disponível em caixa de tal modo que não possa mais atender às necessidades de todos os seus clientes.
![Page 21: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/21.jpg)
Tratamento de Deadlock
Existem quatro estratégias para tratamento de deadlocks:
Prevenção
Negação de uma das quatro condições necessárias.
![Page 22: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/22.jpg)
Exercício
Represente em forma de grafos a situação da figura ao lado.
![Page 23: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/23.jpg)
Solução
![Page 24: 1 Deadlock Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com](https://reader036.vdocuments.mx/reader036/viewer/2022062312/552fc15e497959413d8e5348/html5/thumbnails/24.jpg)
Referências
Sistemas Operacionais Modernos – 3ª Edição. A. Tanenbaum, 2008.
Modern Operating Systems 3 e. Prentice-Hall, 2008.