You are on page 1of 4

Turma /Curso: 7 A - Sistemas de Informao

Algoritmo do Banqueiro
Introduo Algoritmo do Banqueiro - Criado por Dijkstra em 1965, um algoritmo de alocao de recursos e que pode evitar a ocorrncia de Deadlock.(situao em que um processo aguarda por um recurso que nunca estar disponvel ou um evento que no ocorrer). Seu nome foi originado a partir de seu funcionamento, o qual pode ser comparado ao comportamento de um banqueiro fornecendo crditos a um determinado nmero de clientes. Algoritmo do Banqueiro (implementada com a presena das quatro condies) tambm possui vrias limitaes. A maior delas a necessidade de um nmero fixo de processos ativos e de recursos disponveis no sistema. Essa limitao impede que a soluo seja implementada na prtica, pois muito difcil prever o nmero de usurios no sistema e o nmero de recursos disponveis, para que ocorra a situao de Deadlock. Condies para ocorrncia

Espera circular: um processo pode ter de esperar por um recurso alocado a outro processo e vice-versa. Espera por recurso: um processo, alm dos recursos j alocados, pode estar esperando por outros recursos. Excluso mtua: cada recurso s pode estar alocado a um nico processo em um determinado instante. No-preempo: um recurso no pode ser liberado de um processo s porque outros processos desejam o mesmorecurso.

Para prevenir a ocorrncia de Deadlocks, preciso garantir que uma das quatro condies apresentadas, necessrias para sua existncia, nunca acontea. A preveno de Deadlocksevitando-se a ocorrncia de qualquer uma das quatro condies bastante limitada e, por isso, na prtica no utilizada. A maior delas a necessidade de um nmero fixo de processos ativos e de recursos disponveis no sistema. Todas estas condies devem estar presentes para que ocorra um Deadlock. Se alguma delas falhar ento no ocorrera um Deadlock. Modelagem Em geral quatro estratgias so utilizadas para tratar Deadlocks:

Ignorar completamente o problema. Se o ignorarmos talvez ele nos ignore. Deteco e recuperao. Deixar os Deadlocks ocorrerem, detect-los e agir.

Anulao dinmica por meio de uma alocao cuidadosa e recursos. Preveno, negando estruturalmente necessrias para gerar um Deadlock. uma das quatro condies

Deteco e Recuperao de Deadlocks O sistema no tenta prevenir a ocorrncia de Deadlocks. Em vez disso, ele deixara que ocorram e tenta detecta-los medida que isso acontecer; arranjar depois alguma maneira de se recuperar aps o Deadlock. Temos tambm a deteco de Deadlocks com um recurso de cada tipo, sendo que teremos apenas um recurso de cada tipo (apenas uma impressora, apenas um CD-ROM, etc.). Existe um algoritmo para detectar se existem ciclos no grafo dos processos e recursos. Funciona tipo o DFS para a deteco de ciclos. Se existir um ciclo, ento estamos na presena de um Deadlock. Recuperao de Deadlocks Uma vez que o algoritmo de deteco de Deadlocks bem sucedido, o que se far a seguir recuperar o sistema operativo da situao de Deadlock, e coloc-lo novamente em situao de funcionamento normal.

Recuperao por meio de preempo: Retirar o recurso a um processo e d-lo a outro sem que o processo proprietrio do recurso se aperceba. Recuperao por meio de reverso de estado: O sistema operativo, ao longo da execuo dos processos vai guardando imagens dos estados do processo, para que fique como que com checkpoints do processo. No guarda apenas os estados dos processos, como guarda tambm os recursos associados ao processo no momento em que criado o checkpoint. O sistema no sobrepe um checkpoint novo a um j guardado anteriormente. Ele cria sempre uma imagem nova. Depois que o algoritmo de deteco de Deadlocks detecta um Deadlock os processos includos no Deadlock voltam a estados anteriores. Recuperao por meio de eliminao de processos: A maneira mais grosseira, mas tambm a mais simples matar um ou mais processos envolvidos no Deadlock. Com um pouco de sorte os outros processos podero ser capazes de prosseguir. Um processo de fora do ciclo onde detectado o Deadlock tambm pode ser uma vtima a matar. Sempre que possvel, o processo a matar deve ser um que possa ser executado desde o incio sem causar danos colaterais.

O Algoritmo do Barqueiro um algoritmo que pode evitar Deadlocks Um banqueiro de uma pequena cidade pode negociar com um grupo de clientes com os quais ele abre linhas de crdito. O que o algoritmo faz

verificar se libertao de uma requisio pode levar a um estado inseguro.Em caso positivo, a requisio negada. Se a libertao de uma requisio levar a um estado seguro, ento ela atendida. Imagine que cada cliente possui seu prprio negcio, e cada um deles eventualmente faz requisies de emprstimos ao banco para continuar operando seus negcios. O banqueiro possui uma quantidade limitada de unidades de crdito e precisa saber distribuir as unidades da melhor forma possvel para todos os seus clientes. As unidades de crditos fazem o papel dos recursos do sistema, os clientes so os processos (os quais necessitam de recursos para continuar seu processamento) e o banqueiro o sistema operacional. Para fazer a distribuio da melhor forma possvel, o banqueiro (sistema operacional) precisa saber o nmero de clientes, quantos recursos cada um deles possui e precisa, e quantas unidades de credito ainda esto disponveis. Os clientes possuem um limite mximo de crditos, quando esse limite atingido significa que todas as suas necessidades foram atendidas e agora os crditos podem ser devolvidos ao banqueiro. A partir dessas informaes o banqueiro faz um clculo de quando uma situao segura e quando uma situao insegura. Uma situao dita segura quando o nmero de unidades de crditos disponveis o suficiente para atender s necessidades de um cliente e de clientes futuros, ou atingir o seu limite mximo, fazendo com que os crditos alocados sejam devolvidos ao banqueiro. Uma situao dita insegura quando as unidades disponveis no sero capazes de satisfazer as necessidades do cliente e nem de atingir o limite mximo, caracterizando assim uma situao de Deadlock. A partir de uma requisio de crdito, se o banqueiro determinar a situao como segura o emprstimo fornecido, caso contrrio o cliente deve esperar e seu emprstimo ser realizado em um outro momento. O algoritmo do banqueiro tambm pode ser usado em situaes em que um processo necessita de diversos tipos de recursos, como por exemplo unidades de fita, plotters, impressoras, etc. Concluso Um problema potencial em qualquer sistema operacional, um estado de Deadlock ocorre quando dois ou mais processos esto esperando, indefinidamente por um evento que s pode ocorrer por um dos processos em espera. Existem alguns mtodos para tratar Deadlocks: deteco e recuperao e preveno de Deadlock.Uma das estratgias mais simples de tratar Deadlock, seria ignor-lo, porm, necessrio uma anlise cautelosa, para o implemento ou no das estratgias de tratamento do Deadlock, assim como, avaliar o custo/benefcio que essas implantaes podem gerar. Dito isso podemos realmente concordar que o algoritmo depende de vrias informaes que nem sempre est disponvel, o que impede seu uso na prtica. Embora o algoritmo do banqueiro no esteja totalmente adaptado para esse ambiente, nada impede que modificaes sejam feitas para torna-lo pronto e disponvel para uso. Vale salientar que Tanembaum, afirma que o algoritmo na prtica intil, pois os processos quase nunca sabem exatamente

quantos recursos vo precisar e tambm a quantidade de processos varia isso sem contar tambm com a possibilidade de um recurso desaparecer, devido a algum defeito fsico.

You might also like