SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
3º Período – Licenciatura em computação
Amanda Ferreira
Laísa Pereira
Naira Gouveia
Tayná Anacleto
É um problema potencial em qualquer sistema operacional;
Ocorre quando integrantes de um grupo de processos são bloqueados
em função da espera por um evento que somente outros processos do
grupo podem causar;
Essa situação faz com que todos os processos esperem para sempre.
Em geral o evento pelo qual os processos estão esperando é a liberação de
algum recurso em uso por outro processo do grupo;
Também é possível que um impasse ocorra quando todos os processos de um
conjunto de processos de comunicação estão esperando por uma mensagem o
canal de comunicação está vazio e não há timeouts pendentes.
RECURSOSImpasse podem ocorrer quando vários processos recebem direitos de
acesso exclusivos a dispositivos, arquivos etc.
Um recurso pode ser um dispositivo de hardware, como exemplo temos a
unidade de fitas, ou um trecho de informações como no caso um registro
travado em uma base de dados.
Recurso é algo que pode ser adquirido, usado e liberado com o passar do
tempo.
Os recursos preemptíveis podem ser retirados do processo proprietário sem nenhum prejuízo, temos
como exemplo a memória.
Considerando um sistema com 256MB de memória disponível para usuário, uma impressora e dois
processos de 256MB que queiram imprimir algo
 O processo A requisita e obtém a impressora e então passa a computar os valores para
impressão
Antes que finalize sua computação sua fatia de tempo de CPU é excedida e ele retirado da
memória
O processo B agora em execução tenta sem sucesso, obter para si a impressora, essa é uma
situação de impasse
 Assim que o processo A executa sua impressão a impressora é liberada .
Esses recursos preemptíveis em geral podem ser resolvidos realocando recursos de um
processo a outro. a sequência de eventos necessários ao uso de um determinado recurso é:
1- Requisitar o recurso
2- Usar o recurso
3-Liberar o recurso
Se um recurso não estiver disponível quando requisitado, o processo solicitado será forçado a
esperar.
Em alguns sistemas operacionais, o processo automaticamente será bloqueado quando uma
requisição de recurso falhar, mas será acordado quando o torna-se disponível;
Já em outros sistemas resultará em um código de erro cabe ao processo solicitante esperar um
pouco e tentar novamente.
Os não preemptíveis são aqueles que não podem ser retirados do atual processo
proprietário sem que a computação apresente falha.
Se um processo começou a gravar um CD-ROM, retirar dele repentinamente
gravador de CD e dar a um outro processo isso resultará em um CD com erros.
Um conjunto de processos estará em situação de impasse se todo processo
pertencente ao conjunto estiver esperando por um evento que somente outro
processo desse mesmo conjunto poderá fazer acontecer.
Cada membro do conjunto de processos em situação de impasse encontra-se a
espera de um recurso que está em situação de impasse.
 Nenhum dos processos pode continuar a execução, liberar qualquer recurso e ser
acordado.
Esse resultado é valido tanto para hardware como para software.
Esse tipo de impasse é denominado impasse de recurso.
Na técnica de detecção e recuperação o sistema deixará que ocorram os
impasses e tentará detectá-los á medida que isso acontecer, agindo, então,
alguma maneira para se recuperar após o fato.
Esse sistema pode ter um scanner, uma unidade CD, um plotter e uma
unidade de fita, mas não mais do um recurso de cada classe.
 Um impasse existe se esse grafo contiver um ou mais ciclos.
Como exemplo, imagine um sistema com sete processos, de
A a G, e com seis recursos, de R a W.
Para saber se esse sistema está em impasse, podemos
construir o seguinte grafo de recursos como mostra a
figura(a):
O grafo monstra que contem um ciclo, como podemos observar na
figura (b).
Podemos observar por meio desse ciclo, que os processos D e,G
estão todos em situação de impasse;
Os processos A ,C e F não estão em impasses, pois o recurso S é
passível de ser alocado a qualquer um deles , permitindo sua
conclusão.
Em um sistema real é necessário um algoritmo formal de detecção de
impasse.
O algoritmo, inspeciona um grafo e termina:
Quando encontra um ciclo
Quando percebe que não existe nenhum ciclo
Ele usa uma estrutura de dados, L, uma lista de nós , assim como a lista
de arcos.
Durante a execução do algoritmo, os arcos serão marcados para indicar
que já foram inspecionados, evitando inspeções repetitivas.
O algoritmo toma cada nó, como a raiz do que se espera ser uma árvore, e fazer uma
busca do tipo depth-first.
Se tornar a passar por um nó já percorrido, ele encontrou um ciclo.
Se já tiver percorrido todos os arcos a partir de um nó qualquer, ele retorna ao nó anterior.
Se retornar ao nó-raiz e não puder ir adiante, o subgrafo alcançável a partir do nó atual
não conterá ciclo algum.
 Se essa propriedade for válida para todos os nós, o sistema não contém impasse.
