Наверх Системное программирование
Предыдущий раздел Оглавление Следующий раздел

2.3.1.2. Уровень ядра

Уровень NTOS, находящийся над уровнем HAL, состоит из двух подуровней: ядра и исполнительной системы. Уровень ядра в операционной системе Windows, показанный на рис. 2.3 над исполнительным уровнем, предоставляет набор абстракций для управления процессором. Понятие потока является центральной абстракцией, но ядро реализует также и некоторые виды прерываний, ловушки и обработку исключений. В исполнительном уровне реализуется создание и уничтожение структур данных, поддерживаемых потоками. Планирование и синхронизация потоков происходит именно на уровне ядра. Исполнительный уровень может реализовать модель многопоточности с вытеснением, которая используется для распараллеливания потоков в пользовательском режиме, при условии узкоспециализированности примитивов синхронизации на исполнительном уровне.

За выполнение потоков на процессорах системы отвечает планировщик потоков ядра. Поток будет выполняться до тех пор, пока очередное прерывание таймера не просигнализирует об окончании выделенного для потока кванта, или до момента, когда поток переходит в состояние ожидания (например, снятия блокировки или завершения операции ввода-вывода), либо до тех пор, пока поток с более высоким приоритетом не перейдет в состояние готовности. Планировщик при переключении контекста должен обеспечить сохранение регистров и информации о состоянии оборудования. После выбора планировщиком другого потока на выполнение он должен восстановить для выбранного потока его состояние, которое было сохранено ранее. Планировщик также изменяет адресное пространство потока, если тот принадлежит другому процессу.

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

Предыдущий раздел Оглавление Следующий раздел