В. Столлингс - Операционные системы (1114679), страница 41
Текст из файла (страница 41)
д- екты процессов и потоков Объектно-ориентированная структура операционной системы Ж2К разработку подсистемы для работы с процессами. Разработчики Ж >льзовались двумя типами связанных с процессами объектов: процесс ками. Процесс — это объект, соответствующий заданию или прил >льзователя, который владеет своими собственными ресурсами, так >мять и открытые файлы. Поток — это диспетчеризуемая единица раб>>" >рая выполняется последовательно и является прерываемой, что >оцессору переключиться на выполнение другого потока.
Каждый процесс в операционной системе ЧТ2К представлен объе ая структура которого показана на рис. 4.13,а. Каждый процесс оп >которым числом атрибутов и может предоставлять определенные серн"' >рые он выполняет после получения соответствующего сообщения" цинственный способ вызвать такой сервис — отправка сообщения про >рый его предоставляет. При создании нового процесса операционная., т2К использует класс или тип объектов, определенный как шаблон тя генерации новых экземпляров объектов. Во время создания объекта':: збутам присваиваются конкретные значения.
В табл. 4.3 приводится зисание каждого атрибута процессов. аблица 4.3. Атрибуты процесса в операционной системе Ж1пдотх>в 2006. Уникальное значение, идентифицирующее процесс: ционной системе Описывает, кто создал объект, кто обладает правоМ' к нему или может им пользоваться и кто определ доступа к объекту Базовый приоритет выполнения потока, пРин процессу Заданный по умолчанию набор процессоров, на к можно выполнение потоков процесса ж Максимальное количество страничной и проче й с памяти, объем в страничном файле и процессорноа;:- лоступные данному процессу Суммарное время, затраченное на выполнение вс всех процесса Переменные, в которые заносятся сведения о колич операций ввода-вывода, выполненных потоками проц Переменные, в которые заносятся сведения о количестве и типе операций с виртуальной памятью, выполненных пото- камп процесса Каналы обмена информацией между процессами, в которые диспетчер процессов должен отправить сообщение при воз- никновении исключительной ситуации из-за одного из пото- ков процесса б> Обьект-поток Рие, 4 .
е т 3. Объекты процессов и потоков е Операционной еисте.ие Жтпе1ои>к 2000 В операционной системе Ж2К процесс перед выполнением должен содераать хотя б бы олин поток, который затем может создавать другие потоки. В мнопроцессо ' орной системе несколько потоков одного и того же процесса могут выполнятьс„„ г>араллельно. На рис. 4.13,6 изображена структура объекта потока а табл, 4.4 оп 3 3 .4 определены его атрибуты. Заметим, что некоторые атрибуты потока оДоб : ааа Рибутам процесса. Значения таких атрибутов потока извлекаются из "ений соотв т ветствующих атрибутов процесса.
Например, в многопроцессорной стем Р дные потоку процессоры — это множество процессоров, на которых лняться данный поток; это множество совпадает с множеством про~От выполи оров родных процессу, или является его подмножеством. 4. Потоки, симметричная мультипроцессорная обработка... 227 таблица 4.4. Атрибуты потока в операционном системе %'1пйочгв 2000 Уыикальпос значение, идентифицирующее поток, вызывает сервис Набор значений регистров и другие данные, котор ' рсделяется состояние выполнения потока Приоритет выполнения потока в данный момент в Идентификатор потока Динамический приОритет Вазовый приоритет Процессоры потока Нижний предел динамического приоритета потока Множество процессоров, ва которых мажет вып поток.
Это мпожегтво явЛястся полмыожеотвОМ ров, сродных процессу потока, или совпадает с иим.;:, Совокупыое время, затраченное ва выполнение пользовзтельсе Ом режиме и В режиме ядра Флаг, который указывает, следует ли потоку В асивхроывый ВызОВ прОцедуры Время выполнения потока В ием указывается, сколько раз выполнение пот „. с приостановлеио без последующего возобновления Временный признак доступа, позволяю|ций потоку' нять Операции от имени другого процесса (исп подсистемами) Каызл обмена информацией между процессами, рый диспетчер процессов должен отправить сооб завершении потока (используется подсистемами) Причина завершения потока Счетчик приостаыовок Признак имперсоыации Порт завершения Статчс выхода потока Заметим, что одним из атрибутов процесса является его контекст жашаяся в контексте информация позволяет операционной системе при ливать и возобновлять потоки.
Более того, приостановив поток и из контекст, можно изменить его поведение. Многопоточность Операционная система чч'2К поддерживает параллельное вы процессов, потому что потоки различных процессов могут выполнят,, временно. Более того, нескольким потокам одного и того же проце, быть выделены различные процессоры, и эти потоки также моГут." няться одновременно. Параллелизм достигается в многопоточном без накладных расходов на использование нескольких процессов, П' „, ного и того же процесса могут обмениваться между собой информацн, мощью общего адресного пространства и имеют доступ к совместнЫ '.
сам процесса. Потоки, принадлежащие разным процессам, могут о ся между собой информацией с помощью общей области установленной для этих двух процессов. Объектно-ориентированный многопоточный процесс является эффе.. средством реализации серверных приложений. Например, один обслу процесс может обслуживать несколько клиентов. Каждый запрос клиент, дит к созданию в сервере нового потока. ~ОСтОЯНИЯ ПОТОКОВ Поток, созданный в операционной системе.%2К.
может нвходитьса.а одном шести. спстодний (см Рис. 4.14). Перечислим эти состояния. Готовый к выполнению. Поток, который может быть направлен на выполнение. Диспетчер микроядра отслеживает все готовые к выполнению потоки н осуществляет их планирование в соответствии с приоритетом. ° резервным. Поток, которыи будет запущен следующим на данном процессоре. Поток находится в этом состоянии до тех пор, пока процессор не освободится. Если приоритет резервного потока достаточно высок, то он может вытеснить выполняющийся в данный момент поток. В противном случае резервный поток ждет, пока не произойдет блокировка выполняющегося потока или пока не истечет выделенный ему промежуток времени.
° Выполняющийся. Как только микроядро переключит поток или процесс, резервный поток перейдет в состояние выполнения и будет пребывать в этом состоянии до тех пор, пока не произойдет одно из следующих событий: поток будет вытеснен, закончится отведенный ему интервал времени, поток будет блокирован или завершен. В первых двух случаях поток снова переходит в состояние готовности. ° Ожидающий. Поток входит в состояние ожидания, если (Ц он блокирован каким-то событием (например, операцией ввода-вывода), (2) он добровольно ждет синхронизации или (3) среда подсистемы предписывает потоку, чтобы он сам себя приостановил.
После того как условия ожидания будут удовлетворены, поток переходит в состояние готовности, если все его ресурсы будут доступны. ° Переходный. Поток переходит в это состояние, если он готов к выполнению, но ресурсы недоступны (например, страницы стека потока могут находиться на диске). После того как необходимые ресурсы станут доступны, процесс переходит в состояние готовности.
Завершающийся. Завершение потока может быть инициировано самим по~оком, другим потоком или может произойти вместе с завершением родительского процесса. После завершения необходимых операций освобождения ресурсов и т.п. поток удаляется из системы (или может быть сохранен исполнительной системой для дальнейшей повторной инициализации). Часть 2. 4 Потоки, симметричная мультипроцессорная обработка... 229 Гот Завар т6'"ф.к . Снятие блокировкит'возобновление Ресурсов достатонно Рв урсов дсстатонно Блокировка~ Приостановка к Г Ь ф Снятое блокировки Переход::,-.ь "-::Ожидание Ресурсов недостаточно Рис. 4.14. Состояния потоков в операционной системе И~тпдоив 2000 Часть 2. Поддержка подсистем операционной системы Средства общего назначения для работы с процессами и потоками д ' поддерживать структуры процессов и потоков, соответствующие разли ентам операционной системы.