PUERTA | PUERTA CS 2008 | Pregunta 63

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

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 *