Обобщенная таблица механизмов синхронизации
В таблице 9 представлены механизмы синхронизации и особенности использования каждого из них.
Таблица 9
Объект
синхронизации
|
Уровень
IRQL, на котором может работать запрашивающий синхронизацию поток
|
Уровень
IRQL, на котором будет работать запросивший синхронизацию поток
при освобождении объекта синхронизации или его пе- реходе в сигнальное
состояние
|
|
Запрос
без блокирования потока
|
Запрос
с блокированием потока.
|
||
Стандартная
спин- блокировка (Stan- dard Spin Lock)
|
<=
DISPATCH_LEVEL
|
DISPATCHJLEVEL
|
|
Спин-блокировка
для ISR, определенная по умолчанию (Default ISR Spin Lock)
|
<=
DIRQL
|
DIRQL
|
|
Спин-блокировка
для синхронизации с ISR (ISR Synchro nize Spin Lock)
|
<=
Specified DIRQL
|
Specified
DIRQL
|
|
Мьютекс
(Mutex)
|
<=DISPATCH_LEVEL
|
<DISPATCH
LEVEL
|
<=DISPATCH_LEVEL
|
Семафор
(Sema- phore)
|
<=DISPATCKLLEVEL
|
<DISPATCH_LEVEL
|
<=DISPATCH_LEVEL
|
Событие
синхронизации (Synchronization Event)
|
<=DISPATCH_LEVEL
|
<DISPATCH_LEVEL
|
<=DISPATCH_LEVEL
|
Событие
уведомления (Notification Event)
|
<=DISPATCH_LEVEL
|
<DISPATCH_LEVEL
|
<=DISPATCH_LEVEL
|
Таймер
синхронизации (Synchronization Timer)
|
<=DISPATCH_LEVEL
|
<DISPATCH_LEVEL
|
-
|
Таймер
уведомления (Notification Timer)
|
<=DISPATCH_LEVEL
|
<DISPATCH_LEVEL
|
-
|
Процесс
(Process)
|
<=DISPATCH_LEVEL
|
<DISPATCH_LEVEL
|
-
|
Поток (Thread)
|
<=DISPATCH_LEVEL
|
<DISPATCH_LEVEL
|
-
|
Файл (File)
|
<=DISPATCH_LEVEL
|
<DISPATCfi_LEVEL
|
-
|
Ресурсы
(Resources)
|
<
DISPATCH_LEVEL
|
<DISPATCH_LEVEL
|
<=DISPATCH_LEVEL
|