Команда атомарного извлечения и установки x, y безоговорочно устанавливает ячейку памяти x в 1 и извлекает старое значение x в y, не допуская какого-либо промежуточного доступа к ячейке памяти x. рассмотрим следующую реализацию функций P и V на двоичном семафоре.
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) Код не реализует двоичный семафор
Ответ: (А)
Пояснение: Давайте поговорим об операции P (). Он хранит значение s в x, затем выбирает старое значение x, сохраняет его в y и устанавливает x равным 1. Цикл while процесса будет продолжаться вечно, если какой-то другой процесс не выполнит V (), и устанавливает значение s равно 0. Если переключение контекста в P отключено, цикл while будет выполняться вечно, поскольку никакой другой процесс не сможет выполнить V ().
Рекомендуемые посты:
- Операционные системы | Управление процессами | Вопрос 6
- Операционные системы | Управление процессами | Вопрос 6
- Операционные системы | Управление процессами | Вопрос 6
- Операционные системы | Управление процессами | Вопрос 6
- Операционные системы | Управление процессами | Вопрос 6
- Операционные системы | Системы ввода-вывода | вопрос 2
- Операционные системы | Системы ввода-вывода | Вопрос 5
- Операционные системы | Системы ввода-вывода | Вопрос 4
- Операционные системы | Системы ввода-вывода | Вопрос 5
- Операционные системы | Планирование ЦП | Вопрос 3
- Операционные системы | Тупик | Вопрос 1
- Операционные системы | Планирование ЦП | Вопрос 5
- Операционные системы | Тупик | вопрос 2
- Операционные системы | Планирование ЦП | Вопрос 7
- Операционные системы | Планирование ЦП | Вопрос 6
0.00 (0%) 0 votes