Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Algoritmos Distribuídos para Prevenir e Detectar Deadlock em Sistemas, Notas de estudo de Informática

Este documento, originado de slides de aula da faculdade de informática da pucrs, aborda os algoritmos distribuídos para prevenir e detectar deadlock em sistemas. O deadlock é uma situação que ocorre em sistemas computacionais quando dois ou mais processos ficam à espera indefinidamente de recursos mantidos por outros processos. O documento aborda as condições que levam ao deadlock, como exclusão mútua, hold and wait, não preempção e espera circular, e métodos para evitar, prevenir e detectar deadlocks. Além disso, são apresentados exemplos e técnicas específicas para cada método.

Tipologia: Notas de estudo

2012

Compartilhado em 18/09/2012

donaldo-junior-6
donaldo-junior-6 🇧🇷

1 documento

1 / 10

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Sistemas Distribuídos 231
Faculdade de Informática - PUCRS
ALGORITMOS DISTRIBUÍDOS
Deadlock
Sistemas Distribuídos 232
Faculdade de Informática - PUCRS
Algoritmos Distribuídos (deadlock)
zUm 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 de
Exemplo clássico de deadlock
deadlock
è P1: ... R (R1); ... R(R2); ... L(R1,R2)
è P2: ... R (R2); ... R(R1); ... L(R1,R2)
O
O deadlock
deadlock ocorre quando os dois processos
ocorre quando os dois processos
adquirem o primeiro recurso que necessitam
adquirem o primeiro recurso que necessitam
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe Algoritmos Distribuídos para Prevenir e Detectar Deadlock em Sistemas e outras Notas de estudo em PDF para Informática, somente na Docsity!

Sistemas Distribuídos 231

Faculdade de Informática - PUCRS

ALGORITMOS DISTRIBUÍDOS

Deadlock

Sistemas Distribuídos 232

Faculdade de Informá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)

O deadlock Odeadlock ocorre quando os dois processosocorre quando os dois processos

adquirem o primeiro recurso que necessitamadquirem o primeiro recurso que necessitam

Sistemas Distribuídos 233

Faculdade de Informática - PUCRS

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

Faculdade de Informática - PUCRS

Representação da relação entre processos e Representação da relação entre processos e

recursosrecursos

P

P

alocação

alocação

requisição

R R

P

P2 possui uma unidade de R

R P

P

R P P1 requisita duas unidades de R R P1 P P1 adquire duas unidades deR

Algoritmos Distribuídos (deadlock)

Sistemas Distribuídos 237

Faculdade de Informática - PUCRS

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

Faculdade de Informá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

Sistemas Distribuídos 239

Faculdade de Informática - PUCRS

Exemplo - safe-state Exemplo - safe-state 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: Possui Máximo P0 5 10 P1 2 4 P2 2 8 Número de unidades do recurso:12, disponível: Possui Máximo P0 5 10 P1 2 4 P2 3 8 Número de unidades do recurso:12, disponível:

Sistemas Distribuídos 240

Faculdade de Informá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

Sistemas Distribuídos 243

Faculdade de Informática - PUCRS

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

Faculdade de Informá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

Sistemas Distribuídos 245

Faculdade de Informá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)

Sistemas Distribuídos 246

Faculdade de Informá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

Sistemas Distribuídos 249

Faculdade de Informática - PUCRS

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

Faculdade de Informá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