sistemas operacionais deadlock. os sistemas computacionais estão repletos de recursos que podem...

31
SISTEMAS OPERACIONAIS Deadlock

Upload: internet

Post on 21-Apr-2015

127 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

SISTEMAS OPERACIONAIS

Deadlock

Page 2: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.

Exemplo: CD-ROM, Driver de Fita Dat, etc. Ter dois processos simultaneamente gravando na impressora, por exemplo, resulta em uma confusão.

Todos os SO têm a capacidade de temporariamente conceder acesso exclusivo a certos recursos para um processo.

Page 3: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Para muitos aplicativos, um processo requer acesso exclusivo não a um, mas a vários recursos. Imagine uma gráfica que precisa plotar um banner, cujas informações vêm em um CD.

Um processo A solicita a leitura do CD; um momento mais tarde outro processo B solicita a impressão de uma imagem.

Agora o processo B solicita a plotadora e a bloqueia, esperando por ela. O processo B também solicita o CD e também bloqueia.

Page 4: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Neste ponto os dois processos estão bloqueados e assim permaneceram eternamente. Essa situação é chamada de Deadlock ou impasse.

Page 5: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Os deadlocks podem ocorrer em outras situações além dessas de solicitar dispositivos dedicados de E/S.

Em banco de dados, um programa pode precisar travar vários registros que ele está utilizando para evitar condição de corrida.

Se o processo A trava o registro R1 e o processo B trava o registro R2, e cada processo tenta travar o registro do outro também ocorre um deadlock. Em suma, os deadlocks ocorrem tanto em hardware como em software.

Page 6: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Recursos

Um recurso pode ser um dispositivo de hardware ou um conjunto de informações. Um computador terá muitos recursos diferentes que podem ser adquiridos.

Quando várias cópias de um recurso estiverem disponíveis, qualquer uma delas pode ser utilizada para satisfazer qualquer solicitação ao recurso.

Em suma, um recurso é qualquer coisa que pode ser usada somente por um único processo.

Page 7: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Recursos

Os recursos dividem-se em dois tipos: Recurso Preemptível; Recurso não-Preemptível.

Page 8: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Recurso Preemptível

O primeiro é aquele que pode ser tirado do processo que é proprietário sem nenhum problema.

A memória é um exemplo de um recurso preemptível. No caso da impressora quando B solicitasse o recurso do CD, teoricamente haveria um impasse. No caso do recurso preemptível é possível preemptar a memória de A comutando-a para o disco e comutando B para a memória. Dessa forma B pode usar u CD. Nenhum impasse ocorre.

Page 9: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Recurso não preemptivo

No segundo caso, recurso não-preemptível, é aquele que não pode ser tirado de seu proprietário atual sem causar falha na computação.

Se um processo começou a imprimir, a ação de tirar dele e dá-la a outro processo resultará em problemas na saída. As impressoras não são preemptíveis.

Page 10: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Em geral, deadlocks envolvem recursos não-preemptíveis. A seqüência de eventos requerida para

utilizar um recurso é: Solicitar o recurso; Utilizar o recurso; Liberar o recurso.

Page 11: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Se o recurso requerido não está disponível, duas situações podem ocorrer: Processo que requisitou o recurso fica

bloqueado até que o recurso seja liberado, ou;

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

Page 12: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Princípios Básicos de Impasses Em deadlock pode ser definido

formalmente da seguinte forma: Um conjunto de processos está em situação

de deadlock se todo processo pertencente ao conjunto estiver esperando por um evento que somente um outro processo desse mesmo conjunto poderá fazer acontecer.

Page 13: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Na maioria dos casos, o evento que cada processo está esperando é a liberação de algum recurso atualmente possuído por outro membro do conjunto.

Em outras palavras, cada membro do conjunto de processos em impasse está esperando um recurso que é possuído por um processo em estado de impasse.

Nenhum processo pode executar, nenhum pode liberar recurso e nenhum pode ser acordado.

Page 14: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Quatro Condições para Deadlock Condição de exclusão mútua

Um recurso só pode estar alocado para um processo em um determinado momento;

Condição de posse e espera (hold and wait) Processos que já possuem algum recurso podem

solicitar novos recursos; Condição de 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;

Condição de espera circular Deve ser uma cadeia circular de dois ou mais

processos; Cada um está à espera de recurso retido pelo

membro seguinte dessa cadeia;

Page 15: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Modelagem de Deadlocks Geralmente, deadlocks são

representados por grafos a fim de facilitar sua detecção, prevenção e recuperação – Ocorrência de ciclos pode levar a um deadlock; Os grafos podem ser modelados utilizando grafos dirigidos:

Page 16: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Modelagem de Deadlocks

