1 deadlock prof. alexandre monteiro recife. contatos n prof. guilherme alexandre monteiro reinaldo n...

24
1 Deadlock Prof. Alexandre Monteiro Recife

Upload: internet

Post on 21-Apr-2015

115 views

Category:

Documents


1 download

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

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

Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: [email protected]

[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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Referências

Sistemas Operacionais Modernos – 3ª Edição. A. Tanenbaum, 2008.

Modern Operating Systems 3 e. Prentice-Hall, 2008.