Sunteți pe pagina 1din 2

Centro Universitário do Pará – CESUPA

Bacharel em Ciência da Computação – BCC


Professora: Alessandra Natasha
Alunos: Turma: CC7TA
Márcio Lobato
Pedro Victor Pinheiro
Roberto Franco

Resenha

Esta resenha diz respeito ao conteúdo abordado no livro Sistemas Operacionais Modernos
de Andrew S. Tanembaum, capítulo 6, seção 6.5.3, páginas 173, 174 e 175.

Nesta seção, Tanembaum explica de uma maneira bem clara e simples sobre o que consiste o
algoritmo do banqueiro, inclusive dando exemplos de seu funcionamento.

Criado por Dijkstra em 1965, o algoritmo do banqueiro é um algoritmo de alocação de


recursos e que pode evitar a ocorrência de deadlocks. Seu nome foi originado a partir de seu
funcionamento, o qual pode ser comparado ao comportamento de um banqueiro fornecendo créditos
a um determinado número de clientes.

Imagine que cada cliente possui seu próprio negócio, e cada um deles eventualmente faz
requisições de empréstimos ao banco para continuar operando seus negócios. Entretanto, o
banqueiro possui uma quantidade limitada de unidades de crédito e precisa saber distribuir as
unidades da melhor forma possível entre seus clientes.

Na situação descrita acima, as unidades de créditos fazem o papel dos recursos do sistema,
os clientes são os processos (os quais 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 as 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.

A partir de uma requisição de crédito, se o banqueiro determinar a situação como segura o


empréstimo é fornecido, caso contrário o cliente deve esperar e seu empréstimo será realizado em
um outro momento.

O algoritmo do banqueiro também pode ser usado em situações em que um processo


necessita de diversos tipos de recursos, como por exemplo unidades de fita, plotters, impressoras,
etc.

Ao final da leitura do conteúdo do capítulo do Tanembaum, nos deparamos com uma


surpresa. Tanembaum afirma que o algoritmo na prática é inútil, pois os processos quase nunca
sabem exatamente quantos recursos vão precisar e também a quantidade de processos varia, isso
sem contar também com a possibilidade de um recurso “desaparecer”, devido a algum defeito
físico.

Dito isso podemos realmente concordar que o algoritmo depende de várias informações que
nem sempre estão disponíveis, o que impede seu uso na prática. Devido a isso outras soluções
precisam ser criadas e estudadas para resolver esses problemas de alocações de recursos, pois a
própria natureza desse ambiente gera vários problemas e situações, onde deadlock é apenas um
deles. Embora o algoritmo do banqueiro não esteja totalmente adaptado para esse ambiente, nada
impede que modificações possam ser feitas tornando-o finalmente pronto para uso.

S-ar putea să vă placă și