a) recurso R está alocado ao processo A;

b) processo B está solicitando/esperando pelo recurso S;

c) processos C e D estão em deadlock sobre recursos T e U;

Page 17: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Estratégias para lidar com impasses Ignorar por completo o problema. Detectar e recuperar o problema:

deixar os deadlocks ocorrerem, detectá-los e agir;

Evitar dinamicamente o problema: alocação cuidadosa de recursos;

Prevenir o problema: negação de uma das quatro condições

necessárias para gerar deadlocks;

Page 18: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

O Algoritmo do Avestruz

Esta é a abordagem mais simples: Fingir que não há nenhum problema.

Dentro dessa idéia, o UNIX (e o MINIX) apresentam impasses que nem mesmo são detectados ou por vezes são automaticamente interrompidos.

Esta abordagem é simplesmente ignorar o problema na suposição de que a maioria dos usuários preferiria um impasse ocasional a uma regra que restringisse todos os usuários.

Assim, ignorar o problema é razoável se deadlocks ocorrem muito raramente e o custo da prevenção é alto. Esta é uma ponderação entre conveniência e correção.

Page 19: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Detecção e Recuperação

Quando esta técnica é utilizada, o SO não faz nada senão monitorar as solicitações e as liberações. Exemplo: Processos estão com todos

os recursos alocados; Procedimento: permitir que os

deadlocks ocorram tentar detectar as causas e solucionar a situação;

Page 20: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Detecção e Recuperação

• 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 21: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Prevenção de Deadlock

A terceira estratégia é impor restrições convenientes para os processos de tal modo que os impasses sejam impossíveis. Se for possível que pelo menos uma das condições de deadlocks não ocorra, então os deadlocks não acontecerão.

No caso da Exclusão Mútua, se nenhum recurso for atribuído exclusivamente a um único processo, nunca haverá deadlock.

Page 22: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Prevenção de Deadlock

O princípio é evitar alocar um recurso quando ele não for absolutamente necessário e tentar assegurar que o menor número possível de processos possa de fato requisitar o recurso. Exemplo: O uso de spool permitindo que somente um recurso da impressora seja usado por processo.

Page 23: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Prevenção de Deadlock

Na segunda condição (condição de posse e espera), basta requerer que todos os processos solicitem os seus recursos antes de iniciar a execução. No entanto, um processo nunca tem que esperar por aquilo que precisa.

Um dos problemas é não poder não saber quantos e quais recursos vão precisar no início da execução e também reter recursos que outros processos poderiam estar usando

Page 24: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Prevenção de Deadlock

A terceira condição (nenhuma preempção) seria tomar o recurso a força, contudo é uma solução pouco promissora, de certa forma inviável.

Por último, a espera circular pode ser eliminado de várias maneiras, uma delas é ter uma regra que diz que um processo é intitulado somente para um único recurso em qualquer momento, ou atribuir uma ordem para chamada para aquele recurso.

Page 25: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Impedimento do Impasse

Anteriormente o deadlock não foi evitado pela imposição de regras arbitrárias aos processos, mas pela análise cuidadosa de cada solicitação de recurso para ver se ele poderia ser concedido seguramente.

Page 26: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Impedimento do Impasse

Para evitar dinamicamente o deadlock podem-se adotar algumas soluções: Alocação individual de recursos à medida

que processo necessita; Escalonamento cuidadoso - impõe um alto

custo e conhecimento prévio dos recursos que serão utilizados;

Page 27: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Impedimento do Impasse

Algoritmos: Banqueiro para um único tipo de recurso; Banqueiro para vários tipos de recurso; Definição de estados seguros e inseguros.

Page 28: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Impedimento e Impasse

Neste último, estados seguros não provocam deadlocks e há uma maneira de atender a todas as requisições pendentes finalizando normalmente todos os processos.

Os estados inseguros podem provocar deadlocks, mas não necessariamente provocam.

Page 29: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Impedimento e Impasse

O algoritmo do banqueiro idealizado por Dijkstra (1965), 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, se não o atendimento é adiado para outro momento; Premissas adotadas por um banqueiro para garantir ou não crédito (recursos) para seus clientes (processos). Nem todos os clientes (processos) precisam de toda a linha de credito (recursos) disponível para eles.

Page 30: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Vantagens e desvantagens do algoritmo do banqueiro: 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;

Na teoria o algoritmo é ótimo.

Page 31: SISTEMAS OPERACIONAIS Deadlock.  Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez.  Exemplo: CD-ROM,

Questionário

O que é deadlock, e quais as suas possíveis causas?

O que é recurso e como podemos categorizar?

Quais as 4 condições para o deadlock? Descreva as estratégias para lidar com

impasses