Impasses S.O

286 visualizações

Publicada em

Como funciona um impasse dentro do S.O.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
286
No SlideShare
0
A partir de incorporações
0
Número de incorporações
10
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Impasses S.O

  1. 1. 3º Período – Licenciatura em computação Amanda Ferreira Laísa Pereira Naira Gouveia Tayná Anacleto
  2. 2. É 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.
  3. 3. 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.
  4. 4. 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.
  5. 5. 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 .
  6. 6. 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.
  7. 7. 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.
  8. 8. 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.
  9. 9. 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.
  10. 10. 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.
  11. 11. 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):
  12. 12. 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.
  13. 13. 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.
  14. 14. 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.
  15. 15. 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.
  16. 16. 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.
  17. 17. 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.
  18. 18. 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.
  19. 19. 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.
  20. 20. 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
  21. 21. 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.
  22. 22. 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
  23. 23. 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
  24. 24. 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.
  25. 25. 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
  26. 26. 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.
  27. 27. 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
  28. 28. 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
  29. 29. 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,
  30. 30. 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

×