bc1518 SO Aula07 Deadlock -...

57
Prof. Marcelo Z. do Nascimento [email protected] BC1518-Sistemas Operacionais Deadlock (Impasse) Deadlock (Impasse) Aula 07 Aula 07

Transcript of bc1518 SO Aula07 Deadlock -...

Page 1: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

Prof. Marcelo Z. do [email protected]

BC1518-Sistemas Operacionais

Deadlock (Impasse)Deadlock (Impasse)Aula 07Aula 07

Page 2: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

Roteiro• Conceito de Deadlock;

• Recursos;

• Condições de ocorrência;

• Estratégias para tratar Deadlocks;

• Prevenção de deadlocks;

• Leituras Sugeridas

• Exercícios

Page 3: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

3

Deadlocks� Na ausência de uma sincronização pode ocorrer um

deadlock;

� Definição: ÉÉ o congestionamento de requisio congestionamento de requisiçções de ões de recursos no âmbito de todo o sistema que comerecursos no âmbito de todo o sistema que começça a quando 2 ou mais programas são colocados em espera quando 2 ou mais programas são colocados em espera atatéé que o recurso vital se torne disponque o recurso vital se torne disponíível.vel.

� Normalmente não pode ser resolvido pelo S.O. e requer intervenção externa por parte do operador ou dos usuários, forçando a tomar atitudes drásticas, como provocar manualmente o término do programa.

Page 4: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

4

Deadlocks� Analogia: escada muito estreita em um prédio.

� A escada foi construída como uma rota de fuga na eventualidade de um incêndio,

� As pessoas que trabalham no prédio muitas vezes preferem usá-las ao invés de esperar pelos elevadores.

� O tráfego vai bem até que duas pessoas movendo em direção opostas se cruzam - há espaço para apenas uma pessoa em cada degrau.

Page 5: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

5

Deadlocks

SituaSituaçção de ão de deadlockdeadlock

Analogia: Congestionamento de trânsito

Page 6: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

6

Deadlocks - Recursos� Existem 2 tipos de recursos:

�� Preemptivos:Preemptivos: podem ser retirados do processo sem prejuízos;

� Exemplo: Memória – 2 processos solicitam a impressão (sistema time-sharing)

� Processo A obtém a impressora;� CPU retira processo A e processo B tenta obter a impressora;

� Situação de deadlock;� Envia processo B para disco e carrega o processo A na memória – elimina o deadlock;

Page 7: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

7

Deadlocks�� NãoNão--preemptivos:preemptivos: não podem ser retirados do processo => causam prejuízos;

� CD-ROM;

� Processo A começou a gravar um CD-ROM,

� Retirar repentinamente do processo A o gravador de CD e passar a um outro processo,

� Resultará em um CD com erros.

� Deadlocks ocorrem com esse tipo de recurso;

Page 8: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

8

Deadlocks�� Como Como éé a seqa seqüüência de eventos para utilizaência de eventos para utilizaçção de um ão de um

recurso compartilhado?recurso compartilhado?

� Requisição do recurso;

� Utilização do recurso;

� Liberação do recurso;

�� Se não estiver disponSe não estiver disponíível, o que pode ocorrer?vel, o que pode ocorrer?

� Processo que requisitou o recurso fica bloqueado atéque o recurso seja liberado;

� Processo que requisitou o recurso falha e depois de um certo tempo tenta novamente requisitar o recurso;

Page 9: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

9

Deadlocks - Aquisiçãotypedef int semaphore;semaphore recurso_1;semaphore recurso_2;

void processoA(void){

down(&recurso_1);

down(&recurso_2);

Usar_ambos_itens( );

up(&recurso_2);

up(&recurso_1);

}void processoB(void){

down(&recurso_1);down(&recurso_2);Usar_ambos_itens( ); up(&recurso_2);up(&recurso_1);

}

typedef int semaphore;semaphore recurso_1;semaphore recurso_2;

void processoA(void){down(&recurso_1);down(&recurso_2);Usar_ambos_itens( ); up(&recurso_2);up(&recurso_1);

}void processoB(void){

down(&recurso_2);down(&recurso_1);Usar_ambos_itens( ); up(&recurso_1);up(&recurso_2);

}

