<<
>>

События с ключом и критические секции

Синхронизирующий объект, впервые появившийся в Windows XP и названный событием с ключом (keyed event), заслуживает особого упоминания. Он помогает процессам справляться с нехваткой памяти при использовании критических секций.

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

Windows-процессы часто используют функции критических секций — EnterCriticalSection и LeaveCriticalSection — для синхронизации доступа потоков к личным ресурсам процесса. Вызовы этих функций эффективнее прямого обращения к объектам «мьютекс», так как в отсутствие конкуренции они не заставляют переходить в режим ядра. При наличии конкуренции EnterCriticalSection динамически создает объект «событие», и поток, которому нужно захватить критическую секцию, ждет, когда поток, владеющий этой секцией, освободит ее вызовом LeaveCriticalSection.

Если создать объект «событие» для критической секции не удалось из-за нехватки системной памяти, EnterCriticalSection использует глобальное событие с ключом — CritSecOutOjMemoryEvent (в каталоге \Ker-nel пространства имен диспетчера объектов). Если EnterCritica amp;ection вынуждена задействовать CritSecOutOjMemoryEvent вместо стандартного события, поток, ждущий критическую секцию, использует адрес этой секции как ключ. Это обеспечивает корректную работу функций критических секций даже в условиях временной нехватки памяти.

Мы не ставили себе задачу исчерпывающе описать все объекты исполнительной системы, а лишь хотели дать представление об их базовой функциональности и механизмах синхронизации. Об использовании этих объектов в Windows-программах см. справочную документацию Windows или четвертое издание книги Джеффри Рихтера «Windows для профессионалов».

<< | >>
Источник: М.Руссинович, Д.Соломон. Внутреннее устройство Microsoft Windows (главы 1–4). 2005

Еще по теме События с ключом и критические секции:

  1. ПЛАНИРУЯ КАКОЕ-ТО СОБЫТИЕ, ЗАДЕРЖИТЕ В СЕБЕ ЭНЕРГИЮ, А НЕ ВЫПЛЕСКИВАЙТЕ ЕЕ В ЭМОЦИИ ИЛИ В СЛОВА. ЭНЕРГИЯ НУЖНА ДЛЯ ФОРМИРОВАНИЯ ЭТОГО СОБЫТИЯ.
  2. Тренировка с Ключом
  3. ПОДБЕРИТЕ КЛЮЧ К СЕБЕ. «ТРЕНИРОВКА С КЛЮЧОМ».
  4. Тест до начала первой тренировки с Ключом.
  5. Глава седьмая ОТКРОЙ ДВЕРЬ СВОИМ КЛЮЧОМ
  6. Тренировка с Ключом. (первая, общая антистрессовая часть Ключа)
  7. На что мы настраиваемся при тренировке с Ключом.
  8. На что мы настраиваемся при тренировке с Ключом.
  9. Критические градусы
  10. Тест до начала первой тренировки с Ключом.
  11. ПОДБЕРИТЕ КЛЮЧ К СЕБЕ. «ТРЕНИРОВКА С КЛЮЧОМ».
  12. Ключом приятно пользоваться.
  13. Ключом приятно пользоваться.
  14. Что вы получите в результате пяти получасовых тренировок с Ключом.
  15. Что вы получите в результате пяти получасовых тренировок с Ключом.
  16. ПСИХОЛОГИЯ КРИТИЧЕСКАЯ
  17. 5. Критическая теория и рабочий класс.