Diferencia entre revisiones de «Solución Ejercicio 2 - Tema 8»
(Página creada con '==== Solución Ejercicio 2 - Tema 8 ==== Para poder resolver este ejercicio debemos ver que la suma recAsig + recDisp >= recMax, si esto se cumple para todos los procesos enton…') |
m (→Solución Ejercicio 2 - Tema 8) |
||
(No se muestra una edición intermedia de otro usuario) | |||
Línea 1: | Línea 1: | ||
==== Solución Ejercicio 2 - Tema 8 ==== | ==== Solución Ejercicio 2 - Tema 8 ==== | ||
− | Para poder resolver este ejercicio debemos ver que la suma recAsig + recDisp >= recMax | + | 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. | 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: | Primero comprobamos si se puede ejecutar P1: | ||
− | R1: recAsig = 3, recDisp = 1 ---> recAsig + recDisp = 4, | + | R1: recAsig = 3, recDisp = 1 ---> recAsig + recDisp = 4, ¿4 >= recMax = 0?---> '''OK''' |
R2: recAsig = 0, recDisp = 1 ---> recAsig + recDisp = 1, ¿1 >= recMax = 2?---> '''NO''' | R2: recAsig = 0, recDisp = 1 ---> recAsig + recDisp = 1, ¿1 >= recMax = 2?---> '''NO''' | ||
Línea 18: | Línea 22: | ||
R3: recAsig = 1, recDisp = 0 ---> recAsig + recDisp = 1, ¿1 >= 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 | + | '''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. | Comprobamos si se puede ejecutar P1 pero con el nuevo vector. | ||
− | R1: recAsig = | + | R1: recAsig = 3, recDisp = 1 ---> recAsig + recDisp = 4, ¿4 >= recMax = 0?---> '''OK''' |
− | R2: recAsig = | + | R2: recAsig = 0, recDisp = 3 ---> recAsig + recDisp = 3, ¿3 >= recMax = 2?---> '''OK''' |
− | R3: recAsig = | + | 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: | '''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. | Comprobamos si se puede ejecutar P3 pero con el nuevo vector. | ||
− | R1: recAsig = | + | R1: recAsig = 1, recDisp = 4 ---> recAsig + recDisp = 5, ¿5 >= recMax = 0?---> '''OK''' |
− | R2: recAsig = | + | R2: recAsig = 0, recDisp = 3 ---> recAsig + recDisp = 3, ¿3 >= recMax = 0?---> '''OK''' |
− | R3: recAsig = | + | 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'''. | Por tanto, al no producirse interbloqueos podemos decir que '''es una configuración de estado seguro'''. | ||
+ | |||
+ | [[Usuario:Cripolgon|Cripolgon]] |
Revisión actual del 16:00 14 abr 2020
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.