Possibilidade de Impasse

Page 10: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

Condições de ocorrência

Page 11: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

11

Deadlocks� Condições para ocorrer um deadlock:

� Analogia com a escada:

� Exclusão mútua: um recurso está sendo utilizado por algum processo ou está disponível (escada);

� Uso e espera (hold and wait): processos que jápossuem algum recurso podem requer outros recursos para finalizar(duas pessoas se encontram no lance da escada);

Page 12: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

12

Deadlocks� Condições para ocorrer um deadlock:

� Analogia com a escada:

� Não-preempção: recursos já alocados não podem ser retirados do processo que os alocou; somente o processo que alocou o recurso pode liberá-lo (escada);

� Espera Circular: Deve existir um encadeamento circular de dois ou mais processos; cada um deles encontra-se à espera de um recursos que está sendo usado pelo mebro seguinte dessa cadeia (monopoliza o recurso – ocupa um degrau e se recusa a retroceder).

Page 13: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

Modelagem de deadlocks

Page 14: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

14

� Holt (1972) as condições podem ser visualizadas através de grafos direcionados;

Processo

Recurso

a) Recurso R alocado ao Processo Ab) Processo B requisita Recurso Sc) Deadlock – ciclo C-T-D-U-C

Aresta de alocação

Modelagem de Deadlocks

Page 15: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

15

� Cenário 1 – Grafos de Recursos

P3 libera R36

P3 requisita e obtém R35

P2 libera R24

P2 requisita e obtém R23

P1 libera R12

P1 requisita e obtém R11

AçãoTempo

P1

R1 R2 R3

P2 P2

Modelagem de Deadlocks

Processo

Page 16: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

16

� Cenário 2: Processos fazem E/S quanto CPU e utiliza algoritmo de alternância circular

P3 requisita R16

P2 requisita R35

P1 requisita R24

P3 requisita e obtém R33

P2 requisita e obtém R22

P1 requisita e obtém R11

AçãoTempo

P1

R1 R2 R3

P2 P3

Modelagem de Deadlocks

Bloqueado

Page 17: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

17

� Cenário 2: Algoritmo de alternância circular

P3 requisita R16

P2 requisita R35

P1 requisita R24

P3 requisita e obtém R33

P2 requisita e obtém R22

P1 requisita e obtém R11

AçãoTempo

P1

R1 R2 R3

P2 P3

Modelagem de Deadlocks

ImpasseComo o SO poderia resolver esse problema?

A ordem de execução seria uma solução? => P2?

Page 18: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

Estratégias para tratar deadlocks

Page 19: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

19

Deadlocks � Quatro estratégias para tratar deadlocks:

� Ignorar o problema;

� Detectar e recuperar o problema;

� Evitar dinamicamente o problema – alocação cuidadosa de recursos;

� Prevenir o problema por meio da não satisfação de uma das quatro condições citadas anteriormente;

Page 20: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

20

Deadlocks � Ignorar o problema:

� “Enterre sua cabeça na areia e finja que nada estáacontecendo” (ALGORITMO DO AVESTRUZ).

� Profissionais reagem diferentemente a essa estratégia?

� Matemáticos consideram inaceitável e devem ser evitados / Engenheiros não aceitam perder desempenho para eliminar deadlock

� A maioria dos S.O. sofre potencialmente de deadlocks que normalmente não são detectados e muito menos anulados.

Page 21: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

21

Deadlocks � Exemplo:

� Sistema UNIX tem 100 entradas na tabela de processos;

� 10 programas estão sendo executados; � cada um precisa criar 12 (sub)processos;

� Após cada processo ter criado 9 outros processos, os 10 originais e os 90 novos esgotaram a capacidade da tabela.

� Cada processo entra em um laço infinito de execução de fork e falha, ou seja, ocorre uma situação de deadlock.

Page 22: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

22

Deadlocks � Maioria do S.O. (Windows e Unix) ignora o

problema, supondo que a maior parte dos usuários preferiria um deadlock ocasional a uma regra que restrinja cada usuário somente a um processo.

Problema:

� Custo é alto – implica restrições não convencionais de processos (criar conjunto de regras).

Page 23: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

23

DeadlocksDetectar e Recuperar o problema:

� Permite que os deadlocks ocorram, tenta detectar as causas e solucionar a situação;

� Utilizados em computadores de grande porte (Mainframe);

� Algoritmos:� Detecção com um recurso de cada tipo;� Detecção com vários recursos de cada tipo;� Recuperação por meio de preempção;� Recuperação por meio de rollback (volta ao passado);� Recuperação por meio de eliminação de processos.

Page 24: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

24

Deadlocks� Detecção com um recurso de cada tipo:

� Tem um recurso de cada tipo: ploter, impressora, CD� Se houverem ciclos, existem potenciais deadlocks;

Situação: com 7 processosPA usa R e precisa de S;PB precisa de T;PC precisa de S;PD usa U e precisa de S e T;PE usa T e precisa de V;PF usa W e precisa de S;PG usa V e precisa de U;

Situação: com 7 processosPA usa R e precisa de S;PB precisa de T;PC precisa de S;PD usa U e precisa de S e T;PE usa T e precisa de V;PF usa W e precisa de S;PG usa V e precisa de U;

Modelagem: Grafo de recursos

Page 25: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

25CicloCiclo

Deadlocks� Detecção com um recurso de cada tipo:

� Resposta através da construção de um grafo;� Se houverem ciclos, existem potenciais deadlocks;

R

S

W

U

T

V

A

C

F

D

B

E

G

Processos: A-GRecursos: R-W

Situação:PA usa R e precisa de S;PB precisa de T;PC precisa de S;PD usa U e precisa de S e T;PE usa T e precisa de V;PF usa W e precisa de S;PG usa V e precisa de U;

Situação:PA usa R e precisa de S;PB precisa de T;PC precisa de S;PD usa U e precisa de S e T;PE usa T e precisa de V;PF usa W e precisa de S;PG usa V e precisa de U;

Pergunta: Há possibilidade de deadlock?

Nós

Arresta

alocado

precisa

Sistema => 7 processosSistema => 7 processos P

L

O

T

E

r

P

L

O

T

E

r

Page 26: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

26

� Algoritmo (aplicação): começa utilizando uma lista L� Execução a partir de R->A,B,C,S,D,T,E,F (ciclo para);

R

S

W

U

T

V

A

C

F

D

B

E

G

Arcos

INÍCIO

precisa

1) Início R => L=[R, A ], L=[R, A, S] =>S não tem arco de saída (retorna);

2) Início A => L=[A,S] S não tem arco de saída (retorna);

3) Início B => L=[B,T,E,V,G,U,D] = escolher S vamos para um nó sem saída e retornamos em D

4) Caso contrário: L=[B,T,E,V,G,U,D,T] =>ciclo

Deadlocks

Page 27: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

27

Deadlocks� Detecção com vários recursos de cada tipo (baseado

em matrizes):� Classes diferentes de recursos – vetor de recursos existentes (E):

� Classe1= unidade de fita e E1=2 => existem duas unidades de fita;

� Vetor de recursos disponíveis (A):� Se ambas as unidades de fita estiverem alocadas, A1=0;

� Duas matrizes:� C: matriz de alocação corrente;

� Cij: número de instâncias do recurso j entregues ao processo i;

� R: matriz de requisições;� Rij: número de instâncias do recurso j que o processo i precisa;

Page 28: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

28

Deadlocks

Recursos existentesE = (4 2 3 1)

4 unidades de fita;2 plotter;3 impressoras; 1 unidade de CD-ROM

Três processos:P1 usa uma impressora;P2 usa duas unidades de fita e uma de CD-ROM;P3 usa um plotter e duas impressoras;Cada processo precisa de outros recursos (R);

Recursos

UF P I UCD

C =0 0 1 02 0 0 10 1 2 0

Matriz de alocaçãoP1

P2

P3

UF P I UCD

Recursos disponíveisA = (2 1 0 0)

UF P I UCD

R =2 0 0 11 0 1 02 1 0 0

Matriz de requisiçõesP1

P2

P3

UF P I UCD