Depois de localizar um impasse, é necessário recuperar o
sistema dessa situação e coloca-lo novamente em condições de
normais de execução.
Em alguns casos, pode ser possível retornar provisoriamente um recurso de seu
proprietário atual para dá-lo a outro processo.
Essa habilidade é altamente dependente da natureza do recurso.
Alguns tornam essa operação muito difícil ou impossível.
A escolha do processo depende de quais processos tem recursos possíveis de
serem facilmente retomados.
Se o projetista de sistema souber da possibilidade de ocorrência de um
impasse, poderá fazer com que o processo gere um ponto de salvaguardo,
guardando seu estado em um arquivo.
Para fazer a recuperação, um processo é revertido para um instante
anterior ao momento em que adquiriu algum outro recurso, e isso é feito
reiniciando o processamento a partir de seus pontos de salvaguardo.
Todos os trabalhos feitos nesse ponto são perdidos.
 Na verdade, o processo será reiniciado para um momento anterior,
quando ele ainda não possui o recurso.
 Se o processo que sofreu reversão de estado tentar adquirir o recurso
novamente, ele terá de esperar até o recurso estar disponível.
Uma possibilidade é matar um processo presente no ciclo.
Se não for suficiente, essa ação poderá ser repetida até o ciclo ser quebrado.
Um processo não presente no ciclo pode, também, ser escolhido como vítima para
liberar seus recursos.
É melhor matar um processo capaz de ser reexecutado desde seu inicio, a fim de
evitar efeitos colaterais.
Para detecção de impasses quando um processo requisita recursos, ele
os requisita todos de uma só vez
Na maioria dos sistemas os recursos são requisita dos um de cada vez
O sistema decide se liberar um recurso é seguro ou não para fazer uma
alocação.
Os algoritmos principais para evitar impasses são baseados no conceito
de estados seguros
Um estado é considerado seguro quando não estiver em situação de impasse e se
existir alguma ordem de escalonamento onde o processo possa ser executado até
sua conclusão;
Um estado inseguro não é uma situação de impasse;
A diferença de um estado seguro e um inseguro é que, a partir de um estado
seguro, o sistema pode garantir que todos os processos terminarão, ao passo que,
a partir de um estado inseguro, essa garantia não pode ser dada.
Algoritmo do banqueiro é um algoritmo de escalonamento que pode evitar impasses
É uma extensão do algoritmo de detecção de impasses
É modelado da seguinte forma:
O algoritmo verifica se a liberação de uma requisição é capaz de levar a um estado inseguro
Em caso positivo, a requisição será negada
Se a requisição levar a um estado seguro, ela será atendida
Se nunca acontecer de um recurso ser alocado exclusivamente a um único processo, nunca
teremos impasses
A permissão para dois processos imprimirem simultaneamente, por exemplo, em uma mesma
impressora levaria ao caos
A técnica de spooling permite que vários processos gerem suas saídas ao mesmo tempo
O único processo que realmente requisita a impressora física é o daemon de impressão
Como o Daemon nunca requisita qualquer outro recurso, não haverá impasses envolvendo a
impressora
Se pudermos impedir que processos que já mantem a posse de recursos esperem por mais
recursos, seremos capazes de eliminar os impasses.
Um meio de atingir esse objetivo é exigir que todos os processos requisitem todos os seus
recursos antes de inicializarem duas respectivas execução
Uma maneira de interromper a condição de posse e espera é exigir que um processo que
esteja requisitando um recurso primeiro libere temporariamente todos os outros sob sua
posse
Depois disso, ele tenta, de uma só vez, obter os recursos de que precisa.
Armazenar a saída da impressora em um spool de disco elimina impasses
envolvendo esse dispositivo, embora crie outro relacionado a espaço em disco.
Nem todos os recursos podem ser virtualizados
Os registros nos bancos de dados e tabelas internas do sistema operacional
devem estar travados para uso, o que configura uma situação bastante favorável
a ocorrência de impasses
A espera circular pode ser eliminada de varias maneiras:
Um meio simples de elimina-la é ter uma regra que determine que um processo
tenha permissão para possuir somente um recurso de cada vez;
Outra maneira de evitar a condição de espera circular é fornecer uma numeração
global de todos os recursos;
Nessa condição todas as solicitações devem ser feitas em ordem numérica.
Impasses são assuntos que foram incansavelmente investido
A razão para isso é que a detecção de impasses é um pequeno e
interessante problema da teoria dos grafos com a qual qualquer
estudante de graduação com certa inclinação para a matemática pode
lidar durante 3 ou 4 anos
Todos os tipos de algoritmos foram propostos cada um mais exótico e
menos prático do que o outro
Muito desse trabalho já caiu no esquecimento, mas ainda há
publicações sobre diversos aspectos dos impasse
As pesquisas incluem :
 detecção em tempo real de impactos causados pelo uso
incorreto de instruções luck e semáforos
Prevenção de impasses em threads Java
 Tratamento de impasses em redes de computadores
Modelagem de impasses em redes de computadores,
Modelagem de impasses em sistemas de fluxo de dados
Detecção de impasses dinâmicos
Levine comparou definições diferentes (e contraditórias) de
impasse na literatura e sugeriu um esquema classificatório para
eles.
Ele também observou a diferença entre prever e evitar empasses
Impasses em sistemas operacionais

Contenu connexe

Tendances

Ebook Governança de TI na Prática
Ebook Governança de TI na PráticaEbook Governança de TI na Prática
Ebook Governança de TI na PráticaFernando Palma
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a pooSedu
 
TDAH – Transtorno do Déficit da Atenção / Hiperatividade
TDAH – Transtorno do Déficit da Atenção / HiperatividadeTDAH – Transtorno do Déficit da Atenção / Hiperatividade
TDAH – Transtorno do Déficit da Atenção / Hiperatividademendessergio
 
Manejo comportamental de crianças com transtorno do especto do autismo em co...
Manejo comportamental de crianças com transtorno  do especto do autismo em co...Manejo comportamental de crianças com transtorno  do especto do autismo em co...
Manejo comportamental de crianças com transtorno do especto do autismo em co...Rosane Domingues
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Intolerância à lactose
Intolerância à lactoseIntolerância à lactose
Intolerância à lactoseIlca Rocha
 
Modelagem de Dados - Introdução à UML
Modelagem de Dados - Introdução à UMLModelagem de Dados - Introdução à UML
Modelagem de Dados - Introdução à UMLinfo_cimol
 
Modelagem de dados para aplicação de business analytics
Modelagem de dados para aplicação de business analyticsModelagem de dados para aplicação de business analytics
Modelagem de dados para aplicação de business analyticsPatrício dos santos
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisMarcelo Quinta
 
Mini Curso - Design de Interface para Dispositivos Móveis
Mini Curso - Design de Interface para Dispositivos MóveisMini Curso - Design de Interface para Dispositivos Móveis
Mini Curso - Design de Interface para Dispositivos MóveisJane Vita
 

Tendances (20)

Ebook Governança de TI na Prática
Ebook Governança de TI na PráticaEbook Governança de TI na Prática
Ebook Governança de TI na Prática
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Sobrepeso e Obesidade na Infância
Sobrepeso e Obesidade na InfânciaSobrepeso e Obesidade na Infância
Sobrepeso e Obesidade na Infância
 
TDD com Python
TDD com PythonTDD com Python
TDD com Python
 
Obesidade
ObesidadeObesidade
Obesidade
 
Autismo marisa
Autismo  marisaAutismo  marisa
Autismo marisa
 
TDAH – Transtorno do Déficit da Atenção / Hiperatividade
TDAH – Transtorno do Déficit da Atenção / HiperatividadeTDAH – Transtorno do Déficit da Atenção / Hiperatividade
TDAH – Transtorno do Déficit da Atenção / Hiperatividade
 
Manejo comportamental de crianças com transtorno do especto do autismo em co...
Manejo comportamental de crianças com transtorno  do especto do autismo em co...Manejo comportamental de crianças com transtorno  do especto do autismo em co...
Manejo comportamental de crianças com transtorno do especto do autismo em co...
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Curso II - Dislexia
Curso II - DislexiaCurso II - Dislexia
Curso II - Dislexia
 
