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.