Page 29: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

29

Deadlocks

Recursos existentesE = (4 2 3 1)

Recursos disponíveisA = (2 1 0 0) P3 pode rodarApós rodar P3 =>A = (2 2 2 0)

C =0 0 1 02 0 0 12 2 2 0

P1

P2

P3

R =2 0 0 11 0 1 00 0 0 0

Matriz de requisiçõesP1

P2

P3

4 unidades de fita;2 plotter;3 impressoras; 1 unidade de CD-ROM

Requisições (satisfazer a condição):P1 requisita 2 unidades de fita e um CD-ROM (não pode atender);P2 requisita 1 unidade de fita e 1 impressora (não pode atender);P3 requisita duas unidades de fita e um plotter;

UF P I UCD

Matriz de alocação

Page 30: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

30

Deadlocks

Recursos existentesE = (4 2 3 1)

Recursos disponíveisA = (2 1 0 0)A = (2 2 2 0) P2 pode rodarA = (4 2 2 1)

C =0 0 1 03 0 1 10 0 0 0

Matriz de alocaçãoP1

P2

P3

R =2 0 0 10 0 0 00 0 0 0

Matriz de requisiçõesP1

P2P3

4 unidades de fita;2 plotter;3 impressoras; 1 unidade de CD-ROM

Requisições:P1 requisita duas unidades de fita e um CD-ROM;P2 requisita uma unidade de fita e uma impressora;

Page 31: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

31

Deadlocks

Recursos existentesE = (4 2 3 1)

Recursos disponíveisA = (2 1 0 0)A = (2 2 2 0)A = (4 2 2 1)P1 pode rodar

C =2 0 1 10 0 0 00 0 0 0

Matriz de alocaçãoP1

P2

P3R =

0 0 0 00 0 0 00 0 0 0

Matriz de requisiçõesP1P2

P3

4 unidades de fita;2 plotter;3 impressoras; 1 unidade de CD-ROM

Requisições:P1 requisita duas unidades de fita e um CD-ROM;

Page 32: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

32

Deadlocks

Recursos existentesE = (4 2 3 1)

Recursos disponíveisA = (4 2 3 1)

C =0 0 0 00 0 0 00 0 0 0

Matriz de alocaçãoP1

P2

P3

R =0 0 0 00 0 0 00 0 0 0

Matriz de requisiçõesP1

P2

P3

Ao final da execução, temos:4 unidades de fita;2 plotters;3 impressoras; 1 unidade de CD-ROM

Page 33: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

33

Deadlocks

Recursos existentesE = (4 2 3 1)

Recursos disponíveisA = (2 1 0 0)

Requisições:

V DEADLOCK: P3 requisita duas unidade de fita, umaimpressora e uma unidade de CD-ROM;

4 unidades de fita;2 plotters;3 impressoras; 1 unidade de CD-ROM

CARO

TEMPO

DE

CPU

C =0 0 1 02 0 0 10 1 2 0

Matriz de alocaçãoP1

P2

P3

UF P I UCD

R =2 0 0 11 0 1 02 1 0 1

Matriz de requisições

P1

P2

P3

UF P I UCD

Page 34: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

34

DeadlocksSe localizado o Impasse. O que deve ser feito?

Recuperação de Deadlocks:

� Por meio de preempção: possibilidade de retirar temporariamente um recurso de seu atual dono (processo) e entregá-lo a outro processo;

� Por meio de revisão de estado: recursos alocados a um processo são armazenados em arquivos de verificação; quando ocorre um deadlock, os processos voltam ao estado no qual estavam antes do deadlock.

Page 35: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

35

DeadlocksRecuperação de Deadlocks:� Por meio de eliminação de processos: processos que estão no ciclo com deadlock são retirados do ciclo; processos que não causam algum efeito negativo ao sistema;

� Ex1.: compilação – sem problemas;� Ex2.: atualização de um base de dados –problemas nos registros – adiciona 1 (morto) –adicionará 2;

Page 36: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

36

Deadlocks� É possível evitar impasse fazendo uma escolha

correta?

