Рубрики

ВОРОТА | GATE-CS-2004 | Вопрос 48

Рассмотрим два процесса P1 и P2, обращающихся к общим переменным X и Y, защищенным двумя двоичными семафорами SX и SY соответственно, оба инициализированы равными 1. P и V обозначают обычные операторы семафона, где P уменьшает значение семафора, а V увеличивает значение семафора. , Псевдокод P1 и P2 выглядит следующим образом:

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);            
}

Чтобы избежать тупика, правильные операторы в L1, L2, L3 и L4 соответственно
(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)

Ответ: (D)
Объяснение:

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.

Пожалуйста, прочитайте следующее, чтобы узнать больше о синхронизации процессов и семафорах:
Синхронизация процессов, набор 1

Это объяснение было внесено Dheerendra Singh.
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2004 | Вопрос 48

0.00 (0%) 0 votes