Diferencia entre revisiones de «Solución Ejercicio 2 - Tema 8»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(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…')
 
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, si esto se cumple para todos los procesos entonces estamos ante una configuración cuyo estado es seguro.
+
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, ¿2 >= recMax = 0?---> '''OK'''
+
   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 quedaria:
+
'''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:
  
'''[0 3 1]'''
+
'''[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 = 0, recDisp = 1 ---> recAsig + recDisp = 1, ¿1 >= recMax = 1?---> '''OK'''
+
   R1: recAsig = 3, recDisp = 1 ---> recAsig + recDisp = 4, ¿4 >= recMax = 0?---> '''OK'''
  
   R2: recAsig = 2, recDisp = 1 ---> recAsig + recDisp = 3, ¿3 >= recMax = 0?---> '''OK'''
+
   R2: recAsig = 0, recDisp = 3 ---> recAsig + recDisp = 3, ¿3 >= recMax = 2?---> '''OK'''
  
   R3: recAsig = 1, recDisp = 0 ---> recAsig + recDisp = 1, ¿1 >= recMax = 0?---> '''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:
 
'''Se ejecuta el proceso P1''', se liberan los recursos asignados a este proceso y el vector de recursos disponibles queda:
Línea 36: Línea 40:
 
Comprobamos si se puede ejecutar P3 pero con el nuevo vector.
 
Comprobamos si se puede ejecutar P3 pero con el nuevo vector.
  
   R1: recAsig = 0, recDisp = 1 ---> recAsig + recDisp = 1, ¿1 >= recMax = 1?---> '''OK'''
+
   R1: recAsig = 1, recDisp = 4 ---> recAsig + recDisp = 5, ¿5 >= recMax = 0?---> '''OK'''
  
   R2: recAsig = 2, recDisp = 1 ---> recAsig + recDisp = 3, ¿3 >= recMax = 0?---> '''OK'''
+
   R2: recAsig = 0, recDisp = 3 ---> recAsig + recDisp = 3, ¿3 >= recMax = 0?---> '''OK'''
  
   R3: recAsig = 1, recDisp = 0 ---> recAsig + recDisp = 1, ¿1 >= 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'''.
 
Por tanto, al no producirse interbloqueos podemos decir que '''es una configuración de estado seguro'''.
 +
 +
[[Usuario:Cripolgon|Cripolgon]]

Revisión del 19:29 25 ene 2014

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:

[4 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