� Evitar dinamicamente o problema:� Alocação individual de recursos;� Utiliza matrizes descritas anteriormente;� Escalonamento cuidadoso;� Trabalhar com Estados Seguros e Inseguros;

Page 37: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

37

Deadlocks� É possível evitar impasse fazendo uma escolha

correta?

� Algoritmos:� Extensão do algoritmo de detecção de deadlocks;

� Banqueiro para um único tipo de recurso;� Banqueiro para vários tipos de recursos;

Page 38: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

38

Deadlocks� Estados seguros: não provocam deadlocks e há uma

maneira de atender a todas as requisições pendentes finalizando normalmente todos os processos;

� Existe alguma ordem de escalonamento na qual todo o processo possa ser executado até a sua conclusão;

� Estado inseguros: podem provocar deadlocks, mas não necessariamente provocam;

Page 39: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

39

Deadlocks� Seguro:

72C

42B

93A

72C

44B

93A

72C

-0B

93A

77C

-0B

93A

-0C

-0B

93A

Disponível: 3

Disponível: 1

Disponível: 5

Disponível: 0

Disponível: 7

utilizado

Total

solicitado

Começa escalonando o processo B

Page 40: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

40

Deadlocks� Inseguro (não é deadlock):

� Solicitará e obterá outro recurso� Não há garantia que todos irão terminar

72C

42B

93A

72C

42B

94A

72C

44B

94A

72C

--B

94A

Disponível: 3

Disponível: 2

Disponível: 0

Disponível: 4

Começa escalonando o processo A – 1 recurso

Page 41: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

41

Deadlocks� Algoritmos do Banqueiro:

� Idealizado por Dijkstra (1965);� Segue os seguintes princípios (analogia):

� Nenhum cliente receberá um empréstimo maior do que o capital total do banco.

� Todos os clientes receberão um limite de crédito ao abrir suas contas.

� Nenhum cliente poderá ultrapassar esse limite.� A soma de todos os empréstimos não poderá ultrapassar o capital total do banco.

Page 42: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

42

Deadlocks� Algoritmos do Banqueiro:

� Considera cada requisição no momento em que ela ocorre verificando se essa requisição leva a um estado seguro;

� Se sim, a requisição é atendida, � Senão, o atendimento é adiado para um outro momento;

Page 43: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

43

Deadlocks� Algoritmos do Banqueiro:

� Premissas adotadas por um banqueiro (SO) para garantir ou não crédito (recursos) para seus clientes (processos);

� Nem todos os clientes (processos) precisam de toda a linha de crédito (recursos) disponível para eles;

Page 44: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

44

Deadlocks� Algoritmo do Banqueiro para um único tipo de recurso:

A

CD

B0

00

06

47

5A

C*D

B1

24

16

47

5A

CD

B1

24

26

47

5

Máximo de linha de crédito = 22Possui

Livre: 10 Livre: 1Livre: 2

Seguro Seguro Inseguro

• Solicitações de crédito são realizadas de tempo em tempo;• * C é atendido e libera 4 créditos, que podem ser usados por B ou D;

Page 45: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

45

Deadlocks� Algoritmo do Banqueiro para um único tipo de recurso:

A

CD

B0

00

06

47

5A

CD

B1

24

16

47

5A

CD

B*1

24

26

47

5

Máximo de linha de crédito = 22Possui

Livre: 10 Livre: 1Livre: 2

Seguro Seguro Inseguro• Solicitações de crédito são realizadas de tempo em tempo;• * B é atendido. Em seguida os outros fazem solicitação, ninguém poderia ser atendido;

Page 46: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

46

Deadlocks� Algoritmo do Banqueiro para vários tipos de recursos:

� Mesma idéia, mas duas matrizes são utilizadas;

C = Recursos Alocados

Proc

esso

s U

nida

de d

e Fi

taP

lotte

rs

Impr

esso

ras

A

CD

B3

11

00

11

11

10

01

01

0

Uni

dade

de

CD

-RO

M

E 0 0 0 0

R = Recursos ainda necessários

A

CD

B1

30

01

10

10

01

10

00

2

E 2 1 1 0

Recursos � E = (6 3 4 2);Alocados � P = (5 3 2 2);Disponíveis � A = (1 0 2 0);

