Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
У. Столлингс ГЛАВА 4 Потоки.doc
Скачиваний:
49
Добавлен:
11.05.2015
Размер:
6.22 Mб
Скачать

4.4. Потоки и smp в windows 2000

Процессы в операционной системе Windows 2000 (W2K) организованы так, чтобы обеспечить поддержку различных операционных, сред. Процессы, в раз­личных средах отличаются по ряду параметров, включая следующие:

  • именование процессов;

  • возможность поддержки потоков в процессах;

  • способ представления процессов;

  • способ защиты ресурсов процессов;

  • механизмы, использующиеся для обмена информацией между процессами и для их синхронизации;

  • взаимосвязь процессов друг с другом.

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

  • в W2K процессы реализованы как объекты;

  • в исполняемом процессе могут содержаться один или несколько потоков;

  • в объекты-процессы и объекты-потоки встроены возможности синхронизации.

На рис. 4.12 проиллюстрирован способ взаимосвязи между процессом и ре­сурсом, которым этот процесс управляет или который он использует. В целях безопасности каждому процессу присваивается признак доступа, который назы­вается первичным признаком процесса. При входе пользователя в систему W2K создает признак доступа, в который входит идентификатор безопасности пользо­вателя. Каждый процесс, который создается данным пользователем или запуска­ется от его имени, обладает копией этого признака. Указанный признак исполь­зуется операционной системой W2K, чтобы подтвердить возможность доступа пользователя к защищенным объектам или возможность выполнения специаль­ных функций в системе и в защищенных объектах. Признак доступа управляет возможностью изменения процессом своих собственных атрибутов.

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

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

Объекты процессов и потоков

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

Каждый процесс в операционной системе W2K представлен объектом, об­щая структура которого показана на рис. 4.13,а. Каждый процесс определяется некоторым числом атрибутов и может предоставлять определенные сервисы, ко­торые он выполняет после получения соответствующего сообщения-запроса. Единственный способ вызвать такой сервис — отправка сообщения процессу, ко­торый его предоставляет. При создании нового процесса операционная система W2K использует класс или тип объектов, определенный как шаблон процесса для генерации новых экземпляров объектов. Во время создания объекта его ат­рибутам присваиваются конкретные значения. В табл. 4.3 приводится краткое описание каждого атрибута процессов.

Таблица 4.3. Атрибуты процесса в операционной системе Windows 2000

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

Дескриптор защиты Описывает, кто создал объект, кто обладает правом доступа к нему или может им пользоваться и кто определяет права доступа к объекту

Базовый приоритет Базовый приоритет выполнения потока, принадлежащего процессу

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

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

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

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

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

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

Порты Каналы обмена информацией между процессами, в которые

исключений/отладки диспетчер процессов должен отправить сообщение при возникновении исключительной ситуации из-за одного из пото­ков процесса

Статус выхода Причина завершения процесса

В операционной системе W2K процесс перед выполнением должен содер­жать хотя бы один поток, который затем может создавать другие потоки. В мно­гопроцессорной системе несколько потоков одного и того же процесса могут вы­полняться параллельно. На рис. 4.13,6 изображена структура объекта потока, а в табл. 4.4 определены его атрибуты. Заметим, что некоторые атрибуты потока подобны атрибутам процесса. Значения таких атрибутов потока извлекаются из значений соответствующих атрибутов процесса. Например, в многопроцессорной системе сродные потоку процессоры — это множество процессоров, на которых может выполняться данный поток; это множество совпадает с множеством про­цессоров, сродных процессу, или является его подмножеством.

Таблица 4.4. Атрибуты потока в операционной системе Windows 2000

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

Контекст потока Набор значений регистров и другие данные, которыми определяется состояние выполнения потока

Динамический приоритет Приоритет выполнения потока в данный момент времени

Базовый приоритет Нижний предел динамического приоритета потока

Процессоры потока Множество процессоров, на которых может выполняться поток. Это множество является подмножеством процессоров, сродных процессу потока, или совпадает с ним

Время выполнения потока Совокупное время, затраченное на выполнение потока в пользовательском режиме и в режиме ядра

Статус оповещения Флаг, который указывает, следует ли потоку выполнять асинхронный вызов процедуры

Счетчик приостановок В нем указывается, сколько раз выполнение потока было приостановлено без последующего возобновления

Признак имперсонации Временный признак доступа, позволяющий потоку выпол­нять операции от имени другого процесса (используется подсистемами)

Порт завершения Канал обмена информацией между процессами, на кото­рый диспетчер процессов должен отправить сообщение при завершении потока (используется подсистемами)

Статус выхода потока Причина завершения потока

Заметим, что одним из атрибутов процесса является его контекст. Содер­жащаяся в контексте информация позволяет операционной системе приостанав­ливать и возобновлять потоки. Более того, приостановив поток и изменив его контекст, можно изменить его поведение.