de Tiempo Real
Por:
Ciudad Universitaria
2019
DEDICATORIA
ii
TABLA DE CONTENIDO
DEDICATORIA ................................................................................................................................... ii
TABLA DE CONTENIDO ............................................................................................................... iii
LISTA DE FIGURAS .......................................................................................................................... iii
LISTA DE TABLAS ............................................................................................................................. v
INTRODUCCIÓN .............................................................................................................................. vi
CAPÍTULO I .......................................................................................................................................... 1
¿QUÉ ES EL ALGORITMO DEL BANQUERO?........................................................................ 1
1.1 Algoritmo del banquero .................................................................................................... 1
CAPÍTULO 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
CAPÍTULO III ....................................................................................................................................... 8
VENTAJAS Y DESVENTAJAS DEL ALGORITMO DEL BANQUERO ............................. 8
3.1 Ventajas ................................................................................................................................... 8
3.2 Desventajas ............................................................................................................................. 8
CASO PRÁCTICO ................................................................................................................................ 9
Paso 1: .................................................................................................................................................. 9
Paso 2: ................................................................................................................................................ 10
Paso 3: ................................................................................................................................................ 11
Paso 4: ................................................................................................................................................ 11
Paso 5: ................................................................................................................................................ 11
REFERENCIA BIBLIOGRAFICA ................................................................................................. 13
LISTA DE FIGURAS
iii
Figura 1. Tabla de procesos ................................................................................................................. 4
Figura 2 . Ejemplo del Pseudocódigo en C# ................................................................................... 6
Figura 3. Pseudocódigo en Java ......................................................................................................... 7
Figura 4 . Compilado de Java.............................................................................................................. 7
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 PRÁCTICO
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
Resolución:
9
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
Tabla 7 Primera comparación del vector de recursos disponibles del sistema actual con la primera matriz
diferencia
R1 R2 R3
0 1 1
Tabla 8 Primera asignación de recursos de la matriz de recursos del sistema actual con los valores del
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
Tabla 9 Vector de recursos del sistema actual luego de asignar los valores designados hacia la matriz de
recursos del sistema actual
R1 R2 R3
0 1 1-1
10
Tabla 10 Primer resultado de la matriz de recursos del sistema actual.
A R1 R2 R3
P1 1 0 0
P2 6 1 3
P3 2 1 1
P4 0 0 2
Tabla 11 Segunda matriz de diferencia de recursos del sistema en estado seguro y la matriz de recursos del
sistema actual
C-A R1 R2 R3
P1 2 2 2
P2 0 0 0
P3 1 0 3
P4 4 2 0
Comprobamos que el P2 es el primero en terminar ya que cumplió con todos los requisitos.
Tabla 12 Vector de recursos del sistema actual luego de devolver los recursos usados en el proceso 2
R1 R2 R3
0+6 1+1 0+3
Paso 5: Repetimos el proceso hasta que todos estén cumpliendo sus requisitos.
A R1 R2 R3
P1 3 2 2
P2 6 1 3
P3 2 1 1
P4 0 0 2
Tabla 14 Vector de recursos del sistema actual luego de devolver los recursos usados en el proceso 1
R1 R2 R3
7 2 3
11
Tabla 15 Tercer resultado de la matriz de recursos actual
A R1 R2 R3
P1 3 2 2
P2 6 1 3
P3 3 1 4
P4 0 0 2
Tabla 16 Vector de recursos disponibles del sistema actual luego de devolver los recursos usados en el
proceso 3
R1 R2 R3
9 3 4
A R1 R2 R3
P1 3 2 2
P2 6 1 3
P3 3 1 4
P4 4 2 2
Tabla 18 Vector de recursos disponibles luego de devolver los recursos usados en el proceso 4
R1 R2 R3
9 3 6
Para lograr el estado seguro se debe realizar los procesos en el siguiente orden P2-P1-P3-P4.
12
REFERENCIA BIBLIOGRAFICA
13