Операционные системы: архитектура и управление процессами. Макаров П.С. - 69 стр.

UptoLike

Составители: 

69
дующих разделах будут подробно рассмотрены подходы, использующиеся в
операционных системах W2K, Solaris и Linux.
В многопоточной среде процесс определяется как структурная единица
распределения ресурсов, а также структурная единица защиты. С процессами
связаны следующие элементы:
Виртуальное адресное пространство, в котором содержится образ
процесса.
Защищенный доступ к процессорам, другим процессам (при обмене
информаций между ними), файлам и ресурсам ввода-вывода (уст-
ройствам и каналам).
В рамках процесса могут находиться один или несколько потоков,
каждый из которых обладает следующими характеристиками.
Состояние выполнения потока (выполняющийся, готовый к выпол-
нению и т. д.).
Сохраненный контекст не выполняющегося потока; один из спосо-
бов рассмотрения потокасчитать его независимым счетчиком
команд, работающим в рамках процесса.
Стек выполнения.
Статическая память, выделяемая потоку для локальных перемен-
ных.
Доступ к памяти и ресурсам процесса, которому этот поток при-
надлежит; этот доступ разделяется всеми потоками данного про-
цесса.
На рис. 28 продемонстрировано различие между потоками и процессами
с точки зрения управления последними. В однопоточной модели процесса в его
представление входит управляющий блок этого процесса и пользовательское
адресное пространство, а также стеки ядра и пользователя, с помощью которых
осуществляются вызовы процедур и возвраты из них при выполнении процесса.
Когда выполнение процесса прерывается, содержимое регистров процессора
сохраняется в памяти. В многопоточной среде с каждым процессом тоже связа-
ны управляющий блок и адресное пространство, но теперь для каждого потока
создаются свои отдельные стеки, а также свой управляющий блок, в котором
содержатся значения регистров, приоритет и другая информация о состоянии
потока.
Таким образом, все потоки процесса разделяют между собой состояние и
ресурсы этого процесса. Они находятся в одном и том же адресном пространст-
ве и имеют доступ к одним и тем же данным. Если один поток изменяет в памя-
ти какие-то данные, то другие потоки во время своего доступа к этим данным
имеют возможность отследить эти изменения. Если один поток открывает файл
с правом чтения, другие потоки данного процесса тоже могут читать из этого
файла.
Перечислим основные преимущества использования потоков с точки зре-
ния производительности.