2
ALGORITMO DO BANQUEIRO Sistemas Operacionais I – Júlio Peixoto da Silva Júnior - 371978 Criado por Dijkstra em 1965 é um algoritmo de alocação de recursos que pode evitar a ocorrência de deadlock, pode ser visto como uma extensão do algoritmo de detecção de impasses. Ele é modelado da seguinte maneira: um banqueiro de uma pequena cidade pode negociar com um grupo de clientes para os quais liberas as linhas de crédito. O que o algoritmo faz é verificar se a liberação de uma requisição é capaz de levar a um estado inseguro. Em caso positivo, a requisição é negada. Se a libertação de uma requisição levar a um estado seguro, então ela é atendida. Como hipótese imagine que cada cliente possui seu negócio, e cada um deles faz frequentemente requisições de empréstimos ao banco para continuar operando seus negócios. O banqueiro possui uma quantidade limitada de unidades de crédito e precisa saber distribuir as unidades da melhor forma possível para todos os seus clientes. Portanto podemos associar que as unidades de créditos fazem o papel dos recursos do sistema, os clientes são os processos que necessitam de recursos para continuar seu processamento e o banqueiro é o sistema operacional. Para fazer a distribuição da melhor forma possível, o banqueiro (sistema operacional) precisa saber o número de clientes, quantos recursos cada um deles possui e precisa, e quantas unidades de credito ainda estão disponíveis. Os clientes possuem um limite máximo de créditos, quando esse limite é atingido significa que todas as suas necessidades foram atendidas e agora os créditos podem ser devolvidos ao banqueiro. A partir dessas informações o banqueiro faz um cálculo de quando uma situação é segura e quando uma situação é insegura. Uma situação é dita segura quando o número de unidades de créditos disponíveis é o suficiente para atender às necessidades de um cliente e de clientes futuros, ou atingir o seu limite máximo, fazendo com que os créditos alocados sejam devolvidos ao banqueiro. Uma situação é dita insegura quando as unidades disponíveis não serão capazes de satisfazer as necessidades do cliente e nem de atingir o limite máximo, caracterizando assim uma situação de deadlock. O algoritmo do banqueiro considera que cada solicitação de empréstimo deve ser analisada se sua concessão levará a um estado seguro, se sim a requisição será atendida, se não ela será adiada. O algoritmo pode ser utilizado para inúmeros recursos, podemos dividir as operações em duas matrizes, uma mostra quanto de cada recurso atualmente está alocado para cada tipo de processo e a outra apresentado quantos recursos cada processo ainda precisa para completar sua execução . O vetor de recursos disponível é a diferença entre aquilo que o sistema tem e aquilo que atualmente está em uso pelos processos. O que o algoritmo faz é: 1. procurar uma linha na matriz de recursos que cada processo ainda necessita, cuja necessidades de recursos sejam todas inferiores ou iguais aos recursos disponíveis, caso nenhuma linha com essas características o sistema entrara em situação de impasse; 2. considere que o processo da linha escolhida requisite todos os recursos de que necessita e termina. O algoritmo marcará esse processo como terminado e adiciona ao vetor de recursos disponíveis.

Banqueiro

Embed Size (px)

DESCRIPTION

Algoritimo

Citation preview

  • ALGORITMO DO BANQUEIRO Sistemas Operacionais I Jlio Peixoto da Silva Jnior - 371978

    Criado por Dijkstra em 1965 um algoritmo de alocao de recursos que

    pode evitar a ocorrncia de deadlock, pode ser visto como uma extenso do

    algoritmo de deteco de impasses. Ele modelado da seguinte maneira: um

    banqueiro de uma pequena cidade pode negociar com um grupo de clientes para

    os quais liberas as linhas de crdito. O que o algoritmo faz verificar se a

    liberao de uma requisio capaz de 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.

    Como hiptese imagine que cada cliente possui seu negcio, e cada um

    deles faz frequentemente 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. Portanto podemos associar que as

    unidades de crditos fazem o papel dos recursos do sistema, os clientes so os

    processos que 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.

    O algoritmo do banqueiro considera que cada solicitao de emprstimo

    deve ser analisada se sua concesso levar a um estado seguro, se sim a

    requisio ser atendida, se no ela ser adiada. O algoritmo pode ser utilizado

    para inmeros recursos, podemos dividir as operaes em duas matrizes, uma

    mostra quanto de cada recurso atualmente est alocado para cada tipo de

    processo e a outra apresentado quantos recursos cada processo ainda precisa

    para completar sua execuo . O vetor de recursos disponvel a diferena entre

    aquilo que o sistema tem e aquilo que atualmente est em uso pelos processos.

    O que o algoritmo faz :

    1. procurar uma linha na matriz de recursos que cada processo ainda

    necessita, cuja necessidades de recursos sejam todas inferiores ou iguais aos

    recursos disponveis, caso nenhuma linha com essas caractersticas o sistema

    entrara em situao de impasse;

    2. considere que o processo da linha escolhida requisite todos os

    recursos de que necessita e termina. O algoritmo marcar esse processo como

    terminado e adiciona ao vetor de recursos disponveis.

  • ALGORITMO DO BANQUEIRO Sistemas Operacionais I Jlio Peixoto da Silva Jnior - 371978 3. repete os passos 1 e 2 at que todos os processos sejam marcados

    como terminados, que o caso seguro, ou at ocorrer um impasse (caso

    inseguro).

    Segundo Tanenbaum, embora em teoria o algoritmo seja maravilhoso, na

    prtica essencialmente intil, porque os processos raramente sabem com

    antecipao o mximo de recursos de que vo precisar. O nmero mximo de

    processos no fixo, mas varia dinamicamente medida que novos usurios

    entram e saem. Na prtica so poucos os sistemas que usam o algoritmo do

    banqueiro para evitar impasses.