Você está na página 1de 9

INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

SISTEMAS OPERATIVOS

DEADLOCK. ESTADOS SEGUROS E INSEGUROS

1. Deadlock. Caracterização
2. Modelo do sistema
3. Grafos de alocação de recursos
4. Como tratar um deadlock?
5. Estados seguros e inseguros
6. Aplicação do algoritmo do banqueiro

1. DEADLOCK

Conjunto de processos bloqueados em que cada um detém um certo número de recursos e fica a espera
de um recurso que outro processo no conjunto pode disponibilizar.

Exemplo 1.

Tomando o seguinte exemplo, um processo P1 detém o recurso R1 está á espera do recurso R2 que já foi
alocado ao processo P2.

Exemplo 2

Se ocorrer deadlock, pode ser resolvido se um dos carros der uma marcha atrás (fazer preempção ou
fazer o rollback). Isso pode levar a situação de starvation.

Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos


INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

Caracterização do deadlock
Deadlock ocorre quando são cumpridas acumulativamente as seguintes 4 condições:

• Exclusão mútua
• Posse e espera
• Não-preempção
• Espera circular

2. MODELO DO SISTEMA

• Tipo de recursos R1, R2, R3...Rn (pode ser disco duro, impressora , leitor de CD, etc)
o Ciclos de cpu, espaço de memória, dispositivos de E/S
• Cada tipo de recursos Ri tem Wi instâncias
• Cada processo utiliza o recurso da seguinte forma:
o Requisição;
o Utilização; e
o Libertação do recurso.
• Os recursos podem ser Preemptíveis (sem prejuízo quendo for retirado ao processo) e Não-
preemptível (Compromete o sistema no caso de ser retirado enquanto estiver em uso)

Recursos Preemptíveis: CPU; RAM, etc


Recursos Não-preemptíveis: Leitor de CD; Disco duro, etc.

3. GRAFOS DE ALOCAÇÃO DE RECURSOS


Simbologia

Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos


INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

ALOCAÇÃO DE RECURSOS COM DEADLOCK ALOCAÇÃO DE RECURSOS SEM DEADLOCK

NOTAS:

[1] Se o grafo não apresenta um laço ou ciclo, não há deadlock


[2] Se o grafo tem um ciclo: teremos deadlock se tivermos uma instância de cada tipo de recursos; se
tivermos várias instâncias de vários tipos de recursos, há possibilidade de deadlock

4. COMO TRATAR UM DEADLOCK?

• Assegurar que o sistema nunca entre em deadlock, através da alocação cuidadosa de recursos.

o Alocação individual de recursos;


o Escalonamento cuidadoso;
o Trabalhar com Estados Seguros e Inseguros;
o Evitar o deadlock recorrendo aos algoritmos do Banqueiro.

• Detectar e recuperar o problema

o Recuperação por meio de preempção;


o Recuperação por meio de rollback (de volta ao passado);
o Recuperação por meio de eliminação de processos.

• Ignorar o problema, fingindo que o deadlock nunca tem lugar no sistema

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

o "Matemáticos consideram inaceitável e devem ser evitados / Engenheiros não aceitam


perder desempenho para eliminar deadlock".

Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos


INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

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

• Não satisfação de uma das condições de deadlock (Prevenção de deadlock)

o Exclusão mútua: pode-se dispensar este princípio para recursos compartilháveis, mas não
aplicável para determinado tipo de recursos.

o Posse e espera: deve-se assegurar que quando um dos processos estiver a requisitar
recursos, deve estar numa condição de não ter nenhum recurso. Isto é, o processo não
deve monopolizar recursos enquanto espera por outro. Porque não esperar até que todos
os recursos que precisa estejam livres?

o Não - preempção: se um processo está á espera de um recurso que não pode ser
imediatamente disponibilizado, todos os recursos deve ser libertos, e estes recursos
devem ser alocados aos processos requisitantes. O processo que lhe foi retirado os
recursos, só pode voltar se tiver recuperado os recursos anteriores e os novos.

