Объект-нить имеет следующие атрибуты:
· идентификатор клиента - уникальное значение, которое идентифицирует нить при ее обращении к серверу;
· контекст нити - информация, которая необходима ОС для того, чтобы продолжить выполнение прерванной нити. Контекст нити содержит текущее состояние регистров, стеков и индивидуальной области памяти, которая используется подсистемами и библиотеками;
· динамический приоритет - значение приоритета нити в данный момент;
· базовый приоритет - нижний предел динамического приоритета нити;
· процессорная совместимость нитей - перечень типов процессоров, на которых может выполняться нить;
· время выполнения нити - суммарное время выполнения нити в пользовательском режиме и в режиме ядра, накопленное за период существования нити;
· cостояние предупреждения - флаг, который показывает, что нить должна выполнять вызов асинхронной процедуры;
· счетчик приостановок - текущее количество приостановок выполнения нити.
Кроме перечисленных, имеются и некоторые другие атрибуты.
Как видно из перечня, многие атрибуты объекта-нити аналогичны атрибутам объекта-процесса. Весьма сходны и сервисные функции, которые могут быть выполнены над объектами-процессами и объектами-нитями: создание, открытие, завершение, приостановка, запрос и установка информации, запрос и установка контекста и другие функции.
Алгоритм планирования процессов и нитей
В Windows NT реализована вытесняющая многозадачность, при которой операционная система не ждет, когда нить сама захочет освободить процессор, а принудительно снимает ее с выполнения после того, как та израсходовала отведенное ей время (квант), или если в очереди готовых появилась нить с более высоким приоритетом.