Documente Academic
Documente Profesional
Documente Cultură
de Tiempo Real
Por:
Ciudad Universitaria
2019
DEDICATORIA
ii
TABLA DE CONTENIDO
DEDICATORIA ................................................................................................................................. ii
TABLA DE CONTENIDO ............................................................................................................... iii
LISTA DE FIGURAS ........................................................................................................................ iv
LISTA DE TABLAS............................................................................................................................ v
INTRODUCCIÓN ............................................................................................................................ vi
CAPÍTULO I...................................................................................................................................... 1
¿QUÉ ES EL ALGORITMO DEL BANQUERO? ........................................................................... 1
1.1 Algoritmo del banquero ........................................................................................................ 1
CAPITULO II .................................................................................................................................... 3
ESTRUCTURA Y COMPLEJIDAD .................................................................................................. 3
2.1 Estructura y complejidad ...................................................................................................... 3
2.2 Pseudocódigos. ....................................................................................................................... 4
2.2.1 Pseudocódigo en C# ....................................................................................................... 4
2.2.2 Pseudocódigo en Java ...................................................................................................... 6
CAPITULO III ................................................................................................................................... 8
VENTAJAS Y DESVENTAJAS DEL ALGORITMO DEL BANQUERO ...................................... 8
3.1 Ventajas ................................................................................................................................... 8
3.2 Desventajas ............................................................................................................................. 8
CASO PRACTICO ............................................................................................................................. 9
Paso 1: ................................................................................................................................................ 10
Paso 2: ................................................................................................................................................ 10
Paso 3: ................................................................................................................................................ 11
Paso 4: ................................................................................................................................................ 11
Paso 5: ................................................................................................................................................ 11
REFERENCIA BIBLIOGRÁFICA.................................................................................................. 14
iii
LISTA DE FIGURAS
iv
LISTA DE TABLAS
v
INTRODUCCIÓN
El presente trabajo trata de explicar y dar a conocer el “Algoritmo del banquero”, el cual
es utilizado para ceder recursos a procesos que solicitan dada una cantidad máxima de recursos
a ofrecer.
vi
CAPÍTULO I
El banco confía en que no tendrá que permitir a todos sus clientes la utilización de todo
su crédito a la vez. El banco también asume que si un cliente maximiza su crédito será capaz de
terminar sus negocios y devolver el dinero a la entidad, permitiendo servir a otros clientes.
Los procesos piden recursos, y son complacidos siempre y cuando el sistema se mantenga
en un estado seguro después de la concesión. De lo contrario, el proceso es suspendido hasta
que otro proceso libere recursos suficientes.
sumados los recursos que están siendo utilizados por , donde j < i. Si no hay suficientes
recursos para el proceso , debe esperar hasta que algún proceso termine su ejecución y
1
libere sus recursos. Recién entonces podrá tomar los recursos necesarios, utilizarlos y
terminar su ejecución. Al suceder esto, el proceso i+1 puede tomar los recursos que necesite,
y así sucesivamente. Si una secuencia de este tipo no existe, el sistema se dice que está en
un estado inseguro, aunque esto no implica que esté bloqueado.
Así, el uso de este tipo de algoritmo permite impedir el interbloqueo, pero supone una
serie de restricciones:
2
CAPÍTULO II
ESTRUCTURA Y COMPLEJIDAD
Se deben utilizar cuatro estructuras de datos para implementar el algoritmo del banquero.
Estas codifican el estado del sistema de asignación de recursos. Sea n, el número de procesos
del sistema, m el número de tipos de recursos. Se necesita:
Demanda (Max): Esta matriz, n x m, guarda las cantidades máximas de recursos de cada
tipo que pueden ser demandadas por cada proceso. Si Max[i][j]=k, el proceso i, puede solicitar,
como máximo k instancias del recurso j.
3
Figura 1. Tabla de procesos
En la última columna se tienen los recursos disponibles que da el sistema, los que se
pueden utilizar con todos los procesos. Hay 3 del A, 3 del B y 2 del C.
El algoritmo del banquero trata de asegurar qué proceso tiene un “estado seguro” es decir, se
requiere alcanzar el máximo requerido entre los que estén en Asignados y los que se encuentren
en Disponibles.
2.2 Pseudocódigos.
2.2.1 Pseudocódigo en C#
int nRecursos;
int nProcesos;
List<List<int>> asignados = new List<List<int>>();
List<List<int>> maximos = new List<List<int>>();
List<int> disponibles = new List<int>();
4
asignados.Add(new List<int>());
maximos.Add(new List<int>());
for (int j = 0; j < nRecursos; j++)
{
asignados[i].Add(r.Next(0, nRecursos));
maximos[i].Add(r.Next(0, nRecursos));
}
}
5
}
<pre>
public class Comprobaciones {
recursos.setDisponible(recursos.getDisponibles().get(j) +
asignados.get(i).getRecursosNecesarios().get(j), j);
}
System.out.println("Recursos disponibles:
" + recursos.getDisponibles());
i = -1;
}
}
if(terminados.size() == asignados.size()){
System.out.println("Todos los procesos han sido
ejecutados sin problemas.");
}
else{
System.out.println("Hay un interbloqueo, no se
pueden seguir ejecutando procesos...");
}
return terminados;
}
6
if((asignados.getRecursosNecesarios().get(i) +
disponibles.getDisponibles().get(i)) <
necesarios.getRecursosNecesarios().get(i)){
ej = false;
break;
}
}
return ej;
}
}
</pre>
<pre>
public static void main(String[] args) {
Resultado:
Proceso P4 terminado
Recursos disponibles: [1, 1, 3, 2, 1]
Proceso P3 terminado
Recursos disponibles: [2, 2, 3, 3, 1]
Proceso P1 terminado
Recursos disponibles: [3, 2, 5, 4, 2]
Proceso P2 terminado
Recursos disponibles: [5, 2, 6, 5, 2]
Todos los procesos han sido ejecutados sin problemas.
7
CAPÍTULO III
3.1 Ventajas
3.2 Desventajas
8
CASO PRACTICO
Se tiene un sistema operativo con los siguientes procesos con sus respectivos requisitos y los
recursos disponibles que se pueden otorgar a cada proceso:
C R1 R2 R3
P1 3 2 2
P2 6 1 3
P3 3 1 4
P4 4 2 2
R1 R2 R3
9 3 6
A R1 R2 R3
P1 1 0 0
P2 6 1 2
P3 2 1 1
P4 0 0 2
R1 R2 R3
0 1 1
9
Resolución:
Tabla 5 Primera matriz diferencia de la matriz de recursos del estado seguro del sistema y la matriz de
recursos A
C-A R1 R2 R3
P1 2 2 2
P2 0 0 1
P3 1 0 3
P4 4 2 0
Paso 2: Se verifica cual fila de la matriz cumple la condición que sus elementos sean menores a
los del vector. En este caso cumple P2; luego se le agrega los valores a la matriz A Para que
termine su proceso.
C-A R1 R2 R3
P1 2 2 2
P2 0 0 1
P3 1 0 3
P4 4 2 0
R1 R2 R3
0 1 1
Tabla 8 Matriz de recursos del sistema actual siendo asignado el vector de recursos disponibles del sistema
actual
A R1 R2 R3
P1 1 0 0
P2 6+0 1+0 2+1
P3 2 1 1
P4 0 0 2
R1 R2 R3
0 1 1-1
10
Tabla 10 Matriz de recursos del sistema actual modificada.
A R1 R2 R3
P1 1 0 0
P2 6 1 3
P3 2 1 1
P4 0 0 2
C-A R1 R2 R3
P1 2 2 2
P2 0 0 0
P3 1 0 3
P4 4 2 0
Tabla 12
R1 R2 R3
0 1 1-1
Comprobamos que el P2 es el primero en terminar ya que cumplió con todos los requisitos.
Tabla 13
A R1 R2 R3
P1 1 0 0
P2 0 0 0
P3 2 1 1
P4 0 0 2
Tabla 14
R1 R2 R3
0+6 1+1 0+3
Paso 5: Repetimos el proceso hasta que todos estén cumpliendo sus requisitos.
11
Tabla 15
A R1 R2 R3
P1 0 0 0
P2 0 0 0
P3 2 1 1
P4 0 0 2
Tabla 16
R1 R2 R3
7 2 3
Tabla 17
A R1 R2 R3
P1 0 0 0
P2 0 0 0
P3 0 0 0
P4 0 0 2
R1 R2 R3
9 3 4
Tabla 19
A R1 R2 R3
P1 0 0 0
P2 0 0 0
P3 0 0 0
P4 0 0 0
Tabla 20
R1 R2 R3
9 3 6
12
Tabla 21 Datos A después de la cuarta asignación de recursos
Para lograr el estado seguro se debe realizar los procesos en el siguiente orden P2-P1-P3-P4.
13
REFERENCIA BIBLIOGRÁFICA
http://equipoisaiasmauricio.blogspot.com/2010/10/principios-de-interbloqueo-y-
acciones.html
Isaias Madrigal
(Madrigal, 2010)
14