PUERTA | CS 2022 | Pregunta 19

Considere los siguientes subprocesos, T1, T2 y T3 que se ejecutan en un solo procesador, sincronizados mediante tres variables de semáforo binarias, S1, S2 y S3, operadas mediante el uso estándar de espera() y señal(). Los subprocesos se pueden cambiar de contexto en cualquier orden y en cualquier momento. 

¿Qué inicialización de los semáforos imprimiría la secuencia BCABCABCA….?

(A)

S1 = 1 ; S2 = 1 ; S 3 = 1

(B)

S1 = 1 ; S2 = 1 ; S 3 = 0

(C)

S1 = 1 ; S2 = 0 ; S 3 = 0

(D)

S1 = 0 ; S2 = 1 ; S 3 = 1

Respuesta: (C)
Explicación:

Inicialmente si S1 = 1, S2 = 0, S3 = 0,

El proceso T2 puede ejecutar correctamente la espera (S1); mientras que T1 y T3 permanecen atascados en espera (S3); y esperar (S2); respectivamente.

Después de que el proceso T2 imprime B, ejecuta la señal (S3) y se atasca en la espera (S1);

(B se imprime en este proceso).

Después de este proceso, T1 puede ejecutar con éxito esperar (S3); y luego ejecuta print(“C”);, después de lo cual ejecuta signal(S2); y luego se queda atascado en espera (S3);

(C se imprime en este proceso).

Después de este proceso, T3 puede ejecutar con éxito esperar (S2); y luego ejecuta print(“A”);, después de lo cual ejecuta signal(S1); y luego se queda atascado en espera (S2);

(A se imprime en este proceso).

Después de este proceso, T2 puede ejecutar esperar (S1); exitosamente.

El proceso sigue repitiéndose y el patrón impreso es BCABCABCA…

Entonces, la opción C es la respuesta correcta. 

Cuestionario de esta pregunta
Comente a continuación si encuentra algo incorrecto en la publicación anterior

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 *