Рубрики

ВОРОТА | GATE-CS-2006 | Вопрос 61

Команда атомарного извлечения-и-установки x, y безоговорочно устанавливает ячейку памяти x в 1 и извлекает старое значение xny без какого-либо промежуточного доступа к ячейке памяти x. рассмотрим следующую реализацию функций P и V на двоичном семафоре S.

void P (binary_semaphore *s)
{
    unsigned y;
    unsigned *x = &(s->value);
    do
    {
        fetch-and-set x, y;
    }
    while (y);
}
void V (binary_semaphore *s)
{
    S->value = 0;
} 

Что из следующего верно?
(A) Реализация может не работать, если переключение контекста отключено в P
(B) Вместо использования fetch-and -set может использоваться пара нормальной загрузки / сохранения
(C) Реализация V является неправильным
(D) Код не реализует двоичный семафор

Ответ: (А)
Пояснение: см. Вопрос 3 по адресу http://espressocode.top/operating-systems-set-15/
Тест на этот вопрос

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

ВОРОТА | GATE-CS-2006 | Вопрос 61

0.00 (0%) 0 votes