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