PUERTA | Puerta TI 2005 | Pregunta 42

Dos procesos simultáneos P1 y P2 usan cuatro recursos compartidos R1, R2, R3 y R4, como se muestra a continuación.

P1 P2
Calcular:
Usar R1;
Utilice R2;
Utilice R3;
Utilice R4;
Calcular;
Utilice R1;
Utilice R2;
Utilice R3;.
Utilice R4;

Ambos procesos se inician al mismo tiempo, y solo un proceso puede acceder a cada recurso a la vez. Existen las siguientes restricciones de programación entre el acceso de los recursos a los procesos:

  • P2 debe completar el uso de R1 antes de que P1 obtenga acceso a R1
  • P1 debe completar el uso de R2 antes de que P2 obtenga acceso a R2.
  • P2 debe completar el uso de R3 antes de que P1 obtenga acceso a R3.
  • P1 debe completar el uso de R4 antes de que P2 obtenga acceso a R4.

No hay otras restricciones de programación entre los procesos. Si solo se utilizan semáforos binarios para hacer cumplir las restricciones de programación anteriores, ¿cuál es el número mínimo de semáforos binarios necesarios?

 
(A) 1
(B) 2
(C) 3
(D) 4

Respuesta: (B)
Explicación:
Usamos dos semáforos: A y B.
A se inicializa en 0 y B se inicializa en 1.

P1:

Compute; Wait(A); Use R1; Use R2; Signal(B); Wait(A); Use R3; Use R4; Signal(B);
 
P2:
Compute; Wait(B); Use r1; Signal(A); Wait(B); Use R2; Use R3; Signal(A); Wait(B); Use R4; Signal(B);

En el proceso p1, inicialmente el control se atascará en el ciclo while de Wait(A) porque A = 0.
En el proceso p2, Wait(B) reduce el valor de B a 0. Ahora, P2 usa el recurso R1 e incrementa el valor de A a 1 para que el proceso P1 pueda ingresar a su sección crítica y usar el recurso R1.

Por lo tanto, P2 completará el uso de R1 antes de que P1 obtenga acceso a R1.

Ahora, en P2 valores de B = 0. Por lo tanto, P2 no puede usar el recurso R2 hasta que P1 use R2 y llame a la función Señal (B) para incrementar el valor de B a 1.
Por lo tanto, P1 completará el uso de R2 antes de que P2 obtenga acceso a R2.

Ahora, el semáforo A = 0. Entonces, P1 no puede ejecutarse más y se atasca en el ciclo while de la función Wait(A).
El proceso P2 usa R3 e incrementa el valor del semáforo A a 1. Ahora, P1 puede ingresar a su sección crítica para usar R3.
Por lo tanto, P2 completará el uso de R3 antes de que P1 obtenga acceso a R3.

Ahora, P1 usará R4 e incrementa el valor de B a 1 para que P2 pueda ingresar a la sección crítica para usar R4.
Por lo tanto, P1 completará el uso de R4 antes de que P2 obtenga acceso a R4.

 
Por lo tanto, la opción (B) es correcta.

 
Comente a continuación si encuentra algo incorrecto en la publicación anterior.

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *