Рубрики

ВОРОТА | GATE-CS-2014- (Set-2) | Вопрос 41

Рассмотрим приведенную ниже процедуру для проблемы «производитель-потребитель», в которой используются семафоры

Что из следующего является ИСТИННЫМ?
(A) Производитель сможет добавить элемент в буфер, но потребитель никогда не сможет его использовать.
(B) Потребитель удалит не более одного элемента из буфера.
(C) тупик возникает, если потребителю удается получить семафоры, когда буфер пуст.
(D) Начальное значение для семафора n должно быть 1, а не 0 для работы без блокировки.

Ответ: (с)
Объяснение: Изначально в буфере нет элемента.
Семафор s = 1 и семафор n = 0 .
Мы предполагаем, что изначально контроль переходит к потребителю, когда буфер пуст.

semWait (s) уменьшает значение семафора 's'. Теперь s = 0 и semWait (n) уменьшает значение семафора 'n'.
Так как значение семафора 'n' становится меньше 0, элемент управления зацикливается на цикле функции semWait () и возникает тупик.
Таким образом, тупик возникает, если потребителю удается получить семафоры, когда буфер пуст.

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

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

ВОРОТА | GATE-CS-2014- (Set-2) | Вопрос 41

0.00 (0%) 0 votes