33
Sistemas Operacionais: Deadlocks

Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

  • Upload
    others

  • View
    24

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Sistemas Operacionais: Deadlocks

Page 2: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Deadlocks (impasse)

• Definição– “Um conjunto de processos bloqueados cada um

de posse de um recurso, esperando por um outro recurso que já está alocado por outro processo do mesmo conjunto”mesmo conjunto”

Page 3: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Código de trânsito brasileiro• Art. 29. O trânsito de veículos nas vias terrestres abertas à circulação obedecerá às seguintes

normas:– III - quando veículos, transitando por fluxos que se cruzem, se aproximarem de local não sinalizado, terá

preferência de passagem:

• a) no caso de apenas um fluxo ser proveniente de rodovia, aquele que estiver circulando por ela;

• b) no caso de rotatória, aquele que estiver circulando por ela;

• c) nos demais casos, o que vier pela direita do condutor;

• Existe a possibilidade de um impasse?

Page 4: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Caracterização de um impasse

• Um deadlock pode ocorrer, somente se as quatro condições a seguir ocorrem simultaneamente:– Exclusão mútua: acesso exclusivo a recursos

– Obtém e espera: um processo de posse de um recurso espera para obter um outro recursoespera para obter um outro recurso

– Sem preempção: um recurso somente pode ser liberado voluntariamente pelo processo

– Espera circular: um conjunto de processos {P0,P1,..,Pn}. O processo P0 espera por um recurso alocado por P1, P2 espera por P2, e assim sucessivamente

Page 5: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Modelo do sistema

• Recursos do sistemas S1, S2, ... ,Sn

• Cada recurso Ri tem Wi instâncias

• Para utilizar um recurso, um processo realiza as seguintes seqüênciasas seguintes seqüências– Requisita

– Utiliza

– Libera

Page 6: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Grafo de alocação de recursos

• Conjunto de vértices V e arestas E– V é particionado em dois tipos:

– P = {P1, P2, …, Pn}, conjunto de processos no sistema.R = {R , R , …, R }, conjunto de recursos do R = {R1, R2, …, Rm}, conjunto de recursos do sistema.

• Aresta de requisição – aresta P1 → Rj

• Aresta de atribuição – aresta Rj → Pi

Page 7: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Grafo de alocação de recursos

• Processo

• Recurso

• Processo Pi solicita recurso Rj

• Recurso Rj alocado para o processo Pi

Pi

Pi

Rj

Rj

Page 8: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Exemplo

Impasse: satisfaz as 4 propriedades

de um impasse?

Page 9: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Grafo com ciclo porém sem impasse

Porque não existe impasse na situação acima?

Page 10: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Impasse

• Se um grafo não contém ciclos⇒ sem impasse.

• Se um grafo contém ciclos⇒– Se existe somente uma instância do recurso, então – Se existe somente uma instância do recurso, então

impasse.

– Se existe várias instâncias, possibilidade de impasse.

Page 11: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Métodos para manipular impasses

1. Garantir que o sistema nunca entrará em um estado de impasse.

a) Prevenção de impasse (por construção)

b) Evitar o impasse (em tempo de execução)

2. Permitir que o sistema entre em um estado de impasse e recuperá-lo.

3. Ignorar o problema e torcer para que um deadlock não ocorra no sistema (afinal, qual seria a utilidade do botão reset?).

Page 12: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Prevenção do impasse

• Exclusão mútua– Alguns recursos necessitam de acesso exclusivo,

portanto é uma situação obrigatória

• Obtém e espera: evitar que um processo • Obtém e espera: evitar que um processo solicite um recurso, enquanto estiver de posse de outros recursos– Solicitar todos os recursos no início da execução– Baixa utilização dos recursos (possibilidade de

abandono de processos “starvation”)

Page 13: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Prevenção de impasses(2)

• Sem preempção– Possibilitar a preempção. Um processo de posse de alguns

recursos, solicita outro recurso que não pode ser alocado. O processo libera os recursos obtidos e espera

– O processo entra na fila de solicitação de todos os recursos – O processo entra na fila de solicitação de todos os recursos que ele tinha acesso, mais o recurso solicitado

– O processo volta a executar somente quando todos os recursos estão disponíveis

• Espera circular– Impor uma ordem dos recursos, e possibilitar somente a

alocação dos recursos em ordem crescente

Page 14: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Evitar o impasse

