O que é o algoritmo do banqueiro?
O algoritmo do banqueiro é usado principalmente no sistema bancário para evitar deadlock. Ajuda a identificar se um empréstimo será concedido ou não.
Este algoritmo é usado para testar e simular com segurança a alocação para determinar a quantidade máxima disponível para todos os recursos. Ele também verifica todas as atividades possíveis antes de determinar se a alocação deve ser continuada ou não.
Por exemplo, há um número X de titulares de contas de um banco específico e o valor total de suas contas é G.
Quando o banco processa um empréstimo de 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.
Ele também verifica se a diferença é maior ou não G. Ele só processa o empréstimo do carro quando o banco tem dinheiro suficiente, mesmo que todos os correntistas retirem o dinheiro G simultaneamente.
Neste tutorial de sistema operacional, você aprenderá:
- O que é o algoritmo do banqueiro?
- Notações de algoritmo do banqueiro
- Exemplo de algoritmo do banqueiro
- Características do algoritmo do banqueiro
- Desvantagem do algoritmo do banqueiro
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.
Máx.
[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 onde processo você recebeu um recurso do tipo j
Necessidade
Expresse quantos recursos a mais podem ser alocados no futuro
Exemplo de algoritmo do banqueiro
Suponha que temos os seguintes recursos:
- 5 pen drives
- 2 impressoras
- 4 scanners
- 3 discos rígidos
Aqui, criamos um vetor que representa os recursos totais: Disponíveis = (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 | Impressora | 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 dessas colunas:
Alocado = (4, 2, 2, 3).
Também criamos uma Matriz para mostrar o número de cada recurso necessário para todos os processos. Esta matriz é chamada de Necessidade = (3,0,2,2)
Nome do processo | Pen drives | Impressora | 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 pelas seguintes etapas:
Etapa 1) Quando uma instância total solicitada de todos os recursos for menor que o processo, vá para a etapa 2.
Etapa 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 precisará aguardar devido à indisponibilidade de recursos suficientes.
Etapa 3) O recurso é alocado conforme mostrado no Pseudocódigo fornecido a seguir.
Available = Available - Request (y)Allocation(x) = Allocation(x) + Request(x)Need(x) = Need(x) - Request(x)
Essa 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 satisfaçam a necessidade 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 possui 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 mude sua necessidade máxima durante o processamento
- Permite que todas as solicitações sejam atendidas em tempo restrito, mas um ano é o período fixo para isso.
- Todos os processos devem saber e declarar com antecedência suas necessidades máximas de recursos.
Resumo:
- O algoritmo do banqueiro é usado principalmente no sistema bancário para evitar deadlock. Ajuda 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áximo 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 a exigência de pelo menos um cliente
- A maior desvantagem do algoritmo do banqueiro é não permitir que o processo mude sua necessidade máxima durante o processamento.