Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5.14.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.68 Mб
Скачать

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

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

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

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

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

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

Атрибут

Назначение

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

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

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

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

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

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

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

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

Размеры квот

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Поток. Многозадачность и мультипроцессорная обработка.

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