Sistemas Operativos | Gestión de Procesos | Pregunta 6 – Part 3

Una variable compartida x, inicializada a cero, es operada por cuatro procesos concurrentes W, X, Y, Z de la siguiente manera. Cada uno de los procesos W y X lee x de la memoria, lo incrementa en uno, lo almacena en la memoria y luego termina. Cada uno de los procesos Y y Z lee x de la memoria, lo reduce en dos, lo almacena en la memoria y luego termina. Cada proceso antes de leer x invoca la operación P (es decir, esperar) en un semáforo de conteo S e invoca la operación V (es decir, señal) en el semáforo S después de almacenar x en la memoria. El semáforo S se inicializa a dos. ¿Cuál es el valor máximo posible de x después de que todos los procesos completan su ejecución? (GATE CS 2013)

(A) -2
(B) -1
(C) 1
(D) 2

Respuesta: (D)
Explicación: los procesos pueden ejecutarse de muchas maneras, a continuación se muestra uno de los casos en los que x alcanza el valor máximo

Semaphore S is initialized to 2

Process W executes S=1, x=1 but it doesn't update the x variable.

Then process Y executes S=0, it decrements x, now x= -2 and 
signal semaphore S=1

Now process Z executes s=0, x=-4, signal semaphore S=1
Now process W updates x=1, S=2

Then process X executes X=2 

Así que la opción correcta es (D).

Vea la explicación del video de GeeksforGeeks:

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 *