Las operaciones P y V en semáforos de conteo, donde s es un semáforo de conteo, se definen de la siguiente manera:
P(s) : s = s - 1; if (s < 0) then wait; V(s) : s = s + 1; if (s <= 0) then wakeup a process waiting on s;
Suponga que Pb y Vb se proporcionan las operaciones de espera y señal en semáforos binarios. Se utilizan dos semáforos binarios Xb e Yb para implementar las operaciones de semáforo P(s) y V(s) de la siguiente manera:
P(s) : Pb(Xb); s = s - 1; if (s < 0) { Vb(Xb) ; Pb(Yb) ; } else Vb(Xb); V(s) : Pb(Xb) ; s = s + 1; if (s <= 0) Vb(Yb) ; Vb(Xb) ;
Los valores iniciales de Xb e Yb son respectivamente
(A) 0 y 0
(B) 0 y 1
(C) 1 y 0
(D) 1 y 1
Respuesta: (C)
Explicación: Supongamos que Xb = 0, entonces debido a la operación P(s): Pb(Xb), Xb será -1 y el proceso se bloqueará ya que entrará en la sección de espera.
Entonces, Xb será uno.
Supongamos que s = 2 (significa que 2 procesos están accediendo a recursos compartidos), tomando Xb como 1,
primera operación P(s): Pb(Xb) hará que Xb sea cero. s será 1 y luego se ejecutará la operación Vb(Xb) que aumentará el conteo de Xb como uno. Luego se repetirá el mismo proceso haciendo Xb como uno y s como cero.
Ahora supongamos que viene un proceso más, entonces Xb será 0 pero s será -1, lo que hará que este proceso entre en bucle (s <0) y dará como resultado la llamada a las operaciones Vb(Xb) y Pb(Yb). Vb(Xb) resultará en Xb como 1 y Pb(Yb) resultará en una disminución del valor de Yb.
caso 1: si Yb tiene el valor 0, será -1 y entrará en espera y se bloqueará. el total de 2 procesos accederá al recurso compartido (según el semáforo de conteo, el máximo de 3 procesos puede acceder al recurso compartido) y el valor de s es -1 significa que solo 1 proceso estará esperando recursos y justo ahora, un proceso se bloqueó. Así que sigue siendo cierto.
caso 2: si Yb tiene el valor 1, será 0. El total de 3 procesos accederá al recurso compartido (de acuerdo con el semáforo de conteo, un máximo de 2 procesos pueden acceder al recurso compartido) y el valor de s es -1 significa que solo 1 proceso estará esperando para recursos y pero no hay ningún proceso esperando recursos. Por lo tanto, es falso.
Consulte la pregunta 2 de https://www.geeksforgeeks.org/operating-systems-set-10/
Esta solución es aportada por Nitika Bansal
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