Upload
igorbattisti
View
249
Download
0
Embed Size (px)
Citation preview
8/6/2019 SOI Deadlock
1/52
SistemasSistemas
Operacionais IOperacionais I
Maria Clicia Stelling de CastroMaria Clicia Stelling de Castro
2006/1
8/6/2019 SOI Deadlock
2/52
Deadlocks
8/6/2019 SOI Deadlock
3/52
Deadlocks ProblemaProblema
Modelo do SistemaModelo do Sistema
CaracterizaoCaracterizao
Mtodos para ManipulaoMtodos para Manipulao
PrevenoPreveno
EvitarEvitar
DetecoDeteco
RecuperaoRecuperao
8/6/2019 SOI Deadlock
4/52
Objetivos
Devenvolver uma descrio deDevenvolver uma descrio de deadlocksdeadlocks,,
os quais impedem que conjuntos de processosos quais impedem que conjuntos de processosconcorrentes completem suas tarefasconcorrentes completem suas tarefas
Apresentar diferentes mtodos para prevenir ouApresentar diferentes mtodos para prevenir ou
evitarevitardeadlocksdeadlocks em um sistema computacionalem um sistema computacional
8/6/2019 SOI Deadlock
5/52
O Problema de Deadlocks Conjunto de processos bloqueados cada um mantendoConjunto de processos bloqueados cada um mantendo
um recurso e esperando para adquirir um recurso,um recurso e esperando para adquirir um recurso,mantido por um outro processo no conjuntomantido por um outro processo no conjunto
ExemploExemplo:: Sistema com 2Sistema com 2 disk drivesdisk drives
PP11 eePP22 cada um mantendo umcada um mantendo um disk drivedisk drive e cada ume cada umnecessitando de um outronecessitando de um outro
ExemploExemplo: semforos: semforos AA ee BB, iniciados com 1, iniciados com 1
PP00 PP11wait (A);wait (A); wait(B)wait(B)
wait (B);wait (B); wait(A)wait(A)
8/6/2019 SOI Deadlock
6/52
Ex
emplo para Atravessar uma Ponte
Trfego somente em uma direoTrfego somente em uma direo
Cada seo da ponte pode ser vista como um recursoCada seo da ponte pode ser vista como um recurso
Se ocorreSe ocorre deadlockdeadlock, pode ser resolvido se um carro, pode ser resolvido se um carrovoltar (voltar (preempo de recursospreempo de recursos ee rollbackrollback))
Diversos carros podem ter que voltar se ocorreDiversos carros podem ter que voltar se ocorredeadlockdeadlock
Pode causarPode causarstarvationstarvation
8/6/2019 SOI Deadlock
7/52
Modelo do Sistema
Tipos de recursosTipos de recursos RR11,, RR22, . . .,, . . ., RRmm
CPU cycles, memory space, I/O devicesCPU cycles, memory space, I/O devices
Cada tipo de recursoCada tipo de recurso RRii temtem WWii instnciasinstncias
Cada processo utiliza um recurso daCada processo utiliza um recurso da
seguinte forma:seguinte forma:
pedidopedido
usouso
liberaoliberao
8/6/2019 SOI Deadlock
8/52
Caracterizao de DeadlockDeadlockDeadlockocorre se e somente se quatroocorre se e somente se quatro
condies se mantiverem simultaneamentecondies se mantiverem simultaneamente
Mutual exclusionMutual exclusion:: somente um processo desomente um processo de
cada vez pode usar um recursocada vez pode usar um recurso
Hold and waitHold and wait:: um processo mantendo peloum processo mantendo pelo
menos um recurso e est esperando paramenos um recurso e est esperando para
adquirir recursos adicionais mantidos poradquirir recursos adicionais mantidos por
outros processosoutros processos
8/6/2019 SOI Deadlock
9/52
Caracterizao de Deadlock
No preemptionNo preemption:: um recurso s pode ser liberadoum recurso s pode ser liberadovoluntariamente pelo processo que o mantm, apsvoluntariamente pelo processo que o mantm, apso processo completar a sua tarefao processo completar a sua tarefa
CircularwaitCircularwait:: existe um conjuntoexiste um conjunto {{PP00,,PP11, ,, ,PP00}}de processos esperando, tal quede processos esperando, tal que PP00 est esperandoest esperandopor um recurso que est atribudopor um recurso que est atribudo PP11,, PP11 estest
esperando por um recurso que est atribudo aesperando por um recurso que est atribudo aPP
22, ,, ,PPnn11 est esperando por um recurso que estest esperando por um recurso que est
atribudoatribudoPPnn, e, e
PPnn est esperando por um recurso que estest esperando por um recurso que est
atribudo aatribudo a PP00
8/6/2019 SOI Deadlock
10/52
Grafo de Alocao de RecursosGrafoGrafo : um conjunto de vrtices: um conjunto de vrtices VVe um conjuntoe um conjunto
de arestasde arestas EE
VV est particionado em dois tipos:est particionado em dois tipos:
PP={={PP11,,PP22, ,, ,PPnn}},, o conjunto de todos os processoso conjunto de todos os processos
no sistemano sistema
RR ={={RR11,,RR22, ,, ,RRmm}}, o conjunto de todos os tipos de, o conjunto de todos os tipos derecursos no sistemarecursos no sistema
aresta de pedidoaresta de pedido aresta direcionadaaresta direcionada PP11pp RRjj
aresta de atribuioaresta de atribuio aresta direcionadaaresta direcionada RRjjpp PPii
8/6/2019 SOI Deadlock
11/52
Grafo de Alocao de Recursos ProcessoProcesso
Tipo de recurso com 4 instnciasTipo de recurso com 4 instncias
PPiisolicita instncia desolicita instncia de RRjj
PPiiest mantendo uma instncia deest mantendo uma instncia de RRjj
Pi
Pi
Rj
Rj
8/6/2019 SOI Deadlock
12/52
Exemplo de um Grafo de Alocao
de Recursos
8/6/2019 SOI Deadlock
13/52
Grafo de Alocao de Recursos com
Deadlock
8/6/2019 SOI Deadlock
14/52
Grafo de Alocao de Recursos com
Ciclo sem Deadlock
8/6/2019 SOI Deadlock
15/52
Fatos Bsicos
GrafoGrafo
nono contm cicloscontm ciclos
no hno h deadlockdeadlock contm um ciclocontm um ciclo se houverse houver
somentesomente uma instnciauma instnciapor tipo de recurso,por tipo de recurso,
entoento ocorreocorre deadlockdeadlockdiversas instnciasdiversas instnciaspor tipo de recurso,por tipo de recurso,
entoentopode correrpode correrdeadlockdeadlock
8/6/2019 SOI Deadlock
16/52
Mtodos de Manipulao de Deadlock
Garante que o sistemaGarante que o sistema nuncanunca entra num estadoentra num estado
dede deadlockdeadlock
Permite que o sistema entre num estado dePermite que o sistema entre num estado de
deadlockdeadlocke ento recuperae ento recupera
Ignora o problema e pretende queIgnora o problema e pretende que deadlocksdeadlocks
nunca ocorram no sistema; usado por muitosnunca ocorram no sistema; usado por muitossistemas operacionais, incluindo o UNIXsistemas operacionais, incluindo o UNIX
8/6/2019 SOI Deadlock
17/52
Preveno de Deadlock
Mutual ExclusionMutual Exclusion
no necessria para recursosno necessria para recursos
compartilhveiscompartilhveis
deve se manter para recursos que no podemdeve se manter para recursos que no podemser compartilhadosser compartilhados
8/6/2019 SOI Deadlock
18/52
Preveno de Deadlock
Hold and WaitHold and Wait deve guarantir que sempredeve guarantir que sempreque um processo solicite um recurso, ele noque um processo solicite um recurso, ele no
mantm qualquer outro recursomantm qualquer outro recurso Exige que os processos solicitem e sejamExige que os processos solicitem e sejam
alocados todos os seus recursos antes dealocados todos os seus recursos antes de
iniciar a execuo, ou permite que oiniciar a execuo, ou permite que oprocesso solicite recursos somente quandoprocesso solicite recursos somente quandono tenha nenhum outrono tenha nenhum outro
Baixa utilizao de recursos; possibilitaBaixa utilizao de recursos; possibilita
starvationstarvation
8/6/2019 SOI Deadlock
19/52
8/6/2019 SOI Deadlock
20/52
Preveno de Deadlock
CircularWaitCircularWait
impe uma ordenao total de todos osimpe uma ordenao total de todos ostipos de recursostipos de recursos
requer que cada processo solicite recursosrequer que cada processo solicite recursos
em uma ordem crescente de enumeraoem uma ordem crescente de enumerao
8/6/2019 SOI Deadlock
21/52
EvitarDeadlockRequer que o sistema tenha alguma informao
adicional disponvel apriori
Modelo mais simples e til requer que cadaModelo mais simples e til requer que cadaprocesso declare oprocesso declare o nmero mximonmero mximo de recursosde recursos
de cada tipo que pode precisarde cada tipo que pode precisar
Algoritmo deAlgoritmo de deadlockdeadlock--avoidanceavoidance examinaexaminadinamicamente odinamicamente o estado de alocao deestado de alocao de
recursosrecursospara garantir que nunca ocorra umpara garantir que nunca ocorra um
condio de espera circular (condio de espera circular (circularcircular--waitwait))
8/6/2019 SOI Deadlock
22/52
EvitarDeadlock
Estado de alocao de recursosEstado de alocao de recursos definido definido
pelo nmero depelo nmero de recursos disponveis erecursos disponveis ealocadosalocados
demanda mxima dos processosdemanda mxima dos processos
8/6/2019 SOI Deadlock
23/52
Estado Seguro Quando um processo solicita um recursoQuando um processo solicita um recurso
disponvel, o sistema deve decidir se com adisponvel, o sistema deve decidir se com a
alocao imediata deste recurso, o sistemaalocao imediata deste recurso, o sistema
permanece em umpermanece em um estado seguroestado seguro
O sistema est em umO sistema est em um estado seguroestado seguro se exite umase exite umaseqnciaseqncia de todos os processosde todos os processos
o sistema tal que para cadao sistema tal que para cada PPii, o recurso que, o recurso que PPiiainda pode solicitar e pode ser satisfeito pelosainda pode solicitar e pode ser satisfeito pelos
recursos correntemente disponveis + recursosrecursos correntemente disponveis + recursos
mantido por todos osmantido por todos os PPjj, com, com jj
8/6/2019 SOI Deadlock
24/52
Estado Seguro
Isto :Isto :
SeSe PPiinecessita de recursos que no estonecessita de recursos que no esto
disponveis imediatamente, entodisponveis imediatamente, ento PPiipodepode
esperar at que todosesperar at que todos PPjj tenham teminadotenham teminado
QuandoQuando PPjj termina,termina, PPiipode obter os recursospode obter os recursos
necessrios, executar, retornar os recursosnecessrios, executar, retornar os recursosalocados e terminaralocados e terminar
QuandoQuando PPiitermina,termina, PPii+1+1pode obter seuspode obter seus
recursos necessrios, e assim por diante.recursos necessrios, e assim por diante.
8/6/2019 SOI Deadlock
25/52
Fatos Bsicos
Se um sistema est numSe um sistema est num
estado seguroestado seguro
no ocorreno ocorre deadlocksdeadlocks estado inseguroestado inseguropode ocorrerpode ocorrerdeadlockdeadlock
EvitarEvitar garante que um sistemagarante que um sistema nuncanunca
entrar em umentrar em um estado inseguroestado inseguro
8/6/2019 SOI Deadlock
26/52
Algoritmos Avoidance
nica instnica de um tipo de recurso usarnica instnica de um tipo de recurso usar
umum grafo de alocao de recursografo de alocao de recurso
Mltiplas instncias de um tipo de recursoMltiplas instncias de um tipo de recurso
oo bankers algorithmbankers algorithm
8/6/2019 SOI Deadlock
27/52
Esquema do Grafo de Alocao de
Recursos Aresta de demanda (Aresta de demanda (claim edgeclaim edge)) PPiipp RRjj indica queindica que
processoprocesso PPjjpode solicitar o recursopode solicitar o recurso RRjj; representado; representadopor uma linha tracejadapor uma linha tracejada
CClaim edgelaim edge converte para aresta de pedido (converte para aresta de pedido (requestrequestedgeedge) quando um processo solicita um recurso) quando um processo solicita um recurso
Aresta de pedido converte para aresta de atribuioAresta de pedido converte para aresta de atribuio
((assign
men
t edgeassign
men
t edge) quando o recurso alocado ao) quando o recurso alocado aoprocessoprocesso
Quando um recurso liberado por um processo, aQuando um recurso liberado por um processo, aaresta de atribuio se converte para uma claim edgearesta de atribuio se converte para uma claim edge
Recursos devem ser declarados no sistemaRecursos devem ser declarados no sistema a prioria priori
8/6/2019 SOI Deadlock
28/52
Grafo de Alocao de Recursos
8/6/2019 SOI Deadlock
29/52
Grafo de Alocao de Recursos em
Estado Inseguro
8/6/2019 SOI Deadlock
30/52
Algoritmo do Grafo de Alocao de
Recursos
Suponha que o processoSuponha que o processo PPiisolicite um recursosolicite um recurso RRjj
O pedido pode ser garantido somente se aO pedido pode ser garantido somente se aconverso da aresta de pedido (converso da aresta de pedido (request edgerequest edge))
para aresta de atribuio (para aresta de atribuio (assignment edgeassignment edge) no) no
resulta numa formao de um ciclo no grafo deresulta numa formao de um ciclo no grafo dealocao de recursosalocao de recursos
8/6/2019 SOI Deadlock
31/52
Bankers Algorithm
Mtiplas instnciasMtiplas instncias
Cada processo deve aCada processo deve aprioripriori declarar a suadeclarar a sua
demanda de uso mximademanda de uso mxima Quando um processo solicita um recurso ele podeQuando um processo solicita um recurso ele pode
ter que esperarter que esperar
Quando um processo consegue todos os seusQuando um processo consegue todos os seusrecursos, ele deve liberrecursos, ele deve liber--los numa quantidade delos numa quantidade de
tempo finitatempo finita
8/6/2019 SOI Deadlock
32/52
Estrutura de Dados: Bankers Algorithm
AvailableAvailable:: Vetor de tamanhoVetor de tamanho mm. Se. Se AvailableAvailable[[jj]=]=kk, existem, existem kkinstncias dos recursos doinstncias dos recursos do
tipotipo RRjj disponveisdisponveis MaxMax::matrizmatriz n x mn x m. Se. Se MaxMax[[i,ji,j]=]=kk, ento, ento
processoprocesso PPiipode pedir atpode pedir at kkinstncias doinstncias do
recurso do tiporecurso do tipo RRjj
Suponha
n = nmero de processos,
m = nmero de tipos de recursos
8/6/2019 SOI Deadlock
33/52
Estrutura de Dados: Bankers Algorithm
AllocationAllocation::matrizmatriz nn xx mm. Se. Se Allocation[i,j]=Allocation[i,j]=
kkentoento PPiiest alocandoest alocando kkinstncias deinstncias de RR
jj
NeedNeed::matrizmatriz nn xx mm. Se. SeNeedNeed[[i,ji,j]=]= kk, ento, ento PPiipode necessitar de maispode necessitar de mais kkinstncias deinstncias de RRjjparapara
terminar sua tarefaterminar sua tarefa
Need [i,j]= Max[i,j]Need [i,j]= Max[i,j]Allocation [i,j]Allocation [i,j]
8/6/2019 SOI Deadlock
34/52
Algoritmo Seguro
1.1. DeixeDeixe WorkWorkee FinishFinish serem vetores de tamanhoserem vetores de tamanho mmee nn, respectivamente. Inicie:, respectivamente. Inicie:
WorkWork==AvailableAvailable
FinishFinish [[ii]=]=falsefalse forfor ii=0, 1, ,=0, 1, ,nn-- 11
2.2. Encontre umEncontre um ii tal que ambos:tal que ambos:
(a)(a)FinishFinish [[ii]=]=falsefalse
(b)(b)NeedNeediieeWorkWork
Se no existe talSe no existe tal ii, v para o passo 4, v para o passo 4
3.3. WorkWork==WorkWork++AllocationAllocationiiFinishFinish[[ii]=]= truetruev para o passo 2v para o passo 2
4.4. SeSe FinishFinish [[ii]== true]== true tara todotara todo ii, ento o sistema, ento o sistema
est em umest em um estado seguroestado seguro
8/6/2019 SOI Deadlock
35/52
Algoritmo de Pedido de Recurso
por Processo Pi
RequestRequest= vetor de pedido para o processo= vetor de pedido para o processoPPii. If. IfRequestRequestii[[jj]=]=kkento processoento processo PPiiquerquerkkinstnciasinstncias
do recurso de tipodo recurso de tipo RRjj1.1.SeSe RequestRequestiiee NeedNeediiv para o passo 2. Casov para o passo 2. Caso
contrrio, raise error condio de erro, uma vez quecontrrio, raise error condio de erro, uma vez queo processo excedeu sua demanda mximao processo excedeu sua demanda mxima
2.2.SeSe RequestRequestiiee AvailableAvailable, v para o passo 3. Caso, v para o passo 3. CasocontrriocontrrioPPii deve esperar, uma vez que os recursosdeve esperar, uma vez que os recursosno esto disponveisno esto disponveis
8/6/2019 SOI Deadlock
36/52
Algoritmo de Pedido de Recurso
por Processo Pi
3.3.Pretende alocar recursos pedidos paraPretende alocar recursos pedidos paraPPiimodificando o estado da seguinte forma:modificando o estado da seguinte forma:
AvailableAvailable ==AvailableAvailable Request;Request;AllocationAllocationii==AllocationAllocationii++RequestRequestii;;
NeedNeedii== NeedNeediiRequestRequestii;;
SeSesafesafe os recursos so alocadosos recursos so alocados aa PPiiSeSe unsafeunsafe PPii deve esperar e o estado dedeve esperar e o estado de
alocao antigo restauradoalocao antigo restaurado
8/6/2019 SOI Deadlock
37/52
Exemplo do Algoritmo do Banqueiro
5 Processos5 Processos PP00 atat PP44;;3 tipos de recursos:3 tipos de recursos:
AA (10),(10), BB (5), e(5), e CC(7) instncias(7) instncias
SnapshotSnapshotdo tempodo tempo TT00::AllocationAllocation MaxMax AvailableAvailable
A B CA B C A B CA B C A B CA B C
PP00 0 1 00 1 0 7 5 37 5 3 3 3 23 3 2
PP11 200200 3 223 22
PP22
3 023 02 902902
PP33 2 1 12 1 1 222222
PP44 002002 4 3 34 3 3
8/6/2019 SOI Deadlock
38/52
Exemplo do Algoritmo do Banqueiro
O contedo da matrizO contedo da matriz NeedNeed definido como definido comoMaxMaxAllocationAllocationNeedNeed
A B CA B C
PP00 74 374 3
PP11 1 221 22
PP22
600600
PP33 0 1 10 1 1PP44 4 3 14 3 1
O sistema est em um estado seguro, porque aO sistema est em um estado seguro, porque aseqnciaseqncia satisfais o critriosatisfais o critrio
de seguranade segurana
8/6/2019 SOI Deadlock
39/52
Exemplo: Pisolicita (1,0,2)
Verfique queVerfique que RequestRequesteeAvailableAvailable(que ,(que , (1,0,2)(1,0,2)ee (3,3,2)(3,3,2) truetrue))
Allocation
Allocation NeedNeed
Available
Available
A B CA B C A B CA B C A B CA B C
PP00 0 1 00 1 0 74 374 3 2 3 02 3 0
PP11 3 02
3 02
02
002
0PP
223 0 13 0 1 600600
PP33 2 1 12 1 1 0 1 10 1 1
PP44 002
002
4 3 14 3 1
8/6/2019 SOI Deadlock
40/52
Exemplo: Pi
solicita (1,0,2)
Execuo do algoritmo de segurana mostraExecuo do algoritmo de segurana mostra
que a seqnciaque a seqncia satisfais asatisfais a
necessidade de segurananecessidade de segurana O pedido paraO pedido para (3,3,0)(3,3,0)pelopelo PP44pode serpode ser
garantido?garantido?
O pedido paraO pedido para (0,2,0)(0,2,0)pelopelo PP00pode serpode sergarantido?garantido?
8/6/2019 SOI Deadlock
41/52
Deteco de Deadlock
Permite ao sistema entrar num estado dePermite ao sistema entrar num estado de
deadlockdeadlock
Algoritmo de DeteoAlgoritmo de Deteo
Esquema de RecuperaoEsquema de Recuperao
8/6/2019 SOI Deadlock
42/52
nica Instncia para Cada Tipo de
Recurso
Mantm grafoMantm grafo waitwait--forfor
Ns so processosNs so processos
PPiipp PPjj sese PPiiest esperando porest esperando porPPjj
Periodicamente invoca um algoritmo que buscaPeriodicamente invoca um algoritmo que busca
por um ciclo no grafo. Se existe um ciclo, existepor um ciclo no grafo. Se existe um ciclo, existe
deadlockdeadlock
Um algoritmo para detectar um ciclo em um grafoUm algoritmo para detectar um ciclo em um grafo
requer operaes da ordem derequer operaes da ordem de nn22, onde, onde nn o o
nmero de vrtices no grafonmero de vrtices no grafo
8/6/2019 SOI Deadlock
43/52
Grafo de Alocao de Recurso e
Grafo Wait-For
Resource-AllocationGraph Corresponding Wait-For Graph
8/6/2019 SOI Deadlock
44/52
Diversas Instncias de um Tipo de
Recurso AvailableAvailable:: Um vetor de tamanhoUm vetor de tamanho mm indica oindica o
nmero de recursos disponveis de cada tiponmero de recursos disponveis de cada tipo
AllocationAllocation:: Uma matrizUma matriz nn xx mm define odefine onmero de recursos de cada tipo correntementenmero de recursos de cada tipo correntemente
alocado para cada processoalocado para cada processo
RequestRequest:: Uma matrizUma matriz nn xx mm indica o pedidoindica o pedidocorrente de cada processo. Secorrente de cada processo. Se RequestRequest[[iijj]=]=kk,,
ento o processoento o processo PPiiest pedindo maisest pedindo mais kk
instncias do tipo de recursoinstncias do tipo de recurso RRjj
8/6/2019 SOI Deadlock
45/52
Algoritmo de Deteco
1.1.DeixeDeixe WorkWorkeeFinishFinish serem vetores de tamanhoserem vetores de tamanho mmee nn, respectivamente. Inicie:, respectivamente. Inicie:
(a)(a)WorkWork==AvailableAvailable(b)(b)ForFor ii= 1,2, ,= 1,2, , nn, if, ifAllocationAllocationii{{ 0, then0, then
FinishFinish[i]= false;otherwise,[i]= false;otherwise,FinishFinish[i]=[i]=truetrue
2.2.Encontre um ndiceEncontre um ndice ii tal que ambos:tal que ambos:(a)(a)FinishFinish[[ii]==]==falsefalse
(b)(b)RequestRequestiieeWorkWork
Se talSe tal iino existe, v para o passo 4no existe, v para o passo 4
8/6/2019 SOI Deadlock
46/52
Algoritmo de Deteco
3.3.WorkWork==WorkWork++AllocationAllocationiiFinishFinish[[ii]=]=truetruev para o passo 2v para o passo 2
4.4.SeSe FinishFinish[[ii]==]==falsefalse, para algum, para algum ii,, 11 ee iiee nn,,ento o sistema est num estado deento o sistema est num estado de deadlockdeadlock..Alm disso, seAlm disso, se FinishFinish[[ii]==]==falsefalse, ento, ento PPiiestestemem deadlockdeadlock
Algoritmo requer operaes da ordem de
O(m x n2)para detectar se o sistema est em
estado de deadlocked
8/6/2019 SOI Deadlock
47/52
Exemplo do Algoritmo de Deteco
5 processos5 processosPP00 atatPP44;; 3 tipo de recursos3 tipo de recursosA (7),A (7), BB(2), e(2), e CC(6) instncias(6) instncias SnapshotSnapshotno tempono tempo TT00::
AllocationAllocation RequestRequest AvailableAvailable
A B CA B C A B CA B C A B CA B C
PP00 0 1 00 1 0 000000 000000
PP11 200200 202202
PP22 3 0 33 0 3 000000PP33 2 1 12 1 1 1 001 00
PP44 002002 002002
SeqnciaSeqncia resultar emresultar em
FinishFinish[[ii]= true]= truepara todopara todo ii
8/6/2019 SOI Deadlock
48/52
Exemplo do Algoritmo de Deteco
PP22pede uma instncia adicional do tipopede uma instncia adicional do tipo CC
RequestRequest
AB CAB C
PP00 000000
PP11 20 120 1
PP22
00 100 1
PP33 1 001 00
PP44 002002
8/6/2019 SOI Deadlock
49/52
Exemplo do Algoritmo de Deteco
Estado do sistema?Estado do sistema?
Pode demandar recurso mantido peloPode demandar recurso mantido pelo
processoprocesso PP00, mas recursos insuficientes se, mas recursos insuficientes seajustam a outros processos; pedidos.ajustam a outros processos; pedidos.
DeadlockDeadlockexiste, consistindo dos processosexiste, consistindo dos processos
PP11,, PP22,, PP33, e, e PP44
8/6/2019 SOI Deadlock
50/52
Uso do Algoritmo de Deteco
Quando e quantas vezes, invocar depende de:Quando e quantas vezes, invocar depende de: Quantas vezes provvel que ocorraQuantas vezes provvel que ocorra deadlockdeadlock?? Quantos processos necessitaro ter a suaQuantos processos necessitaro ter a sua
execuo retornada para determinado pontoexecuo retornada para determinado ponto((rolledrolled backback)?)?
um por cada ciclo disjuntoum por cada ciclo disjunto
Se o algoritmo de deteco invocadoSe o algoritmo de deteco invocadoarbitrariamente, pode haver muitos ciclos no grafoarbitrariamente, pode haver muitos ciclos no grafode recursos e ento no seriam capazes de dizerde recursos e ento no seriam capazes de dizerquais dos muitos processos emquais dos muitos processos em deadlockdeadlockcausaramcausaram
oo deadlockdeadlock
8/6/2019 SOI Deadlock
51/52
8/6/2019 SOI Deadlock
52/52
Recuperao de Deadlock:
Preempo de Recursos
Seleo de uma vtimaSeleo de uma vtima minimiza o custominimiza o custo
RollbackRollback returna para algum estado seguro,returna para algum estado seguro,
reinicia processo naquele estadoreinicia processo naquele estado
StarvationStarvation algum processo pode sempre seralgum processo pode sempre ser
escolhido como vtima, incluir nmero deescolhido como vtima, incluir nmero de
rollbacksrollbacks no fator de custono fator de custo