ALGORITMO DEL BANQUERO
Enviado por Rebecca • 20 de Diciembre de 2018 • 1.179 Palabras (5 Páginas) • 416 Visitas
...
42 //Verificando si todos los recursos para el proceso se pueden asignar
43 for(int j=0;jnr;j++)
44 if(available[0][j]need[i][j])
45 return false;
46
47 return true;
48 }
49
50 public void esSeguro(){
51 input();
52 calcular_need();
53 boolean done[]=new boolean[np];
54 int j=0;
55
56 while(jnp){ //hasta que todo los proceso sean asignado
57 boolean allocated=false;
58 for(int i=0;inp;i++)
59 if(!done[i] && verificar(i)){ //Tratando de asignar
60 for(int k=0;knr;k++)
61 available[0][k]=available[0][k]-need[i][k]+max[i][k];
62 System.out.println("Asignacion procesos : "+i);
63 allocated=done[i]=true;
64 j++;
65 }
66 if(!allocated) break; //Si no hay asignación
67 }
68 if(j==np) //si todos los proceso son asignado
69 System.out.println("\nAsignado con seguridad");
70 else
71 System.out.println("Todo los proceso no puede ser asignados de forma segura");
72 }
73
74 public static void main(String[] args) {
75 new Banquero().esSeguro();
76 }
77 }
Donde np el número de procesos en el sistema y nr es el número de tipos de recursos. Entonces tenemos las siguientes estructuras de datos:
Available (Disponible): Vector de longitud nr indica el número de recursos disponibles de cada tipo. Si Disponible [j] = sc, hay sc instancias del tipo de recurso R j disponibles.
Allocation(Asignación): Una matriz i × j donde se define el número de recursos de cada tipo actualmente asignado a cada proceso. Si Allocation [i, j] = sc, Entonces el proceso Pi está asignado actualmente a sc instancias del tipo de recurso Rj.
Max: Una matriz np × nr que define la demanda máxima de cada proceso. Si Max [i, j] = sc, entonces Pi puede solicitar en la mayoría de los casos sc de tipo de recurso Rj .
Necesita: Un n × m matriz indica la necesidad de recursos restante de cada proceso. Si Need [i, j] = sc, entonces P i puede necesitar sc más instancias del tipo de recurso R j para completar la tarea.
Nota: need [i, j] = Max [i, j] - Allocation [i, j].
- Pruebas de funcionamiento del algoritmo del algoritmo
Prueba 1:
Run:
Escribir número de procesos y recursos: 5 4
Escriba la matriz de ALLOCATION -->
0 0 1 2
1 0 0 0
1 3 5 4
0 6 3 2
0 0 1 4
Escriba la matriz de MAX -->
0 0 1 2
1 7 5 0
2 3 5 6
0 6 5 2
0 6 5 6
Escriba la matriz de AVAILABLE -->
1 5 2 0
Asignación procesos: 0
Asignación procesos: 2
Asignación procesos: 3
Asignación procesos: 4
Asignación procesos: 1
Asignado con seguridad
BUILD SUCCESSFUL (total time: 1 minute 19 seconds)
Prueba 2:
Run:
Escribir número de procesos y recursos: 5 3
Escriba la matriz de ALLOCATION -->
0 1 0
2 0 0
3 0 2
2 1 1
0 0 2
Escriba la matriz de MAX -->
7 5 3
3 2 2
9 0 2
2 2 2
4 3 3
Escriba la matriz de AVAILABLE -->
3 3 2
Asignación procesos: 1
Asignación procesos: 3
Asignación procesos: 4
Asignación procesos: 0
Asignación procesos: 2
Asignado con seguridad
BUILD SUCCESSFUL (total time: 1 minute 8 seconds)
Prueba 3:
Run:
Escribir número
...