Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8. Процеси _ потоки..doc
Скачиваний:
2
Добавлен:
16.09.2019
Размер:
119.81 Кб
Скачать

4.1.3 Объект-процесс

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

Диспетчер процессов определяет атрибуты, хранящиеся в теле объектов-процессов, а также предоставляет системные сервисы для чтения и изменения этих атрибутов. Атрибуты и сервисы для объектов-процессов показаны на рис. 4-3.

Рис. 4-3. Объект-процесс,

Обратите внимание, что таблица объектов и описание адресного пространства не показаны как часть объекта-процесса. Причина в том, что они, хотя и связаны с процессом, но не могут быть изменены процессами пользовательского режима напрямую. На рисунке изображены только те данные, которые код пользовательского режима может считывать или изменять путем вызова сервисов объекта-процесса. В табл. 4-1 приведены атрибуты объекта-процесса.

Таблица 4-1. Атрибуты объекта - процесса

Атрибут

Назначение

Идентификатор процесса

Уникальное значение, идентифицирующее процесс в ОС

Маркер доступа

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

Базовый приоритет

Базовый приоритет потоков процесса

Процессорное сродство по умолчанию

Набор процессоров, на которых потоки процесса могут исполняться по умолчанию

Размеры квот

Максимальный объем резидентной и нерезидентной системной памяти, пространства в файле подкачки и процессорного времени, выделяемый пользовательскому процессу

Время выполнения

Общее время выполнения всех потоков процесса

Счетчики ввода-вывода

Переменные, в которых записывается число и тип операций ввода-вывода, выполненных потоками процесса

Счетчики операций виртуальной памяти

Переменные, в которых записывается число и тип операций виртуальной памяти, выполненных потоками процесса

Порты исключений-отладки

Каналы коммуникаций между процессами, по которым диспетчер процессов посылает сообщение, если один из потоков процесса вызывает исключение

Код завершения

Причина завершения процесса

Некоторые атрибуты объекта-процесса налагают ограничения на потоки, исполняемые внутри процесса. Например, на многопроцессорном компьютере процессорное сродство может ограничить исполнение потоков процесса подмножеством всех доступных процессоров. Аналогично, размеры квот регулируют, сколько памяти, пространства файла подкачки и времени процессора могут использовать все потоки процесса вместе.

Базовый приоритет процесса помогает ядру NT регулировать приоритет потоков в системе. Приоритеты отдельных потоков изменяются, но всегда остаются в диапазоне базовых приоритетов их процессов. Подсистемы среды могут использовать базовый приоритет, чтобы повлиять на то, потоки какого процесса будут выбраны ядром NT для исполнения в первую очередь. Например, подсистема Win32 при помощи сервисов NT повышает базовый приоритет процесса выбранного пользователем приложения и понижает базовый приоритет процессов фоновых приложений, давая интерактивным приложениям преимущество над другими (см. разд. 4.2.3.) Размеры квот, процессорное сродство и базовый приоритет входят в состав тех атрибутов и структур данных процесса, которые могут наследоваться от него другим процессом. Наследование процессов описано в разд. 4.3.2.1.

Порты исключений и отладки процесса — это каналы коммуникаций между процессами, по которым ОС посылает сообщения, если один из потоков процесса возбуждает исключение или если идет отладка процесса. Поток другого процесса ожидает у порта для приема сообщения и соответствующих действий. Например, поток подсистемы среды может "слушать" у порта исключений для перехвата ошибок ее клиентских процессов, а отладчик может перехватывать исключения, такие как отладочные точки останова. (Более подробную информацию об объектах-портах и подсистемах среды см. в гл. 5, "Windows и защищенные подсистемы".)

Назначение большинства сервисов объекта-процесса очевидно. Сервис создания процесса гибок и дает возможность разным подсистемам создавать процессы с разными начальными атрибутами. Сервис текущего процесса позволяет процессу быстро получить собственный описатель, не обращаясь к диспетчеру объектов. Сервис завершения процесса останавливает исполнение его потоков, закрывает все открытые описатели объектов и уничтожает виртуальное адресное пространство процесса.

Сервисы виртуальной памяти, показанные на рис. 4-2, на самом деле реализованы диспетчером виртуальной памяти, однако каждому из них необходим описатель процесса, чтобы указать, к виртуальной памяти какого процесса будет осуществляться доступ. Операции с виртуальной памятью описаны в гл. 6, "Диспетчер виртуальной памяти".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]