PUERTA | PUERTA-CS-2004 | Pregunta 48

Considere dos procesos P1 y P2 que acceden a las variables compartidas X e Y protegidas por dos semáforos binarios SX y SY respectivamente, ambos inicializados en 1. P y V denotan los operadores de semáforo habituales, donde P disminuye el valor del semáforo y V incrementa el valor del semáforo. . El pseudocódigo de P1 y P2 es el siguiente:

P1:

 While true do {
   L1 : ................
   L2 : ................
   X = X + 1;
   Y = Y - 1;
   V(SX);
   V(SY);             
 }

P2:

 While true do {
   L3 : ................   
   L4 : ................
   Y = Y + 1;
   X = Y - 1;
   V(SY);
   V(SX);            
}

Para evitar interbloqueos, los operadores correctos en L1, L2, L3 y L4 son respectivamente
(A) P(SY), P(SX); P(SX), P(SY)
(B) P(SX), P(SY); P(SY), P(SX)
(C) P(SX), P(SX); P(SY), P(SY)
(D) P(SX), P(SY); P(SX), P(SY)

Respuesta: (D)
Explicación:

Option A: In line L1 ( p(Sy) ) i.e. process p1 wants lock on Sy that is 
held by process p2 and line L3 (p(Sx)) p2 wants lock on Sx which held by p1. 
So here circular and wait condition exist means deadlock.
Option B : In line L1 ( p(Sx) ) i.e. process p1 wants lock on Sx that is held 
by process p2 and line L3 (p(Sy)) p2 wants lock on Sx which held by p1. So here 
circular and wait condition exist means deadlock.
Option C: In line L1 ( p(Sx) ) i.e. process p1 wants lock on Sx and line L3 (p(Sy)) 
p2 wants lock on Sx . But Sx and Sy can’t be released by its processes p1 and p2.

Lea lo siguiente para obtener más información sobre la sincronización de procesos y los semáforos:
Conjunto de sincronización de procesos 1

Esta explicación ha sido aportada por Dheerendra Singh.
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 *