• Necessita de algumas informações adicionais– Cada processo deve declarar o número máximo de

recursos de cada tipo que utilizará durante a execução

– Algoritmo para evitar o impasse analisa – Algoritmo para evitar o impasse analisa dinamicamente o estado do grafo de alocação de recursos para verificar a situação de espera circular

– O estado do grafo de alocação do recurso considera o número de recursos alocados e o máximo disponível, e a utilização máxima de cada processo

Page 15: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Estado seguro

• Quando um processo solicita um recurso, deve-se analisar se a alocação imediata deixará o sistema em um estado seguro (sem possibilidade de impasse)

• Estado seguro: se existe uma sequencia de processos <P1, P2, …, Pn>, de todos os processos do sistema, onde para cada P , os recursos que P pode ainda

1 2 n

onde para cada Pi, os recursos que Pi pode ainda solicitar, são satisfeitos pelos recursos disponíveis + recursos alocados por Pj, onde j < i– Se os recursos que Pi necessita não estão disponíveis, Pi

poderá esperar até que os processso Pj sejam finalizados

– Os recursos que Pi necessita, estarão disponíveis após a finalização dos processos Pj

– Pi+1 pode continuar a executar após finalização de Pi, onde todos os recursos necessários estarão disponíveis

Page 16: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Estado seguro x Estado inseguro

• Se o sistema está em estado seguro: sem possibilidade de impasse

• Se o sistema está inseguro: existe a possibilidade de impassepossibilidade de impasse

• Evitar o impasse: não permitir que o sistema entre em estado inseguro.

Page 17: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Algoritmo do banqueiro

• Evitar o impasse em um sistema com múltiplas instâncias de recursos

• Cada processo deve durante sua inicialização, indicar todos os recursos que irá utilizar (o máximo)máximo)

• Quando um processo solicita um recurso, o mesmo pode esperar

• O processo tem que garantir que liberará todos os recursos em uma quantidade finita de tempo

Page 18: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Algoritmo do banqueiro

• N = processos, M= tipos de recursos– Available= vetor de tamanho M. Available[j]= K, indica

que existem K instâncias do recurso Rj disponíveis

– Max= matriz NxM. Max[i, j]=K, indica que um processo Pi pode solicitar no máximo K instâncias do recurso Rj.Pi pode solicitar no máximo K instâncias do recurso Rj.

– Allocation= matriz NxM. Allocation[i, j]=K, indica que um processo Pi, alocou K instâncias do recurso Rj

– Need= matriz NxM. Need[i, j]=K, indica que um processo Pi, necessita ainda K instâncias do recurso Rj para finalizar.

• Need= Max-Allocation

Page 19: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Algoritmo para avaliação do estado

1. Work e Finish são dois vetores de tamanho m e n, respectivamente. Inicializar

• Work= available

• Finish[i]= false, para i=0..N

2. Procure um i, onde:• Finish[i]= false• Finish[i]= false

• Needi<=Work

• Se não existir um processo i, vá para o passo 4

3. Passo 3• Work= Work+ Allocationi

• Finish[i]= true

• Volte para o passo 2

4. Passo 4• Se Finish[i]=true para todo i, o sistema está em estado seguro

Page 20: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Algoritmo para alocação recursos do processo Pi

• Requesti= vetor de requisições do processo Pi1. Se Requesti <= Needi, vá para o passo 2. Senão, sinalize um

erro, pois o processo solicitou mais recursos que ele declarou necessitar

2. Se Requesti <= Available, vá para o passo 3. Senão, o processo Pi deve esperar pois os recursos não estão processo Pi deve esperar pois os recursos não estão disponíveis

3. O processo Pi pretende alocar os recursos, logo é necessário atualizar as estruturas de dados

Available = Available – Request;

Allocationi = Allocationi + Requesti;Needi = Needi – Requesti;

• Se seguro => os recursos podem ser alocados

• Senão o processo deve esperar, e o estado anterior deve ser restaurado

Page 21: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Exemplo do algoritmo do banqueiro

• 5 processos P0 .. P4; • 3 tipos de recursos: A (10 instâncias), B (5

instâncias), and C (7 instâncias).• Visão do sistema no tempo T0:

Allocation Max AvailableAllocation Max Available

A B C A B C A B C

P0 0 1 0 7 5 3 3 3 2P1 2 0 0 3 2 2 P2 3 0 2 9 0 2P3 2 1 1 2 2 2P4 0 0 2 4 3 3

