Рубрики

Операционные системы | Управление процессами | Вопрос 6

Три параллельных процесса X, Y и Z выполняют три разных сегмента кода, которые обращаются к определенным общим переменным и обновляют их. Процесс X выполняет операцию P (т. Е. Ожидание) на семафорах a, b и c; процесс Y выполняет операцию P на семафорах b, c и d; Процесс Z выполняет операцию P на семафорах c, d и a перед вводом соответствующих сегментов кода. После завершения выполнения своего сегмента кода каждый процесс вызывает операцию V (т. Е. Сигнал) на своих трех семафорах. Все семафоры являются двоичными семафорами, инициализированными в один. Что из следующего представляет порядок без блокировки для запуска P-процессов процессами? (GATE CS 2013)
(A) X: P (a) P (b) P (c) Y: P (b) P (c) P (d) Z: P (c) P (d) P (a)
(B) X: P (b) P (a) P (c) Y: P (b) P (c) P (d) Z: P (a) P (c) P (d)
(C) X: P (b) P (a) P (c) Y: P (c) P (b) P (d) Z: P (a) P (c) P (d)
(D) X: P (a) P (b) P (c) Y: P (c) P (b) P (d) Z: P (c) P (d) P (a)

Ответ: (Б)
Объяснение: Опция A может вызвать взаимоблокировку. Представьте себе ситуацию, когда процесс X получил a, процесс Y получил b, а процесс Z получил c и d. Сейчас круговое ожидание.

Вариант C также может вызвать тупик. Представьте себе, что процесс X приобрел b, процесс Y приобрел c, а процесс Z приобрел a. Сейчас круговое ожидание.

Вариант D также может вызвать тупик. Представьте себе ситуацию, когда процесс X приобрел a и b, процесс Y приобрел c. X и Y по кругу ждут друг друга.

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

Операционные системы | Управление процессами | Вопрос 6

0.00 (0%) 0 votes