Page 47: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

47

Deadlocks� Algoritmo do Banqueiro para vários tipos de

recursos:

C = Recursos Alocados

Proc

esso

s U

nida

de d

e Fi

taP

lotte

rs

Impr

esso

ras

A

CD

B3

11

00

11

11

10

11

01

0

Uni

dade

de

CD

-RO

M

E 0 0 0 0

R = Recursos ainda necessários

A

CD

B1

30

01

10

10

01

00

00

2

E 2 1 1 0

Alocados � P = (5 3 3 2);Disponíveis � A = (1 0 1 0);

Atender a solicitação de B => seguro

Page 48: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

48

Deadlocks� Algoritmo do Banqueiro para vários tipos de

recursos:

C = Recursos Alocados

Proc

esso

s U

nida

de d

e Fi

taP

lotte

rs

Impr

esso

ras

A

CD

B3

11

00

11

11

10

11

01

0

Uni

dade

de

CD

-RO

M

E 0 0 1 0

R = Recursos ainda necessários

A

CD

B1

30

01

10

10

01

00

00

2

E 2 1 0 0

Alocados � P = (5 3 4 2);Disponíveis � A = (1 0 0 0);

• Deadlock � Solução: Adiar a requisição de E por alguns instantes;Inseguro: negar

Page 49: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

49

Deadlocks� Algoritmo do Banqueiro:

� Desvantagens� Pouco utilizado, pois é difícil saber quais recursos serão necessários;

� O número de processos é dinâmico e pode variar constantemente tornando o algoritmo custoso (difícil de implementar);

� Vantagem� Teoricamente => o algoritmo é ótimo;

Page 50: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

50

Deadlocks� Prevenir Deadlocks:

� Atacar uma das quatro condições:

Ordenar numericamente os recursos; Mais atrativa de ser praticada;

Espera Circular

Retirar recursos dos processosNão-preempção

Requisitar todos os recursos inicialmenteUso e Espera

Alocar todos os recursos usando um spoolExclusão Mútua

Condição Abordagem

Page 51: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

• Recursos: Preemptivo e não preemptivo

• Impasses: modelagem

• Algoritmo do avestrutz

• Detecção e recuperação de impasses

• Evitando impasses

• Prevenção de impasses

Aula 07 - Sumário

Page 52: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

Leituras Sugeridas• Silberschatz, A., Galvin, P. B. Gagne,

G. Sistemas Operacionais com Java. 7º edição. Editora Campus, 2008 .

• TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: Pearson, 3 ed. 2010

Page 53: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

Acesse o link abaixo:

http://hostel.ufabc.edu.br/~marcelo.nascimento/

Obrigado!!!

Nota de Aula

Page 54: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

54

1. Considere o deadlock de tráfego indicado na figura abaixo:a) Mostre que as quatros condições para o deadlock

de fato estão presentes nesse exemplo.b) Apresente uma regra simples que evite deadlock

nesse sistema.

Exercícios - Deadlocks

Page 55: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

55

2. Dados que os dispositivos são todos do mesmo tipo e utilizando as definições apresentada sobre o algoritmo do Banqueiro responda às seguintes perguntas:a)Determine as requisições restantes para cada programa no sistema.b) Determine se cada sistema é seguro ou inseguro.c) Se o sistema tiver em estado seguro, relacione a seqüência de requisições e liberações que possibilitará a execução completa de todos os processos.d) Se o sistema estiver em estado inseguro, mostre como é possível ocorrer um impasse.

Exercícios - Deadlocks

Page 56: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

56

i)Sistema A tem 12 dispositivos; apenas 1 está disponível.

Exercícios

204

623

742

651

Requisições restantes

Máximo de requisições

Dispositivos alocados

Número do programa

Page 57: bc1518 SO Aula07 Deadlock - hostel.ufabc.edu.brhostel.ufabc.edu.br/.../bc1518_SO_Aula07_Deadlock.pdf · Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas

57

ii)Sistema B tem 14 dispositivos; apenas 2 está disponível.

Exercícios

843

932

851

Requisições restantes

Máximo de requisições

Dispositivos alocados

Número do programa