Рубрики

ВОРОТА | Gate IT 2005 | Вопрос 42

Два параллельных процесса P1 и P2 используют четыре общих ресурса R1, R2, R3 и R4, как показано ниже.

P1P2
Compute:
Use R1;
Use R2;
Use R3;
Use R4;
Compute;
Use R1;
Use R2;
Use R3;.
Use R4;

Оба процесса запускаются одновременно, и каждый ресурс может быть доступен только одному процессу одновременно. Существуют следующие ограничения планирования между доступом ресурсов к процессам:

  • P2 должен завершить использование R1, прежде чем P1 получит доступ к R1
  • P1 должен завершить использование R2, прежде чем P2 получит доступ к R2.
  • P2 должен завершить использование R3, прежде чем P1 получит доступ к R3.
  • P1 должен завершить использование R4, прежде чем P2 получит доступ к R4.

Других ограничений планирования между процессами нет. Если для реализации вышеуказанных ограничений планирования используются только двоичные семафоры, какое минимальное количество двоичных семафоров требуется?

(А) 1
(Б) 2
(С) 3
(D) 4

Ответ: (Б)
Объяснение:
Мы используем два семафора: A и B.
A инициализируется до 0, а B инициализируется до 1.

P1:

Compute; Wait(A); Use R1; Use R2; Signal(B); Wait(A); Use R3; Use R4; Signal(B);
 
P2:
Compute; Wait(B); Use r1; Signal(A); Wait(B); Use R2; Use R3; Signal(A); Wait(B); Use R4; Signal(B);

В процессе p1 изначально управление будет зациклено в цикле wait (A), потому что A = 0.
В процессе p2 Wait (B) уменьшает значение B до 0. Теперь P2 использует ресурс R1 и увеличивает значение до A до 1, чтобы процесс P1 мог войти в свой критический раздел и использовать ресурс R1.

Таким образом, P2 завершит использование R1 до того, как P1 получит доступ к R1.

Теперь в P2 значения B = 0. Таким образом, P2 не может использовать ресурс R2, пока P1 не использует R2 и не вызовет функцию Signal (B) для увеличения значения B до 1.
Таким образом, P1 завершит использование R2 до того, как P2 получит доступ к R2.

Теперь семафор A = 0. Таким образом, P1 не может выполняться дальше и застревает в цикле функции Wait (A).
Процесс P2 использует R3 и увеличивает значение семафора A до 1. Теперь P1 может войти в свою критическую секцию, чтобы использовать R3.
Таким образом, P2 завершит использование R3 до того, как P1 получит доступ к R3.

Теперь P1 будет использовать R4 и увеличивает значение B до 1, чтобы P2 мог войти в критическую секцию для использования R4.
Таким образом, P1 завершит использование R4 до того, как P2 получит доступ к R4.

Таким образом, вариант (B) является правильным.

Пожалуйста, прокомментируйте ниже, если вы найдете что-то не так в вышеуказанном посте.

Тест на этот вопрос

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

ВОРОТА | Gate IT 2005 | Вопрос 42

0.00 (0%) 0 votes