Главная / Операционные системы /
Основы организации операционных систем Microsoft Windows / Тест 8
Основы организации операционных систем Microsoft Windows - тест 8
Упражнение 1:
Номер 1
Критическая секция — это:
Ответ:
 (1) участок программы, выполнение которого может привести к недетерминизму в вычислениях
 
 (2) ресурс, использование которого может привести к race condition
 
 (3) неожиданно возникшая, неблагоприятная для получения правильных результатов ситуация
 
Номер 2
Какое из перечисленных утверждений является правильным?
Ответ:
 (1) критическая секция необходима для обеспечения эксклюзивного доступа к разделяемому ресурсу  
 (2) для решения проблемы синхронизации необходимо обеспечить взаимоисключение для критических секций потоков
 
 (3) доступ к разделяемым ресурсам осуществляется внутри критических секций потоков
 
Номер 3
Наиболее важным с точки зрения задач синхронизации является:
Ответ:
 (1) принятие решения о допуске в критическую секцию
 
 (2) максимально быстрое выполнение критической секции  
 (3) обеспечение эксклюзивного доступа к ресурсам вне критических секций
 
Номер 4
Проблема синхронизации обычно решается…
Ответ:
 (1) внутри критической секции
 
 (2) при входе в критическую секцию
 
 (3) на выходе из критической секции
 
Упражнение 2:
Номер 1
Одним из решений проблемы синхронизации является использование переменной замка (lock)
. При этом вхождение в критическую секцию осуществляется при помощи операций while(lock)
; и lock=1
;. Недостатком данного решения является:
Ответ:
 (1) бесконечно долгое выполнение операции while(lock)
;
 
 (2) затраты времени на опрос переменной lock
 
 (3) возможность вытеснения потока между этими двумя операциями
 
Номер 2
Одним из решений проблемы синхронизации является использование переменной замка (lock)
. При этом вхождение в критическую секцию осуществляется при помощи операций while(lock)
; и lock=1
;. Для корректного использования переменной замка необходимо:
Ответ:
 (1) добиться непрерывности выполнения этих операций
 
 (2) добиться максимально быстрого выполнения операции while(lock)
;
 
 (3) сделать переменную lock
недоступной другим потокам
 
Номер 3
Одним из решений проблемы синхронизации является использование переменной замка (lock)
. При этом вхождение в критическую секцию осуществляется при помощи операций while(lock)
; и lock=1
;.
Непрерывность (атомарность) выполнения этих операций:
Ответ:
 (1) может быть обеспечена за счет максимально быстрого выполнения первой операции
 
 (2) может быть обеспечена с помощью TSL команды
 
 (3) не может быть обеспечена и это является принципиальным недостатком данного подхода
 
Упражнение 3:
Номер 1
Атомарность (непрерывность) выполнения нескольких операций может быть обеспечена путем использования:
Ответ:
 (1) переменной-замка
 
 (2) TSL команд
 
 (3) Interlocked
-функций
 
Номер 2
Атомарность выполнения Interlocked
-функций реализуется за счет:
Ответ:
 (1) быстрого выполнения в пользовательском режиме работы процессора
 
 (2) посылки аппаратного сигнала по шине для закрытия конкретного адреса памяти
 
 (3) маскировки прерываний таймера, в результате чего поток выполняется без вытеснения
 
Номер 3
Удобство использования Interlocked
-функций для задач синхронизации обеспечивается…
Ответ:
 (1) их быстрым выполнением в непривилегированном режиме работы процессора
 
 (2) тем, что они помогают избегать спин-блокировок
 
Упражнение 4:
Номер 1
Спин-блокировкой называется:
Ответ:
 (1) поведение потока, связанное с его вращением в пустом цикле и опросом значения некоторой переменной
 
 (2) блокирование входа в критическую секцию для других активных потоков
 
 (3) организация циклов внутри критических секций для решения проблем синхронизации
 
Номер 2
Применение спин-блокировки на многпроцессорных комплексах:
Ответ:
 (1) сопровождается теми же пустыми затратами машинного времени, что и на однопроцессорных
 
 (2) имеет смысл, так как, пока один из потоков крутится в цикле, другой может изменить значение переменной-замка
 
Номер 3
Использование спин-блокировки:
Ответ:
 (1) является бессмысленной тратой времени
 
 (2) оправдано, поскольку у активно ожидающего потока есть шанс быстро войти в критическую секцию, не будучи блокированным
 
Номер 4
Число циклов, которое проводит поток в состоянии активного ожидания:
Ответ:
 (1) зависит только от момента разблокировки переменной-замка другим потоком  
 (2) может быть регламентировано с помощью функций Win32-API
 
 (3) обусловлено скоростью выполнения Interlocked
-функций (не более 50 тактов работы процессора)
 
Упражнение 5:
Номер 1
Win32-функции EnterCriticalSection
и LeaveCriticalSection
…
Ответ:
 (1) являются универсальным средством синхронизации
 
 (2) обычно используются для синхронизации потоков одного процесса
 
 (3) используются для синхронизации потоков одного процесса только на однопроцессорных машинах  
Номер 2
Для синхронизации потоков различных процессов принято использовать:
Ответ:
 (1) Win32-функции EnterCriticalSection
и LeaveCriticalSection
 
 (2) объекты ядра; причем почти все объекты, даже такие, как файлы и потоки, пригодны для этих целей
 
 (3) только объекты ядра, такие, как семафоры и мьютексы, которые непосредственно предназначены для решения проблем синхронизации
 
Номер 3
Для решения проблем синхронизации обычно используются семафоры, события, мьютексы. Можно ли для решения задач синхронизации использовать такие объекты, как потоки, процессы, файлы?
Ответ:
 (1) да  
 (2) нет  
 (3) можно использовать только объекты в сигнальном состоянии
 
Упражнение 6:
Номер 1
Отличие мьютекса от семафора состоит в том, что …
Ответ:
 (1) он не содержит счетчиков и регулирует доступ к единственному ресурсу  
 (2) только поток, занявший мьютекс, может освободить этот мьютекс
 
 (3) для блокировки потока на мьютексе не может использоваться синхронизирующая функция WaitForSingleObject
 
Номер 2
Функция WaitForSingleObject
…
Ответ:
 (1) переводит объект в занятое состояние
 
 (2) переводит объект в свободное состояние
 
 (3) может быть использована только для объектов "событие"
 
Номер 3
В состав параметров синхронизирующей функции WaitForSingleObject
входит описатель объекта. Для того чтобы воспользоваться данной функцией, поток может:
Ответ:
 (1) создать объект  
 (2) открыть объект  
 (3) находится в составе процесса, один из потоков которого открыл объект