SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
1
Sistemas Distribuídos 231
FaculdadedeInformática-PUCRS
ALGORITMOS DISTRIBUÍDOS
Deadlock
Sistemas Distribuídos 232
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Um deadlock é causado pela situação onde um conjunto de
processos está bloqueado permanentemente, i.e., não conseguem
prosseguir a execução, esperando um evento que somento outro
processo do conjunto pode causar.
Exemplo clássico deExemplo clássico de deadlockdeadlock
è P1: ... R (R1); ... R(R2); ... L(R1,R2)
è P2: ... R (R2); ... R(R1); ... L(R1,R2)
OO deadlockdeadlock ocorre quando os dois processosocorre quando os dois processos
adquirem o primeiro recurso que necessitamadquirem o primeiro recurso que necessitam
2
Sistemas Distribuídos 233
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Situação de deadlock:
alocação de recursos formando ciclo
z Outra Situação de deadlock:
vários processos tentam alocar recursos para realizar suas
tarefas,utilizando (alocando) o total de recursos de uma máquina.
Não podem acabar as tarefas por não ter recursos suficientes, não
liberam recursos por não terem acabado as tarefas.
(serializar a execução dos processos, não permitindo concorrência
de processos que utilizem na soma mais que a quantidade de
recursos disponíveis)
Sistemas Distribuídos 234
FaculdadedeInformática-PUCRS
Representação da relação entre processos eRepresentação da relação entre processos e
recursosrecursos
P1
P2
alocação
alocação
requisição
R2
R1
P1
P2 possui uma unidade de R1
R1
P2
P1
R1
P2
P1 requisita duas unidades de R1
R1
P2P1
P1 adquire duas unidades deR1
Algoritmos Distribuídos (deadlock)
3
Sistemas Distribuídos 235
FaculdadedeInformática-PUCRS
DeadlockDeadlock
P1
P2
alocação
alocação
requisição
R2
R1
Algoritmos Distribuídos (deadlock)
requisição
Sistemas Distribuídos 236
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Condições necessárias para deadlock [coffman, et.al., 1971]
y exclusão mútua: se recurso bloqueado por processo P, então outros
processos tem que esperar processo P para usar o recuros
y segura e espera: processos podem requerer uso de novos recursos sem
liberar recursos em uso:
y não preempção: recurso se torna disponível somente pela liberação do
recurso pelo processo
y espera circular: 2 ou mais processos formam uma cadeia circular na qual
cada processo está a espera de um recurso bloqueado pelo próximo membro
da cadeia
z As quatro condições devem ser válidas ao mesmo tempo
z Se uma delas for quebrada, então deadlock não acontece no
sistema
4
Sistemas Distribuídos 237
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Estratégias de tratamento de deadlock
y evitar
n evita deadlock alocando recursos cuidadosamente
y prevenir
n estaticamente faz com que deadlocks não ocorram
y detectar
n permite que o deadlock ocorra, detecta e tenta recuperar
Sistemas Distribuídos 238
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Métodos para evitar deadlocks
y usam conhecimento sobre quantidades de recursos que processos irão usar,
prevendo estado futuro do sistema que possa ocasionar deadlock
y noção de safe-state: sistema está em um safe-state se não está em deadlock e
existe uma ordem de execução dos processos do sistema que garanta que eles
possam alocar os recursos necessários para prosseguir e terminar
y formação de uma safe-state sequence:
n para qualquer processo Pi em de uma safe sequence, os recursos que Pi pode
ainda requisitar podem ser satisfeitos pelos recursos disponíveis no momento
mais os recursos bloqueados por todos processos antes de Pi na safe sequence
n se Pi não pode executar imediatamente, isto significa que Pi pode esperar que os
processos antes dele na safe-sequence acabem, para então prosseguir
5
Sistemas Distribuídos 239
FaculdadedeInformática-PUCRS
Exemplo - safe-Exemplo - safe-statestate ou não safe-ou não safe-statestate ??
Possui Máximo
P0 3 10
P1 2 4
P2 2 8
Número de unidades do recurso:12, disponível:5
Possui Máximo
P0 5 10
P1 2 4
P2 2 8
Número de unidades do recurso:12, disponível:3
Possui Máximo
P0 5 10
P1 2 4
P2 3 8
Número de unidades do recurso:12, disponível:2
Algoritmos Distribuídos (deadlock)
Sistemas Distribuídos 240
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Métodos para evitar deadlocks
y usados raramente
y assume-se que existe conhecimento prévio sobre o comportamento dos
processos - difícil na prática
y assume-se que número de unidades de um recurso é fixa e conhecida a priori
y restringe muitos pedidos de alocação que não necessariamente levariam a
deadlock
y em sistemas distribuidos, dificuldade para:
n colecionar informação sobre necessidade/oferta de recursos é mais difícil
estes métodos nunca são usados em SOD
6
Sistemas Distribuídos 241
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Métodos para prevenir deadlocks
y projetar o sistema de tal maneira que deadlocks sejam impossíveis
y não necessita teste durante run-time
y condições necessárias e suficientes:
n exclusão mútua
n hold and wait
n não preempção
n espera circular
y técnicas: garantir que ao menos uma das condições não é nunca satisfeita
y métodos: collective requestes, ordered requests, preempção
Sistemas Distribuídos 242
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Métodos para prevenir deadlocks
z collective requests
y evita que condição hold-and-wait possa ser satisfeita
y se um processo tem um recurso ele não pode ter outros
y políticas
n a) fazer request de todos recursos antes de sua execucao;
se todos recursos estão disponíveis, o processo pode executar
senão, nenhum recurso é alocado e o processo espera
n b) processo pode requerer recursos durante execução se ele liberar
outros - tem que liberar todos e alocar recursos necessários até poder
novamente liberar para depois alocar
y b melhor que a pois processo pode não saber quantos recursos são
necessários sem começar a execucao; e processo pode ter fases de
ocupacao de recursos
7
Sistemas Distribuídos 243
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Métodos para prevenir deadlocks
z collective requests
y má utilização de recursos: processo pode ter vários recursos alocados e não
usar alguns por longos períodos
y starvation: se processo precisa de muitos recursos, cada vez que faz pedido
pode encontrar um ou mais já alocados, tem que esperar e voltar a pedir
request
Sistemas Distribuídos 244
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Métodos para prevenir deadlocks
z ordered requests
y evita que espera circular aconteça
y associa número a recurso
y processo só pode alocar recursos em uma determinada ordem
8
Sistemas Distribuídos 245
FaculdadedeInformática-PUCRS
• Métodos para prevenir deadlocks
• ordered requests
r = { r1, r2, r3, ... ,rn} // recursos
função f = r -> N onde N é o conjunto dos números naturais
f(disco) = 1
f(fita) = 2
f(impressora) = 3
Processo que requisita Ri somente pode requisitar Rj se e
somente se f(Rj) > f(Ri) ou somente requisita Rj após liberar
Ri se f(Ri) > f(Rj)
Algoritmos Distribuídos (deadlock)
Sistemas Distribuídos 246
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Métodos para prevenir deadlocks
z preempção
y possibilita preempção de recurso
y recurso preemptável: estado pode ser facilmente salvo para ser restaurado
depois (ex.: cpu e memória)
y se processo precisa de recurso, faz request, se outro processo que detém
recurso está bloqueado a espera de outro recurso, então recurso é
preemptado e passado ao primeiro processo, caso contrário primeiro
processo espera
y durante espera recursos podem ser preemptados deste processo para que
outros progridam
y processo é desbloqueado quando recurso requerido, e qualquer outro recurso
preemptado dele, possam ser bloqueados para o processo
9
Sistemas Distribuídos 247
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Métodos para detecção de deadlocks
y não evita nem previne, deixa que aconteçam e depois detecta para corrigir
y algoritmo examina estado do sistema para determinar se existe deadlock
y se existe - toma ação corretiva
y técnica equivalente a sistema centralizado
y mantém informação sobre alocação de recursos, formando grafo de alocação
de recursos, e procurando ciclos neste grafo (grafo WFG - wait for graph)
Sistemas Distribuídos 248
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Algoritmo centralizado de detecção
y Em cada máquina se mantém um grafo de alocação de recursos pelos
processos
y Um coordenador centralizado mantém um grafo completo do sistema (a união
dos grafos locais)
y Quando o coordenador detecta um ciclo, ele mata um dos processos e acaba
com o deadlock
10
Sistemas Distribuídos 249
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Diferente de sistemas centralizados, onde as máquinas estão
disponíveis automaticamente, em um sistema distribuído estas
informações devem ser enviadas ao coordenador explicitamente
z Como cada máquina possui um grafo local, quando um arco é
incluído ou excluído do grafo local, uma mensagem deve ser
enviada para o coordenador
z Problema: quando uma mensagem demora para chegar, pode
causar um falso deadlock
Sistemas Distribuídos 250
FaculdadedeInformática-PUCRS
Algoritmos Distribuídos (deadlock)
z Algoritmo distribuído de detecção
z Proposto por Chandy-Misra-Haas
z Funciona da seguinte forma:
y iniciado quando um processo tem que esperar um recurso alocado por outro processo
y processo envia msg (probe message) para processo (ou processos) que está(ao)
utilizando recurso
y msg contém 3 informações:
n número do processo que está bloqueado
n número do processo que enviou a msg
n número do processo que está recebendo a msg
y quando a msg chega a um processo, ele verifica se está esperando por recurso
n se sim a msg é atualizada e enviada para o processo que está usando o recurso
y se a msg dá toda a volta e chega ao processo que iniciou a msg, um ciclo existe e o
sistema está em deadlock