• Espera circular: ordenar as requisições numericamente, e realizar as solicitações em


ordem numérica; Permitir que um recurso utilize um recurso de cada vez se quiser um
segundo, deve libertar o primeiro)

5. ESTADOS SEGUROS E INSEGUROS

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.

Estados inseguros: podem provocar deadlocks, mas não necessariamente provocam.

[1] Se o sistema está num estado seguro, não há deadlock.


[2] Se o sistema está num estado inseguro, há possibilidade de ocorrência de deadlock.

Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos


INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

6. ALGORITMO DO BANQUEIRO

• Quando um processo requisita um recurso deve esperar por este recurso.


• Quando um processo detém todos os recursos, deve devolver dentro de um tempo finito.
o O Banqueiro pode ser implementado com um tipo de recurso com várias instâncias ou
vários recursos com várias instâncias.
• 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.

Banqueiro com um único recurso

Estado seguro

Todos os processos foram atendidos

Estado inseguro

Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos


INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

Não há garantia de que todos vão terminar. Neste caso foi inicialmente alocada uma instância ao processo
A.

Banqueiro com vários tipos de recursos

Exercício 1. Considere este estado seguro, atendendo inicialmente o processo P3? E se a alocação
priorizasse o processo P2?
• Matriz E: Existência;
• Matriz D: Disponibilidade;
• Matriz A: Alocação actual
• Matriz E: Requisições

R1 R2 R3 R4
E= 4 2 3 1

D= 2 1 0 0

0 0 1 0 P1
A= 2 0 0 1 P2
0 1 2 0 P3

2 0 0 1 P1
R= 1 0 1 0 P2
2 1 0 0 P3

Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos


INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

EXERCÍCIOS DE APLICAÇÃO

1. Quando existem várias cópias de vários recursos em um sistema computacional, é necessária a adoção
de uma abordagem que utiliza vetores e matrizes para a detecção de deadlocks. Considerando E o vetor
de recursos existentes, D o vetor de recursos disponíveis, A a matriz de alocação corrente dos processos
e R a matriz de requisições, responda:

a) Se existir cinco processos sendo executados, quantas linhas terão as matrizes C e R?

b) Em que situação o vetor E é igual ao vetor D?

c) O que estará acontecendo se a primeira linha da matriz A e a primeira linha da matriz R


estiverem zeradas?

d) Respondendo em função dos valores das matrizes e dos vetores, em que situação o sistema
detectaria um deadlock?

2. Qual deverá ser a ordem de execução dos seguintes processos para que o estado se torne seguro?
a)
R1 R2 R3
E= 7 2 6

D=

0 1 0 P1
A= 2 0 0 P2
3 0 3 P3
2 1 1 P4
0 0 2 P5

0 1 0 P1
A= 2 0 0 P2
3 0 3 P3
2 1 1 P4
0 0 2 P5

Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos


INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

b)

R1 R2 R3
E = 10 5 7

7 5 3 P1
Máx= 3 2 2 P2
9 0 2 P3
2 2 2 P4
4 3 3 P5

0 1 0 P1
A= 2 0 0 P2
3 0 2 P3
2 1 1 P4
0 0 2 P5

7 4 3 P1
1 2 2 P2
R= 6 0 0 P3
0 1 0 P4
4 3 1 P5

Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos


INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

c)

R1 R2 R3 R4
E= 5 3 4 2

D=

0 0 1 0 P1
A= 2 0 0 1 P2
0 1 2 0 P3

2 0 0 1 P1
R= 1 0 1 0 P2
2 1 0 0 P3

3. Um sistema apresenta 4 processos e 5 recursos. A alocação actual dos recursos é conforme as matrizes que se
seguem:

R1 R2 R3 R4 R5
E=

D= 0 0 X 1 1

1 1 2 1 3
Máx= 2 2 2 0 0
2 1 3 1 0
2 1 2 1 1

1 0 2 1 1
A= 2 0 1 1 0
1 1 0 1 0
1 1 1 1 0

Qual deverá ser o valor de X para que o sistema se torne seguro?

Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos

Você também pode gostar