Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники 6066.doc
Скачиваний:
5
Добавлен:
01.05.2022
Размер:
484.86 Кб
Скачать

2.3. Понятие вычислительного процесса и ресурса

Понятие «вычислительный процесс» (или просто - «процесс») является одним из основных при рассмотрении операционных систем. Как понятие процесс яв­ляется определенным видом абстракции, и мы будем придерживаться следующе­го неформального определения, приведенного в работе. Последовательный процесс - это выполнение отдельной программы с ее данными на последовательном процессоре. Концептуально процессор рас­сматривается в двух аспектах: во-первых, он является носителем данных и, во-вторых, он (одновременно) выполняет операции, связанные с их обработкой.

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

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

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

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

В первых вычислительных системах любая программа могла выполняться только после полного завершения предыдущей. Поскольку эти первые вычислительные системы были построены в соответствии с принципами, изложенными в извест­ной работе Яноша Джон фон Неймана, все подсистемы и устройства компьютера управлялись исключительно центральным процессором. Центральный процессор осуществлял и выполнение вычислений, и управление операциями ввода/выво­да данных. Соответственно, пока осуществлялся обмен данными между опера­тивной памятью и внешними устройствами, процессор не мог выполнять вычис­ления. Введение в состав вычислительной машины специальных контроллеров позволило совместить во времени (распараллелить) операции вывода получен­ных данных и последующие вычисления на центральном процессоре. Однако все равно процессор продолжал часто и долго простаивать, дожидаясь завершения очередной операции ввода/вывода. Поэтому было предложено организовать так называемый мультипрограммный (мультизадачный) режим работы вычислитель­ной системы.

Необходимо различать системные управляющие процессы, представляющие ра­боту супервизора операционной системы и занимающиеся распределением и управ­лением ресурсов, от всех других процессов: системных обрабатывающих процес­сов, которые не входят в ядро операционной системы, и процессов пользователя. Для системных управляющих процессов в большинстве операционных систем ресурсы распределяются изначально и однозначно. Эти процессы управляют ре­сурсами системы, за использование которых существует конкуренция между всеми остальными процессами. Поэтому исполнение системных управляющих программ не принято называть процессами. Термин задача можно употреблять только по отношению к процессам пользователей и к системным обрабатывающим процес­сам. Однако это справедливо не для всех ОС.

Если обобщать и рассматривать не только обычные ОС общего назначения, но и, например, ОС реального времени, то можно сказать, что процесс может нахо­диться в активном и пассивном (не активном) состоянии. В активном состоянии процесс может участвовать в конкуренции за использование ресурсов вычисли­тельной системы, а в пассивном - он только известен системе, но в конкуренции не участвует (хотя его существование в системе и сопряжено с предоставлением ему оперативной и/или внешней памяти). В свою очередь, активный процесс мо­жет быть в одном из следующих состояний:

- выполнения - все затребованные процессом ресурсы выделены. В этом состоя­нии в каждый момент времени может находиться только один процесс, если речь идет об однопроцессорной вычислительной системе;

- готовности к выполнению - ресурсы могут быть предоставлены, тогда про­цесс перейдет в состояние выполнения;

- блокирования или ожидания - затребованные ресурсы не могут быть предо­ставлены, или не завершена операция ввода/вывода.

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

Для того чтобы операционная система могла управлять процессами, она должна располагать всей необходимой для этого информацией. С этой целью на каждый процесс заводится специальная информационная структура, называемая дескрип­тором процесса (описателем задачи, блоком управления задачей). В общем слу­чае дескриптор процесса содержит следующую информацию:

- идентификатор процесса (так называемый PID - process identificator);

- тип (или класс) процесса, который определяет для супервизора некоторые пра­вила предоставления ресурсов;

- приоритет процесса, в соответствии с которым супервизор предоставляет ре­сурсы. В рамках одного класса процессов в первую очередь обслуживаются более приоритетные процессы;

- переменную состояния, которая определяет, в каком состоянии находится процесс (готов к работе, в состоянии выполнения, ожидание устройства вво­да/вывода и т. д.);

- защищенную область памяти (или адрес такой зоны), в которой хранятся те­кущие значения регистров процессора, если процесс прерывается, не закон­чив работы. Эта информация называется контекстом задачи;

- информацию о ресурсах, которыми процесс владеет и/или имеет право поль­зоваться (указатели на открытые файлы, информация о незавершенных опе­рациях ввода/вывода и т. п.);

- место (или его адрес) для организации общения с другими процессами;

- параметры времени запуска (момент времени, когда процесс должен активи­зироваться, и периодичность этой процедуры);

- в случае отсутствия системы управления файлами — адрес задачи на диске в ее исходном состоянии и адрес на диске, куда она выгружается из оператив­ной памяти, если ее вытесняет другая (для диск-резидентных задач, которые постоянно находятся во внешней памяти на системном магнитном диске и за­гружаются в оперативную память только на время выполнения).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]