PUERTA | PUERTA CS 2020 | Pregunta 44

Cada uno de un conjunto de n procesos ejecuta el siguiente código utilizando dos semáforos a y b inicializados en 1 y 0, respectivamente. Suponga que count es una variable compartida inicializada en 0 y no utilizada en CODE SECTION P.

CODE SECTION P 

wait(a); count=count+1;
if (count==n) signal (b);
signal (a): wait (b) ; signal (b);

CODE SECTION Q 

¿Qué logra el código?
(A) Garantiza que ningún proceso ejecute la SECCIÓN DE CÓDIGO Q antes de que todos los procesos hayan finalizado LA SECCIÓN DE CÓDIGO P
(B) Garantiza que dos procesos estén en la SECCIÓN DE CÓDIGO Q en cualquier momento
(C) Garantiza que todos los procesos ejecuten LA SECCIÓN DE CÓDIGO P de forma mutuamente exclusiva
(D) Asegura que como máximo n−1 procesos estén en la SECCIÓN DE CÓDIGO P en cualquier momento

Respuesta: (A)
Explicación: Todos los procesos que ejecutan el código dado permanecerán bloqueados debido a la espera (b) hasta que el valor de conteo se convierta en n .

Cuando el valor de count se vuelve igual a n, el valor de b cambia a 1, lo que posteriormente permitirá que un proceso entre en la sección Q.

Por lo tanto, ningún proceso puede ir a la sección Q hasta que todo el proceso ejecute la sección de código P.

La opción (A) es correcta.
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 *