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. RECURSOSImpasse 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