Поделиться через


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

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

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

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

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

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

    • Состояние отправки

    • приоритет

    • контекст

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

    • сходство

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

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

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