Intolerância à lactose
Intolerância à lactoseIntolerância à lactose
Intolerância à lactose
 
Modelagem de Dados - Introdução à UML
Modelagem de Dados - Introdução à UMLModelagem de Dados - Introdução à UML
Modelagem de Dados - Introdução à UML
 
Modelagem de dados para aplicação de business analytics
Modelagem de dados para aplicação de business analyticsModelagem de dados para aplicação de business analytics
Modelagem de dados para aplicação de business analytics
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Tecnologia assistiva
Tecnologia assistivaTecnologia assistiva
Tecnologia assistiva
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveis
 
Mini Curso - Design de Interface para Dispositivos Móveis
Mini Curso - Design de Interface para Dispositivos MóveisMini Curso - Design de Interface para Dispositivos Móveis
Mini Curso - Design de Interface para Dispositivos Móveis
 
Arquitetura de Software em Equipes Ágeis
Arquitetura de Software em Equipes ÁgeisArquitetura de Software em Equipes Ágeis
Arquitetura de Software em Equipes Ágeis
 
Slides sobre tecnologia assistiva acessibilidade
Slides sobre tecnologia assistiva acessibilidadeSlides sobre tecnologia assistiva acessibilidade
Slides sobre tecnologia assistiva acessibilidade
 

Similaire à Impasses em sistemas operacionais

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
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2Gustavo Souza
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3Universal.org.mx
 
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
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: DeadlocksAlexandre Duarte
 
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
 
Conceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionaisConceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionaisRonildo Oliveira
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsPedro De Almeida
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrênciaPaulo Fonseca
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre ProcessosRafaelPessoa22
 
Seguranca da Informação -Práticas de segurança
Seguranca da Informação -Práticas de segurançaSeguranca da Informação -Práticas de segurança
Seguranca da Informação -Práticas de segurançaLuiz Arthur
 

Similaire à Impasses em sistemas operacionais (20)

Deadlocks (Resumo)
Deadlocks (Resumo)Deadlocks (Resumo)
Deadlocks (Resumo)
 
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
 
Aula 14 - Deadlocks
Aula 14 - DeadlocksAula 14 - Deadlocks
Aula 14 - Deadlocks
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
Ad d lock
Ad d lockAd d lock
Ad d lock
 
Processos
ProcessosProcessos
Processos
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
Questionário sobre processos
Questionário sobre processosQuestionário sobre processos
Questionário sobre processos
 
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)
 
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
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: Deadlocks
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Parte1f
Parte1fParte1f
Parte1f
 
Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)
 
Conceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionaisConceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionais
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
S.o aula 121314
S.o aula 121314S.o aula 121314
S.o aula 121314
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrência
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre Processos
 
Seguranca da Informação -Práticas de segurança
Seguranca da Informação -Práticas de segurançaSeguranca da Informação -Práticas de segurança
Seguranca da Informação -Práticas de segurança
 