Mais conteúdo relacionado

Semelhante a Ad d lock

SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSilvano Oliveira
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaArthur Emanuel
 
Escalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPEscalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPRafael Moreira
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrênciaPaulo Fonseca
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de ProcessosFatec Jales
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsPedro De Almeida
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
Sist operacionais
Sist operacionaisSist operacionais
Sist operacionaiskanatto
 
2ª Conferência Blockchain RTM - Marcelo Yared - Banco Central do Brasil
2ª Conferência Blockchain RTM - Marcelo Yared - Banco Central do Brasil2ª Conferência Blockchain RTM - Marcelo Yared - Banco Central do Brasil
2ª Conferência Blockchain RTM - Marcelo Yared - Banco Central do BrasilRTM
 
Webinar: Porque o RTOS não faz o que eu quero?
Webinar: Porque o RTOS não faz o que eu quero?Webinar: Porque o RTOS não faz o que eu quero?
Webinar: Porque o RTOS não faz o que eu quero?Embarcados
 
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...André Leon S. Gradvohl
 
Conceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionaisConceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionaisRonildo Oliveira
 

Semelhante a Ad d lock (20)

Parte1f
Parte1fParte1f
Parte1f
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Processos
ProcessosProcessos
Processos
 
Questionário sobre processos
Questionário sobre processosQuestionário sobre processos
Questionário sobre processos
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Sd06 (si) exclusão mútua
Sd06 (si)   exclusão mútuaSd06 (si)   exclusão mútua
Sd06 (si) exclusão mútua
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
 
Escalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPEscalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SP
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrência
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de Processos
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Sist operacionais
Sist operacionaisSist operacionais
Sist operacionais
 
2ª Conferência Blockchain RTM - Marcelo Yared - Banco Central do Brasil
2ª Conferência Blockchain RTM - Marcelo Yared - Banco Central do Brasil2ª Conferência Blockchain RTM - Marcelo Yared - Banco Central do Brasil
2ª Conferência Blockchain RTM - Marcelo Yared - Banco Central do Brasil
 
Webinar: Porque o RTOS não faz o que eu quero?
Webinar: Porque o RTOS não faz o que eu quero?Webinar: Porque o RTOS não faz o que eu quero?
Webinar: Porque o RTOS não faz o que eu quero?
 
Criando Aplicações Resilientes
Criando Aplicações ResilientesCriando Aplicações Resilientes
Criando Aplicações Resilientes
 
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
 
Conceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionaisConceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionais
 

Ad d lock

  • 1. 1 Sistemas Distribuídos 231 FaculdadedeInformática-PUCRS ALGORITMOS DISTRIBUÍDOS Deadlock Sistemas Distribuídos 232 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Um deadlock é causado pela situação onde um conjunto de processos está bloqueado permanentemente, i.e., não conseguem prosseguir a execução, esperando um evento que somento outro processo do conjunto pode causar. Exemplo clássico deExemplo clássico de deadlockdeadlock è P1: ... R (R1); ... R(R2); ... L(R1,R2) è P2: ... R (R2); ... R(R1); ... L(R1,R2) OO deadlockdeadlock ocorre quando os dois processosocorre quando os dois processos adquirem o primeiro recurso que necessitamadquirem o primeiro recurso que necessitam
  • 2. 2 Sistemas Distribuídos 233 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Situação de deadlock: alocação de recursos formando ciclo z Outra Situação de deadlock: vários processos tentam alocar recursos para realizar suas tarefas,utilizando (alocando) o total de recursos de uma máquina. Não podem acabar as tarefas por não ter recursos suficientes, não liberam recursos por não terem acabado as tarefas. (serializar a execução dos processos, não permitindo concorrência de processos que utilizem na soma mais que a quantidade de recursos disponíveis) Sistemas Distribuídos 234 FaculdadedeInformática-PUCRS Representação da relação entre processos eRepresentação da relação entre processos e recursosrecursos P1 P2 alocação alocação requisição R2 R1 P1 P2 possui uma unidade de R1 R1 P2 P1 R1 P2 P1 requisita duas unidades de R1 R1 P2P1 P1 adquire duas unidades deR1 Algoritmos Distribuídos (deadlock)
  • 3. 3 Sistemas Distribuídos 235 FaculdadedeInformática-PUCRS DeadlockDeadlock P1 P2 alocação alocação requisição R2 R1 Algoritmos Distribuídos (deadlock) requisição Sistemas Distribuídos 236 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Condições necessárias para deadlock [coffman, et.al., 1971] y exclusão mútua: se recurso bloqueado por processo P, então outros processos tem que esperar processo P para usar o recuros y segura e espera: processos podem requerer uso de novos recursos sem liberar recursos em uso: y não preempção: recurso se torna disponível somente pela liberação do recurso pelo processo y espera circular: 2 ou mais processos formam uma cadeia circular na qual cada processo está a espera de um recurso bloqueado pelo próximo membro da cadeia z As quatro condições devem ser válidas ao mesmo tempo z Se uma delas for quebrada, então deadlock não acontece no sistema
  • 4. 4 Sistemas Distribuídos 237 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Estratégias de tratamento de deadlock y evitar n evita deadlock alocando recursos cuidadosamente y prevenir n estaticamente faz com que deadlocks não ocorram y detectar n permite que o deadlock ocorra, detecta e tenta recuperar Sistemas Distribuídos 238 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Métodos para evitar deadlocks y usam conhecimento sobre quantidades de recursos que processos irão usar, prevendo estado futuro do sistema que possa ocasionar deadlock y noção de safe-state: sistema está em um safe-state se não está em deadlock e existe uma ordem de execução dos processos do sistema que garanta que eles possam alocar os recursos necessários para prosseguir e terminar y formação de uma safe-state sequence: n para qualquer processo Pi em de uma safe sequence, os recursos que Pi pode ainda requisitar podem ser satisfeitos pelos recursos disponíveis no momento mais os recursos bloqueados por todos processos antes de Pi na safe sequence n se Pi não pode executar imediatamente, isto significa que Pi pode esperar que os processos antes dele na safe-sequence acabem, para então prosseguir
  • 5. 5 Sistemas Distribuídos 239 FaculdadedeInformática-PUCRS Exemplo - safe-Exemplo - safe-statestate ou não safe-ou não safe-statestate ?? Possui Máximo P0 3 10 P1 2 4 P2 2 8 Número de unidades do recurso:12, disponível:5 Possui Máximo P0 5 10 P1 2 4 P2 2 8 Número de unidades do recurso:12, disponível:3 Possui Máximo P0 5 10 P1 2 4 P2 3 8 Número de unidades do recurso:12, disponível:2 Algoritmos Distribuídos (deadlock) Sistemas Distribuídos 240 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Métodos para evitar deadlocks y usados raramente y assume-se que existe conhecimento prévio sobre o comportamento dos processos - difícil na prática y assume-se que número de unidades de um recurso é fixa e conhecida a priori y restringe muitos pedidos de alocação que não necessariamente levariam a deadlock y em sistemas distribuidos, dificuldade para: n colecionar informação sobre necessidade/oferta de recursos é mais difícil estes métodos nunca são usados em SOD
  • 6. 6 Sistemas Distribuídos 241 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Métodos para prevenir deadlocks y projetar o sistema de tal maneira que deadlocks sejam impossíveis y não necessita teste durante run-time y condições necessárias e suficientes: n exclusão mútua n hold and wait n não preempção n espera circular y técnicas: garantir que ao menos uma das condições não é nunca satisfeita y métodos: collective requestes, ordered requests, preempção Sistemas Distribuídos 242 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Métodos para prevenir deadlocks z collective requests y evita que condição hold-and-wait possa ser satisfeita y se um processo tem um recurso ele não pode ter outros y políticas n a) fazer request de todos recursos antes de sua execucao; se todos recursos estão disponíveis, o processo pode executar senão, nenhum recurso é alocado e o processo espera n b) processo pode requerer recursos durante execução se ele liberar outros - tem que liberar todos e alocar recursos necessários até poder novamente liberar para depois alocar y b melhor que a pois processo pode não saber quantos recursos são necessários sem começar a execucao; e processo pode ter fases de ocupacao de recursos
  • 7. 7 Sistemas Distribuídos 243 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Métodos para prevenir deadlocks z collective requests y má utilização de recursos: processo pode ter vários recursos alocados e não usar alguns por longos períodos y starvation: se processo precisa de muitos recursos, cada vez que faz pedido pode encontrar um ou mais já alocados, tem que esperar e voltar a pedir request Sistemas Distribuídos 244 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Métodos para prevenir deadlocks z ordered requests y evita que espera circular aconteça y associa número a recurso y processo só pode alocar recursos em uma determinada ordem
  • 8. 8 Sistemas Distribuídos 245 FaculdadedeInformática-PUCRS • Métodos para prevenir deadlocks • ordered requests r = { r1, r2, r3, ... ,rn} // recursos função f = r -> N onde N é o conjunto dos números naturais f(disco) = 1 f(fita) = 2 f(impressora) = 3 Processo que requisita Ri somente pode requisitar Rj se e somente se f(Rj) > f(Ri) ou somente requisita Rj após liberar Ri se f(Ri) > f(Rj) Algoritmos Distribuídos (deadlock) Sistemas Distribuídos 246 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Métodos para prevenir deadlocks z preempção y possibilita preempção de recurso y recurso preemptável: estado pode ser facilmente salvo para ser restaurado depois (ex.: cpu e memória) y se processo precisa de recurso, faz request, se outro processo que detém recurso está bloqueado a espera de outro recurso, então recurso é preemptado e passado ao primeiro processo, caso contrário primeiro processo espera y durante espera recursos podem ser preemptados deste processo para que outros progridam y processo é desbloqueado quando recurso requerido, e qualquer outro recurso preemptado dele, possam ser bloqueados para o processo
  • 9. 9 Sistemas Distribuídos 247 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Métodos para detecção de deadlocks y não evita nem previne, deixa que aconteçam e depois detecta para corrigir y algoritmo examina estado do sistema para determinar se existe deadlock y se existe - toma ação corretiva y técnica equivalente a sistema centralizado y mantém informação sobre alocação de recursos, formando grafo de alocação de recursos, e procurando ciclos neste grafo (grafo WFG - wait for graph) Sistemas Distribuídos 248 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Algoritmo centralizado de detecção y Em cada máquina se mantém um grafo de alocação de recursos pelos processos y Um coordenador centralizado mantém um grafo completo do sistema (a união dos grafos locais) y Quando o coordenador detecta um ciclo, ele mata um dos processos e acaba com o deadlock
  • 10. 10 Sistemas Distribuídos 249 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Diferente de sistemas centralizados, onde as máquinas estão disponíveis automaticamente, em um sistema distribuído estas informações devem ser enviadas ao coordenador explicitamente z Como cada máquina possui um grafo local, quando um arco é incluído ou excluído do grafo local, uma mensagem deve ser enviada para o coordenador z Problema: quando uma mensagem demora para chegar, pode causar um falso deadlock Sistemas Distribuídos 250 FaculdadedeInformática-PUCRS Algoritmos Distribuídos (deadlock) z Algoritmo distribuído de detecção z Proposto por Chandy-Misra-Haas z Funciona da seguinte forma: y iniciado quando um processo tem que esperar um recurso alocado por outro processo y processo envia msg (probe message) para processo (ou processos) que está(ao) utilizando recurso y msg contém 3 informações: n número do processo que está bloqueado n número do processo que enviou a msg n número do processo que está recebendo a msg y quando a msg chega a um processo, ele verifica se está esperando por recurso n se sim a msg é atualizada e enviada para o processo que está usando o recurso y se a msg dá toda a volta e chega ao processo que iniciou a msg, um ciclo existe e o sistema está em deadlock