Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 1-8 / ОС_03.doc
Скачиваний:
103
Добавлен:
04.04.2013
Размер:
148.99 Кб
Скачать

15.02.03, 19.02.03, 20.02.03, 21.02.03, 23.02.03, 25.02.03

OS-basic 03. Управление процессами в ОС

Понятие процесса и ресурса. Однопрограммный и мультипрограммный режимы. Состояния процесса: активное, пассивное. Диаграмма состояний процесса: пассивное состояние, готовность, выполнение, блокировка. Блок управления процессом. Операции над процессами. Приостановка и возобновление процесса. Диаграмма состояний с приостановкой и возобновлением. Прерывания. Типы прерываний: SVC-прерывания, прерывания ввода/вывода, внешние прерывания, прерывания по рестарту, прерывания по контролю программы, прерывания по контролю машины. Переключение контекста.

Понятия, встречаемые в модуле:

процесс

ресурс; разделяемый ресурс, неделимый ресурс

мультипрограммирование

привилегированный режим

дисциплина обслуживания

состояния процесса

пассивное состояние (бездействие)

активное состояние

состояние выполнения

состояние готовности

состояние блокирования (ожидания)

таймер

истечение кванта

PCB - блок управления процессом (он же дескриптор процесса)

контекст процесса

идентификатор процесса

создание процесса

уничтожение процесса

возобновление процесса

изменение приоритета процесса

блокирование процесса

пробуждение процесса

запуск (выбор) процесса

приостановка процесса

возобновление процесса

прерывание

Svc – вызов супервизора

прерывания ввода/вывода

внешние прерывания

прерывания по рестарту

прерывания по контролю программы

прерывания по контролю машины

переключение контекста

PSW – слово состояния программы

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

Понятие «вычислительный процесс» (или просто — «процесс») является одним из основных при рассмотрении операционных систем. Термин «процесс» впервые начали применять разработчики системы MULTICS в 60-х годах. За прошедшее время термин «процесс» используемый в ряде случаев как синоним «задачи», получил много различных определений:

  • программа в стадии выполнения;

  • асинхронная работа;

  • «живая душа» процедуры»

  • «концентрация средств управления» для выполняемой процедуры;

  • нечто, представленное в виде «блока управления процессом» в операционной системе;

  • объект, которому выделяются процессоры;

  • «диспетчируемый» модуль.

Чаще всего под процессом понимается «программа во время выполнения» и её данные.

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

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

Другими словами, ресурсом называется всякий объект, который может распределяться внутри вычислительной системы.

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

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

В первых вычислительных системах любая программа могла выполняться только после полного завершения предыдущей, поскольку все подсистемы и устройства компьютера управлялись исключительно центральным процессором. Центральный процессор осуществлял и выполнение вычислений и управление операциями ввода/вывода данных. Соответственно, пока осуществлялся обмен данными между оперативной памятью и внешними устройствами, процессор не мог выполнять вычисления (рис. 3.1 а). Введение в состав вычислительной машины специальных контроллеров позволило совместить во времени (распараллелить) операции вывода полученных данных и последующие вычисления на центральном процессоре. Как только возникла необходимость в процедуре ввода/вывода (рис. 3.1 б, точка Z), управление этой операцией передавалось контроллеру ввода/вывода, а процессор продолжал свои вычисления до момента, пока не требовались данные, получаемые в результате операции ввода/вывода. Но дожидаясь завершения очередной операции ввода/вывода, без которой процессор не мог продолжать вычисления, он часто и долго простаивал (рис. 3.1 б). Он мог выполнять задачи только последовательно, одну за другой. Поэтому было предложено организовать так называемый мультипрограммный (мультизадачный) режим работы вычислительной системы. Суть его заключается в том, что пока одна программа (один вычислительный процесс) ожидает завершения очередной операции ввода/вывода, другой процесс может быть переведен в режим выполнения (рис. 3.1 в). Выполнив вычисления задачи А, процессор освобождается, ожидая окончания операции ввода/вывода (рис. 3.1 в, точка Y). В однопрограммном режиме в этой ситуации процессор простаивает, в мультипрограммном режиме процессор переходит к выполнению вычислений задачи В. Таким образом процессор выполняет как бы одновременно две задачи. На самом деле он последовательно производит вычисления сначала одной задачи, потом другой. Необходимо отметить, что переключение между задачами занимает время процессора. В самом деле, когда необходимо выполнение операции ввода/вывода (рис. 3.1 в, точка P), процессор вынужден простаивать, ожидая, когда освободится контроллер ввода/вывода, выполняющий ввод/вывод в задаче А (рис. 3.1 в, интервал P-Q). Как только завершается ввод/вывод в задаче А, контроллер ввода/вывода управляет этой операцией в задаче В, а процессор может продолжить вычисления (рис. 3.1 в, точка Q).

Рис. 3.1 Пример выполнения двух программ:

а – последовательное выполнение вычислений и операций ввода/вывода

б – однопрограммный режим

в – мультипрограммный режим

Благодаря совмещению во времени выполнения двух программ общее время выполнения двух задач получается меньше, чем если бы мы выполняли их по очереди (запуск одной только после полного завершения другой). Из этого же рисунка видно, что время выполнения каждой задачи в общем случае становится больше, чем если бы мы выполняли каждую из них как единственную.

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

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

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

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

  • он свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу;

  • текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;

  • ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс).

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

После окончания работы с ресурсом задача опять посредством вызова супервизора сообщает операционной системе об отказе от ресурса, или операционная система забирает ресурс сама, если управление возвращается супервизору после выполнения какой-либо системной функции. Супервизор операционной системы, получив управление по этому обращению, освобождает ресурс и проверяет, имеется ли очередь к освободившемуся ресурсу. Если очередь есть, в зависимости от принятой дисциплины обслуживания (правила обслуживания) и приоритетов заявок он выводит из состояния ожидания задачу, ждущую ресурс, и переводит ее в состояние готовности к выполнению. После этого управление либо передается данной задаче, либо возвращается той, которая только что освободила ресурс.

При выдаче запроса на ресурс задача может указать, хочет ли она владеть ресурсом монопольно или допускает совместное использование с другими задачами. Так, с файлом можно работать монопольно, а можно и совместно с другими задачами, например, читать из него данные.

Соседние файлы в папке Лекции 1-8