Impasses em sistemas operacionais

  • 1. 3º Período – Licenciatura em computação Amanda Ferreira Laísa Pereira Naira Gouveia Tayná Anacleto
  • 2.
  • 3. É um problema potencial em qualquer sistema operacional; Ocorre quando integrantes de um grupo de processos são bloqueados em função da espera por um evento que somente outros processos do grupo podem causar; Essa situação faz com que todos os processos esperem para sempre.
  • 4. Em geral o evento pelo qual os processos estão esperando é a liberação de algum recurso em uso por outro processo do grupo; Também é possível que um impasse ocorra quando todos os processos de um conjunto de processos de comunicação estão esperando por uma mensagem o canal de comunicação está vazio e não há timeouts pendentes.
  • 5.
  • 6. RECURSOSImpasse podem ocorrer quando vários processos recebem direitos de acesso exclusivos a dispositivos, arquivos etc. Um recurso pode ser um dispositivo de hardware, como exemplo temos a unidade de fitas, ou um trecho de informações como no caso um registro travado em uma base de dados. Recurso é algo que pode ser adquirido, usado e liberado com o passar do tempo.
  • 7. Os recursos preemptíveis podem ser retirados do processo proprietário sem nenhum prejuízo, temos como exemplo a memória. Considerando um sistema com 256MB de memória disponível para usuário, uma impressora e dois processos de 256MB que queiram imprimir algo  O processo A requisita e obtém a impressora e então passa a computar os valores para impressão Antes que finalize sua computação sua fatia de tempo de CPU é excedida e ele retirado da memória O processo B agora em execução tenta sem sucesso, obter para si a impressora, essa é uma situação de impasse  Assim que o processo A executa sua impressão a impressora é liberada .
  • 8. Esses recursos preemptíveis em geral podem ser resolvidos realocando recursos de um processo a outro. a sequência de eventos necessários ao uso de um determinado recurso é: 1- Requisitar o recurso 2- Usar o recurso 3-Liberar o recurso Se um recurso não estiver disponível quando requisitado, o processo solicitado será forçado a esperar. Em alguns sistemas operacionais, o processo automaticamente será bloqueado quando uma requisição de recurso falhar, mas será acordado quando o torna-se disponível; Já em outros sistemas resultará em um código de erro cabe ao processo solicitante esperar um pouco e tentar novamente.
  • 9. Os não preemptíveis são aqueles que não podem ser retirados do atual processo proprietário sem que a computação apresente falha. Se um processo começou a gravar um CD-ROM, retirar dele repentinamente gravador de CD e dar a um outro processo isso resultará em um CD com erros.
  • 10.
  • 11. Um conjunto de processos estará em situação de impasse se todo processo pertencente ao conjunto estiver esperando por um evento que somente outro processo desse mesmo conjunto poderá fazer acontecer. Cada membro do conjunto de processos em situação de impasse encontra-se a espera de um recurso que está em situação de impasse.  Nenhum dos processos pode continuar a execução, liberar qualquer recurso e ser acordado. Esse resultado é valido tanto para hardware como para software. Esse tipo de impasse é denominado impasse de recurso.
  • 12. Na técnica de detecção e recuperação o sistema deixará que ocorram os impasses e tentará detectá-los á medida que isso acontecer, agindo, então, alguma maneira para se recuperar após o fato.
  • 13. Esse sistema pode ter um scanner, uma unidade CD, um plotter e uma unidade de fita, mas não mais do um recurso de cada classe.  Um impasse existe se esse grafo contiver um ou mais ciclos.
  • 14. Como exemplo, imagine um sistema com sete processos, de A a G, e com seis recursos, de R a W. Para saber se esse sistema está em impasse, podemos construir o seguinte grafo de recursos como mostra a figura(a):
  • 15. O grafo monstra que contem um ciclo, como podemos observar na figura (b). Podemos observar por meio desse ciclo, que os processos D e,G estão todos em situação de impasse; Os processos A ,C e F não estão em impasses, pois o recurso S é passível de ser alocado a qualquer um deles , permitindo sua conclusão.
  • 16. Em um sistema real é necessário um algoritmo formal de detecção de impasse. O algoritmo, inspeciona um grafo e termina: Quando encontra um ciclo Quando percebe que não existe nenhum ciclo Ele usa uma estrutura de dados, L, uma lista de nós , assim como a lista de arcos. Durante a execução do algoritmo, os arcos serão marcados para indicar que já foram inspecionados, evitando inspeções repetitivas.
  • 17. O algoritmo toma cada nó, como a raiz do que se espera ser uma árvore, e fazer uma busca do tipo depth-first. Se tornar a passar por um nó já percorrido, ele encontrou um ciclo. Se já tiver percorrido todos os arcos a partir de um nó qualquer, ele retorna ao nó anterior. Se retornar ao nó-raiz e não puder ir adiante, o subgrafo alcançável a partir do nó atual não conterá ciclo algum.  Se essa propriedade for válida para todos os nós, o sistema não contém impasse.
  • 18. Depois de localizar um impasse, é necessário recuperar o sistema dessa situação e coloca-lo novamente em condições de normais de execução.
  • 19. Em alguns casos, pode ser possível retornar provisoriamente um recurso de seu proprietário atual para dá-lo a outro processo. Essa habilidade é altamente dependente da natureza do recurso. Alguns tornam essa operação muito difícil ou impossível. A escolha do processo depende de quais processos tem recursos possíveis de serem facilmente retomados.
  • 20. Se o projetista de sistema souber da possibilidade de ocorrência de um impasse, poderá fazer com que o processo gere um ponto de salvaguardo, guardando seu estado em um arquivo. Para fazer a recuperação, um processo é revertido para um instante anterior ao momento em que adquiriu algum outro recurso, e isso é feito reiniciando o processamento a partir de seus pontos de salvaguardo.
  • 21. Todos os trabalhos feitos nesse ponto são perdidos.  Na verdade, o processo será reiniciado para um momento anterior, quando ele ainda não possui o recurso.  Se o processo que sofreu reversão de estado tentar adquirir o recurso novamente, ele terá de esperar até o recurso estar disponível.
  • 22. Uma possibilidade é matar um processo presente no ciclo. Se não for suficiente, essa ação poderá ser repetida até o ciclo ser quebrado. Um processo não presente no ciclo pode, também, ser escolhido como vítima para liberar seus recursos. É melhor matar um processo capaz de ser reexecutado desde seu inicio, a fim de evitar efeitos colaterais.
  • 23.
  • 24. Para detecção de impasses quando um processo requisita recursos, ele os requisita todos de uma só vez Na maioria dos sistemas os recursos são requisita dos um de cada vez O sistema decide se liberar um recurso é seguro ou não para fazer uma alocação. Os algoritmos principais para evitar impasses são baseados no conceito de estados seguros
  • 25. Um estado é considerado seguro quando não estiver em situação de impasse e se existir alguma ordem de escalonamento onde o processo possa ser executado até sua conclusão; Um estado inseguro não é uma situação de impasse; A diferença de um estado seguro e um inseguro é que, a partir de um estado seguro, o sistema pode garantir que todos os processos terminarão, ao passo que, a partir de um estado inseguro, essa garantia não pode ser dada.
  • 26. Algoritmo do banqueiro é um algoritmo de escalonamento que pode evitar impasses É uma extensão do algoritmo de detecção de impasses É modelado da seguinte forma: O algoritmo verifica se a liberação de uma requisição é capaz de levar a um estado inseguro Em caso positivo, a requisição será negada Se a requisição levar a um estado seguro, ela será atendida
  • 27. Se nunca acontecer de um recurso ser alocado exclusivamente a um único processo, nunca teremos impasses A permissão para dois processos imprimirem simultaneamente, por exemplo, em uma mesma impressora levaria ao caos A técnica de spooling permite que vários processos gerem suas saídas ao mesmo tempo O único processo que realmente requisita a impressora física é o daemon de impressão Como o Daemon nunca requisita qualquer outro recurso, não haverá impasses envolvendo a impressora
  • 28. Se pudermos impedir que processos que já mantem a posse de recursos esperem por mais recursos, seremos capazes de eliminar os impasses. Um meio de atingir esse objetivo é exigir que todos os processos requisitem todos os seus recursos antes de inicializarem duas respectivas execução Uma maneira de interromper a condição de posse e espera é exigir que um processo que esteja requisitando um recurso primeiro libere temporariamente todos os outros sob sua posse Depois disso, ele tenta, de uma só vez, obter os recursos de que precisa.
  • 29. Armazenar a saída da impressora em um spool de disco elimina impasses envolvendo esse dispositivo, embora crie outro relacionado a espaço em disco. Nem todos os recursos podem ser virtualizados Os registros nos bancos de dados e tabelas internas do sistema operacional devem estar travados para uso, o que configura uma situação bastante favorável a ocorrência de impasses
  • 30. A espera circular pode ser eliminada de varias maneiras: Um meio simples de elimina-la é ter uma regra que determine que um processo tenha permissão para possuir somente um recurso de cada vez; Outra maneira de evitar a condição de espera circular é fornecer uma numeração global de todos os recursos; Nessa condição todas as solicitações devem ser feitas em ordem numérica.
  • 31. Impasses são assuntos que foram incansavelmente investido A razão para isso é que a detecção de impasses é um pequeno e interessante problema da teoria dos grafos com a qual qualquer estudante de graduação com certa inclinação para a matemática pode lidar durante 3 ou 4 anos
  • 32. Todos os tipos de algoritmos foram propostos cada um mais exótico e menos prático do que o outro Muito desse trabalho já caiu no esquecimento, mas ainda há publicações sobre diversos aspectos dos impasse
  • 33. As pesquisas incluem :  detecção em tempo real de impactos causados pelo uso incorreto de instruções luck e semáforos Prevenção de impasses em threads Java  Tratamento de impasses em redes de computadores Modelagem de impasses em redes de computadores,
  • 34. Modelagem de impasses em sistemas de fluxo de dados Detecção de impasses dinâmicos Levine comparou definições diferentes (e contraditórias) de impasse na literatura e sugeriu um esquema classificatório para eles. Ele também observou a diferença entre prever e evitar empasses