L' Algorisme del banquer, dins l'entorn de sistemes operatius és una forma d'evitar l'interbloqueig, proposada per primera vegada per Edsger Dijkstra. És un apropament teòric per evitar els interbloquejos en la planificació de recursos. Requereix conèixer amb anticipació els recursos que seran utilitzats per tots els processos. Això últim generalment no es pot satisfer en la pràctica.
Aquest algorisme usualment és explicat usant l'analogia amb el funcionament d'un banc. Els clients representen els processos, que tenen un crèdit límit, i els diners representa els recursos. El banquer és el sistema operatiu.
El banc confia que no haurà de permetre a tots els seus clients la utilització de tot el seu crèdit a la vegada. El banc també assumeix que si un client maximitza el seu crèdit serà capaç d'acabar els seus negocis i tornar els diners a l'entitat, permetent servir altres clients.
L'algorisme manté el sistema en un estat segur . Un sistema es troba en un estat segur si hi ha un ordre en que poden concedir les peticions de recursos a tots els processos, prevenint l'interbloqueig. L'algorisme del banquer funciona trobant estats d'aquest tipus.
Els processos demanen recursos, i són complaguts sempre que el sistema es mantingui en un estat segur després de la concessió. En cas contrari, el procés és suspès fins que un altre procés alliberi recursos suficients.
En termes més formals, un sistema es troba en un estat segur si hi ha una seqüència segura. Una seqüència segura és una successió de processos, ,..., , on per un procés , la comanda de recursos pot ser satisfet amb els recursos disponibles sumats els recursos que estan sent utilitzats per , on j <i. Si no hi ha prou recursos per al procés , ha d'esperar fins que algun procés acabi la seva execució i alliberi els seus recursos. Tot just llavors podrà prendre els recursos necessaris, utilitzar-los i acabar la seva execució. En succeir això, el procés i+1 pot prendre els recursos que necessiti, i així successivament. Si una seqüència d'aquest tipus no existeix, el sistema es diu que està en un estat insegur , encara que això no implica que estigui bloquejat.
Així, l'ús d'aquest tipus d'algorisme permet impedir l'interbloquejos, però suposa una sèrie de restriccions:
S'utilitzen quatre vectors: recursos, assignació, demanda i disponible. La informació que guarda cada un és la següent:
El termes de complexitat, l'algoritme del banquer és d'ordre O (n 2 × m), on n és el nombre de processos i m la quantitat de recursos.
És un algorisme que determina si el sistema està en un estat segur.
Aquest algorisme determina si una comanda de recursos es pot satisfer de manera segura. És executat pel sistema cada vegada que arriba una petició de recursos per part d'un procés.