Page 22: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Exemplo

• O conteúdo da matriz Need = Max – Allocation.Need

A B C

P0 7 4 3 P 1 2 2 P1 1 2 2 P2 6 0 0 P3 0 1 1P4 4 3 1

• O sistema esta em estado seguro < P1, P3, P4, P2, P0> satifaz o critério de segurança.

Page 23: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

P1 requisita (1,0,2)

• Verifique que Request ≤ Available (isto é, (1,0,2) ≤(3,3,2) ⇒ true.

Allocation Need Available

A B C A B C A B C

P0 0 1 0 7 4 3 2 3 0P0 0 1 0 7 4 3 2 3 0P1 3 0 2 0 2 0 P2 3 0 1 6 0 0 P3 2 1 1 0 1 1P4 0 0 2 4 3 1

• Executando o algoritmo, obtemos que a sequência < P1, P3, P4, P0, P2> satisfaz o critério de segurança.

Page 24: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Exercício

• Requisição (3,3,0) por P4 pode ser realizada?

• Requisição (0,2,0) por P0 pode ser realizada?

Page 25: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Detecção de impasses

Permitir que o sistema entre em um estado de impasse e recuperá-lo.

Page 26: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Detecção de impasses

• Permitir que o sistema entre em estado de impasse

• Detectar

• Recuperar um estado seguro• Recuperar um estado seguro

Page 27: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Única instância

• Gerar um grafo waiting-for

– Nós: processos

– Pi ->Pj , Pi esperando por um recurso alocado

por Pj

– Algoritmo de detecção de ciclos

Page 28: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Múltiplas instâncias

• M tipos de recursos no sistema

• Available: vetor de tamanho m. Indica os recursos disponíveis

• Allocation: matriz NxM. Número de recursos• Allocation: matriz NxM. Número de recursosque cada processo tem alocado

• Request: matriz NxM. Matriz representa as requisições que estão em andamento.

Page 29: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Algoritmo de detecção de impasse

1. Work e Finish são vetores de tamanho M e N respectivamente• Work= Available• Finish[i]= false, se Allocationi!= 0, senão Finish[i]= true

2. Procurar um i, onde• Finish[i]== false • Requesti<= Work• Se um nenhum elemento i existe com essas condições, vá para o • Se um nenhum elemento i existe com essas condições, vá para o

passo 43. Passo 3

• Work= Work + Allocation• Finish[i]= true• Vá para o passo 2

4. Passo4• Se existe Finish[i] ==false, então o sistema está em estado de

impasse. Os processos com Finish=false, estão em impasse.

Page 30: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Exemplo de detecção de deadlocks

• Processos P0 .. P4; 3 tipos de recursos A (7 instâncias), B (2 instâncias), e C (6 instâncias).

• Estado do sistema no tempo T0:Allocation Request Available

A B C A B C A B CA B C A B C A B C

P0 0 1 0 0 0 0 0 0 0P1 2 0 0 2 0 2P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2

• Seqüência <P0, P2, P3, P1, P4> resultará Finish[i] = true para todo i.

Page 31: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Deadlock

• P2 requisita uma instância adicional do recurso C.Request

A B C

P0 0 0 0P 2 0 2P1 2 0 2P2 0 0 1P3 1 0 0 P4 0 0 2

• Estado do sistema?– Pode utilizar os recursos de P0, porém insuficiente para satisfazer as

outras requisições.– Um impasse existe no sistema, com os processos P1, P2, P3, and P4

Page 32: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Utilização do algoritmo de detecção de impasse

• Qual a freqüência para invocar o algoritmo– Depende da utilização do sistema

• Se demorar muito, poderá ocorrer muitos ciclos

– Quantos processos devem retornar a um estado seguro para sair do estado de impasse? (um para seguro para sair do estado de impasse? (um para cada ciclo)

Page 33: Sistemas Operacionais: Deadlocks - Unioestemarcio/SO/Aula6Deadlocks.pdf · Sistemas Operacionais: Deadlocks. Deadlocks (impasse) • Definição – “Um conjunto de processos bloqueados

Recuperação do impasse

• Finalizar processos– Finalizar todos os processos no estado de impasse

– Eliminar um processo por vez, até que o impasse seja finalizado

– Em qual ordem?• Prioridade

• Utilização dos recursos

• Tempo de execução

• Preempção de recursos