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


 

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

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

 


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

 

Идентификатор процесса Уникальное значение, идентифицирующее процесс в операционной системе   Дескриптор защиты Описывает, кто создал объект, кто обладает правом доступа к нему или может им пользоваться и кто определяет права доступа к объекту   Базовый приоритет Базовый приоритет выполнения потока, принадлежащего процессу   Процессор по умолчанию Заданный по умолчанию набор процессоров, на котором воз­можно выполнение потоков процесса   Квоты Максимальное количество страничной и прочей системной памяти, объем в страничном файле и процессорное время, доступные данному процессу Время выполнения Суммарное время, затраченное на выполнение всех потоков процесса Счетчики ввода-вывода Переменные, в которые заносятся сведения о количестве и типе операций ввода-вывода, выполненных потоками процесса
Счетчики операций Переменные, в которые заносятся сведения о количестве и с виртуальной памятью типе операций с виртуальной памятью, выполненных потоками процесса   Порты Каналы обмена информацией между процессами, в которые исключений/отладки диспетчер процессов должен отправить сообщение при возникновении исключительной ситуации из-за одного из пото­ков процесса   Статус выхода Причина завершения процесса

 

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

 

Таблица 4.4. Атрибуты потока в операционной системе Windows 2000   Идентификатор потока Уникальное значение, идентифицирующее поток, когда он вызывает сервис   Контекст потока Набор значений регистров и другие данные, которыми определяется состояние выполнения потока   Динамический приоритет Приоритет выполнения потока в данный момент времени   Базовый приоритет Нижний предел динамического приоритета потока   Процессоры потока Множество процессоров, на которых может выполняться поток. Это множество является подмножеством процессоров, сродных процессу потока, или совпадает с ним   Время выполнения потока Совокупное время, затраченное на выполнение потока в пользовательском режиме и в режиме ядра   Статус оповещения Флаг, который указывает, следует ли потоку выполнять асинхронный вызов процедуры   Счетчик приостановок В нем указывается, сколько раз выполнение потока было приостановлено без последующего возобновления   Признак имперсонации Временный признак доступа, позволяющий потоку выпол­нять операции от имени другого процесса (используется подсистемами)   Порт завершения Канал обмена информацией между процессами, на кото­рый диспетчер процессов должен отправить сообщение при завершении потока (используется подсистемами)   Статус выхода потока Причина завершения потока

 

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

 

Многопоточность

 

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

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

 

Состояния потоков

 

Поток, созданный в операционной системе W2K, может находиться в одном из шести состояний (см. рис. 4.14). Перечислим эти состояния.

• Готовый к выполнению. Поток, который может быть направлен на выпол­нение. Диспетчер микроядра отслеживает все готовые к выполнению потоки и осуществляет их планирование в соответствии с приоритетом.

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

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

• Ожидающий. Поток входит в состояние ожидания, если (1) он блокирован каким-то событием (например, операцией ввода-вывода), (2) он добровольно ждет синхронизации или (3) среда подсистемы предписывает потоку, чтобы он сам себя приостановил. После того как условия ожидания будут удовлетворены, поток переходит в состояние готовности, если все его ресурсы бу­дут доступны.

• Переходный. Поток переходит в это состояние, если он готов к выполне­нию, но ресурсы недоступны (например, страницы стека потока могут нахо­диться на диске). После того как необходимые ресурсы станут доступны, процесс переходит в состояние готовности.

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

 

 



Дата добавления: 2016-06-05; просмотров: 2410;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.011 сек.