Общие сведения об объектах потоков

Объект потока пользовательского режима представляет путь выполнения в рамках текущего процесса. Каждый объект потока пользовательского режима реализуется с помощью внедренного объекта потока в режиме ядра.

Объект потока режима ядра — это экземпляр определенного ядром типа объекта диспетчера. Поток, который он представляет, является базовой сущностью schedulable в операционной системе.

Объект потока:

  • Отправляется для выполнения ядром.

  • Имеет следующие свойства в любой момент:

    • состояние диспетчеризации

    • priority

    • context

    • Режим выполнения (ядро или пользователь)

    • affinity

  • Является "владельцем" объекта процесса, но может присоединиться к адресной области другого процесса.

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

FSs (и другие драйверы) могут настраивать выделенные для устройства потоки (системные процессы) и (или) FS могут использовать системные рабочие потоки, если им требуется контекст потока, зависят от драйвера, в котором выполняется выполнение. Драйверы используют подпрограммы PsXxx в режиме ядра для создания процессов и (или) выделенных устройств потоков. FSs вызывают подпрограммы ExXxx для использования системных рабочих потоков.