Структуры управления процессами
Рассмотрим вопрос о том, какими сведениями должна располагать операционная система, чтобы она могла управлять процессом. Во-первых, она должна знать, где находится этот процесс, а во-вторых, ей должны быть известны необходимые для управления атрибуты процесса (такие, как его идентификатор, состояние и размещение в памяти).
Местоположение процесса
Перед тем как перейти к рассмотрению вопроса о размещении процесса или о его атрибутах, зададим себе еще более фундаментальный вопрос: в чем заключаются физические проявления процесса? Как минимум, в процесс входит программа или набор программ, которые нужно выполнить. С этими программами связан набор ячеек памяти, в которых хранятся локальные и глобальные переменные и константы. Таким образом, процессу должен быть выделен такой объем памяти, в котором поместились бы программа и данные, принадлежащие процессу. Кроме того, при работе программы обычно используется стек, с помощью которого реализуются вызовы процедур и передача параметров. Наконец, с каждым процессом связано несколько атрибутов, которые используются операционной системой для управления этим процессом. Обычно такой набор атрибутов называется управляющим блоком процесса (process control block).8 Множество, в которое входят программа, данные, стек и атрибуты, называется образом процесса (process image) (табл. 3.4).
8 Часто используются другие названия этой структуры данных — блок управления задачей, дескриптор процесса, дескриптор задачи.
Таблица 3.4. Типичные элементы образа процесса
Данные пользователя | Допускающая изменения часть пользовательского адресного пространства. Сюда могут входить данные программы, пользовательский стек и модифицируемый код |
Пользовательская программа | Программа, которую нужно выполнить |
Системный стек | С каждым процессом связаны один или несколько системных стеков. Стек используется для хранения параметров, адресов вызова процедур и системных служб |
Управляющий блок процесса | Данные, необходимые операционной системе для управления процессом (см. табл. 3.6) |
Местонахождение образа процесса зависит от используемой схемы управления памятью (в простейшем случае образ процесса имеет вид непрерывного блока памяти, который расположен во вторичной памяти, обычно на диске). Чтобы операционная система могла управлять процессом, по крайней мере небольшая часть его образа должна находиться в основной памяти. Чтобы можно было запустить процесс, его образ необходимо полностью загрузить в основную (или в виртуальную) память. Таким образом, операционной системе нужно знать местонахождение каждого процесса на диске, а для тех процессов, которые загружены в основную память — их местонахождение в основной памяти. В главе 2, "Обзор операционных систем", мы рассматривали несколько более сложную модификацию этой схемы, использующуюся в системах CTSS, где при свопинге процесс может выгружаться из основной памяти только частично. При этом операционная система должна следить за тем, какая часть образов каждого из процессов осталась в основной памяти.
В большинстве современных операционных систем используется схема управления памятью, в которой образ процесса состоит из набора блоков, не обязательно расположенных последовательно. В зависимости от используемой
Таблица 3.5.
Дата добавления: 2016-06-05; просмотров: 1989;