Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AUTONOMA DE PUEBLA
INGENIERIA EN CIENCIAS DE LA COMPUTACIÓN
PSEUDOCODIGO EN C:
#include <stdio.h>
void banquero() {
int Finish[n], SafeSequence[n];
int count = 0;
// Inicialización de Finish[]
for (int i = 0; i < n; i++)
Finish[i] = 0;
// Inicialización de SafeSequence[]
for (int i = 0; i < n; i++)
SafeSequence[i] = -1;
// Inicialización de Available[]
for (int j = 0; j < m; j++) {
int sum = 0;
for (int i = 0; i < n; i++)
sum += Allocation[i][j];
Available[j] = sum;
}
// Inicialización de Need[]
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
Need[i][j] = Max[i][j] - Allocation[i][j];
int main() {
// Definir Max y Allocation
int Max[n][m] = {
{7, 5, 3},
{3, 2, 2},
{9, 0, 2},
{2, 2, 2},
{4, 3, 3}
};
int Allocation[n][m] = {
{0, 1, 0},
{2, 0, 0},
{3, 0, 2},
{2, 1, 1},
{0, 0, 2}
};
banquero();
return 0;
}
ALGORITMO:
El algoritmo del banquero se utiliza para prevenir interbloqueos en un
sistema con múltiples procesos que compiten por un conjunto
limitado de recursos. A continuación, se presenta el pseudocódigo
del algoritmo:
Finish(i) es falso.
Need(i,j) ≤ Available(j) para todo j. Es decir, los recursos necesarios
por el proceso i están disponibles.
b. Si se encuentra un proceso i que cumple con estas condiciones,
se ejecuta el proceso i y se liberan los recursos que se le habían
asignado. Es decir, se actualiza el vector Available y se marca el
proceso i como completo en el vector Finish.
c. Si no se encuentra ningún proceso que cumpla con estas
condiciones, el sistema está en un estado de interbloqueo y se debe
tomar una acción para resolver el problema.
El algoritmo del banquero se utiliza para prevenir interbloqueos y
garantizar la seguridad del sistema. Si el algoritmo encuentra una
secuencia segura de procesos que pueden completarse sin que
ocurra un interbloqueo, el sistema está seguro y se puede ejecutar.
Si no se encuentra una secuencia segura, el sistema está en un
estado de interbloqueo y se deben tomar medidas para resolver el
problema.
EJEMPLO:
Supongamos que tenemos un sistema con 5 procesos y 3 tipos de
recursos. La tabla a continuación muestra la cantidad máxima de
recursos que cada proceso puede solicitar (Matriz Max) y la cantidad
actual de recursos asignados a cada proceso (Matriz Asignación):
PROCESO MAXIMO DE RECURSOS ASIGNACION
REQUERIDOS ACTUAL
P0 753 010
P1 322 200
P2 902 302
P3 222 211
P4 433 002
REFERENCIAS BIBLIOGRAFICAS:
Simulación - Algoritmo del Banquero (victorvr.com)
(anonymous) (uns.edu.ar)