Solución Ejercicio 2 - Tema 8

De Wiki de Sistemas Operativos
Revisión del 16:00 14 abr 2020 de Abrcorram (discusión | contribuciones) (Solución Ejercicio 2 - Tema 8)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Solución Ejercicio 2 - Tema 8

Para poder resolver este ejercicio debemos ver que la suma recAsig + recDisp >= recMax se cumple para todos los recursos de cada proceso, si esto se da entonces estamos ante una configuración de estado seguro. Para ello seguimos el algoritmo visto en clase.

Teniendo el siguiente vector de recursos disponibles nos disponemos a comprobar si se pueden ejecutar todos los procesos:

[1 1 0]

Primero comprobamos si se puede ejecutar P1:

 R1: recAsig = 3, recDisp = 1 ---> recAsig + recDisp = 4, ¿4 >= recMax = 0?---> OK
 R2: recAsig = 0, recDisp = 1 ---> recAsig + recDisp = 1, ¿1 >= recMax = 2?---> NO

Comprabomos si se puede ejecutar P2:

 R1: recAsig = 0, recDisp = 1 ---> recAsig + recDisp = 1, ¿1 >= recMax = 1?---> OK
 R2: recAsig = 2, recDisp = 1 ---> recAsig + recDisp = 3, ¿3 >= recMax = 0?---> OK
 R3: recAsig = 1, recDisp = 0 ---> recAsig + recDisp = 1, ¿1 >= recMax = 0?---> OK

Se ejecuta en primer lugar P2, ahora este proceso libera todos los recursos que tiene asignado y por tanto el vector de recursos disponibles quedaría:

[1 3 1]

Comprobamos si se puede ejecutar P1 pero con el nuevo vector.

 R1: recAsig = 3, recDisp = 1 ---> recAsig + recDisp = 4, ¿4 >= recMax = 0?---> OK
 R2: recAsig = 0, recDisp = 3 ---> recAsig + recDisp = 3, ¿3 >= recMax = 2?---> OK
 R3: recAsig = 2, recDisp = 1 ---> recAsig + recDisp = 3, ¿3 >= recMax = 0?---> OK

Se ejecuta el proceso P1, se liberan los recursos asignados a este proceso y el vector de recursos disponibles queda:

[5 3 3]

Comprobamos si se puede ejecutar P3 pero con el nuevo vector.

 R1: recAsig = 1, recDisp = 4 ---> recAsig + recDisp = 5, ¿5 >= recMax = 0?---> OK
 R2: recAsig = 0, recDisp = 3 ---> recAsig + recDisp = 3, ¿3 >= recMax = 0?---> OK
 R3: recAsig = 0, recDisp = 3 ---> recAsig + recDisp = 3, ¿3 >= recMax = 1?---> OK

Por tanto, al no producirse interbloqueos podemos decir que es una configuración de estado seguro.

Cripolgon