Архитектура современных операционных систем
136 Для синхронизации между процессорами используется механизм Spin- блокировка. Это специальный флаг, расположенный в глобальных данных ядра, связанный с какой-либо структурой данных (СД) ядра. Процессор 1 Процессор 2 Dо Проверить и установить СБ DPC until (успех) Удалить элемент DPC Сбросить СБ DPC Dо Проверить и установить СБ DPC until (успех) Удалить элемент DPC Сбросить СБ DPC Рис. 4.18. Перед тем как обратиться к СД ядра, любой процесс или компонент испол- нительной системы должен сначала проверить связанную с этой структурой Spin-блокировку и, если она еще не установлена, установить ее, указав тем са- мым, что структура занята, а после завершения работы освободить ее. Поскольку речь идет о межпроцессорной синхронизации, такая проверка должна выполняться одной командой, поэтому во многих современных архи- тектурах существует команда «проверить и установить». Работа со Spin-блокировкой (СБ) представлена схемой на рис. 4.18. Spin-блокировки используются не только в самом ядре. Они очень широко используются драйверами. Например, для доступа к регистрам устройств или очереди запросов ввода/вывода к драйверу. Поскольку работа в spin-блокировке практически блокирует процессор, внутри spin-блокировок не должны выполняться сложные вычисления и пере- дача управления вне секции spin-блокировки. Очередь DPC
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy