Algoritmo do Banqueiro em Operasistema de configuração [exemplo]

O que é o algoritmo do banqueiro?

Algoritmo do banqueiro é usado principalmente no sistema bancário para evitar impasses. Ajuda você a identificar se um empréstimo será concedido ou não.

Este algoritmo é usado para testar a simulação segura da alocação para determinar o valor máximo disponível para todos os recursos. Também verifica todas as atividades possíveis antes de determinar se a alocação deve continuar ou não.

Por exemplo, há um número X de correntistas de um banco específico e o valor total em dinheiro de suas contas é G.

Quando o banco processa um empréstimo para um carro, o sistema de software subtrai o valor do empréstimo concedido para a compra de um carro do dinheiro total (G+ Depósito fixo + Esquema de renda mensal + Ouro, etc.) que o banco possui.

Também verifica se a diferença é maior ou não G. Só processa o empréstimo de carro quando o banco tem dinheiro suficiente, mesmo que todos os correntistas retirem o dinheiro G simultaneamente.

Notações de algoritmo do banqueiro

Aqui está uma notação importante usada no algoritmo de Banker:

  • X: Indica o número total de processos do sistema.
  • Y: Indica o número total de recursos presentes no sistema.

Disponível

[I:Y] indica qual recurso está disponível.

Max

[l:X,l:Y]: Expressão do número máximo de recursos do tipo j ou processo i

Alocação

[l:X,l:Y]. Indique em qual processo você recebeu um recurso do tipo j

você merece...

Expresse quantos recursos a mais podem ser alocados no futuro

Exemplo de algoritmo do banqueiro

Suponha que temos os seguintes recursos:

  • 5 pendrives
  • 2 Impressoras
  • 4 scanners
  • 3 discos rígidos

Aqui criamos um vetor que representa o total de recursos: Disponível = (5, 2, 4, 3).

Suponha que existam quatro processos. Os recursos disponíveis já estão alocados conforme tabela matriz abaixo.

Nome do Processo Pen drives Printer Scanner disco rígido
P 2 0 1 1
Q 0 1 0 0
R 1 0 1 1
S 1 1 0 1
Total 4 2 2 3

Aqui, os recursos alocados são o total destas colunas:

Alocado = (4, 2, 2, 3).

Também criamos uma Matriz para exibir a quantidade de cada recurso necessário para todos os processos. Esta matriz é chamada você merece...= (3,0,2,2)

Nome do Processo Pen drives Printer Scanner disco rígido
P 1 1 0 0
Q 0 1 1 2
R 2 1 0 0
S 0 0 1 0

O vetor disponível será:

Disponível=Disponível - Alocado

= (5, 2, 4, 3) -(4, 2, 2, 3)

=(1, 0, 2, 0)

Algoritmo de solicitação de recursos

O algoritmo de solicitação de recurso permite representar o comportamento do sistema quando um processo específico faz uma solicitação de recurso.

Vamos entender isso seguindo as seguintes etapas:

Passo 1) Quando o total de instâncias solicitadas de todos os recursos for menor que o processo, vá para a etapa 2.

Passo 2) Quando uma instância solicitada de cada tipo de recurso for menor em comparação com os recursos disponíveis de cada tipo, ela será processada para a próxima etapa. Caso contrário, o processo necessitará de esperar devido à indisponibilidade de recursos suficientes.

Passo 3) O recurso é alocado conforme mostrado no pseudocódigo fornecido abaixo.

Available = Available – Request (y)
Allocation(x) = Allocation(x) + Request(x)
Need(x) = Need(x) - Request(x)

Esta etapa final é executada porque o sistema precisa assumir que os recursos foram alocados. Para que haja menos recursos disponíveis após a alocação.

Características do Algoritmo do Banqueiro

Aqui estão características importantes do algoritmo do banqueiro:

  • Mantenha muitos recursos que atendam aos requisitos de pelo menos um cliente
  • Sempre que um processo obtém todos os seus recursos, ele precisa devolvê-los em um período restrito.
  • Quando um processo solicita um recurso, ele precisa esperar
  • O sistema tem um número limitado de recursos
  • Recurso avançado para alocação máxima de recursos

Desvantagem do algoritmo do banqueiro

Aqui estão os contras/desvantagens de usar o algoritmo do banqueiro

  • Não permite que o processo altere sua necessidade máxima durante o processamento
  • Permite que todas as solicitações sejam atendidas em tempo restrito, mas um ano é o prazo fixo para isso.
  • Todos os processos devem conhecer e declarar antecipadamente suas necessidades máximas de recursos.

Resumo

  • O algoritmo do banqueiro é usado principalmente no sistema bancário para evitar impasse. Ajuda você a identificar se um empréstimo será concedido ou não.
  • As notações usadas nos algoritmos do banqueiro são 1) Disponível 2) Máx. 3) Alocação 4) Necessidade
  • O algoritmo de solicitação de recurso permite representar o comportamento do sistema quando um processo específico faz uma solicitação de recurso.
  • O algoritmo do banqueiro mantém muitos recursos que satisfazem os requisitos de pelo menos um cliente
  • A maior desvantagem do algoritmo do banqueiro é que ele não permite que o processo altere sua necessidade máxima durante o processamento.