Algoritmo do banqueiro no sistema operacional (exemplo)

Índice:

Anonim

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.