Модуль 3. Управление процессами


Тема 4. Диаграмма перехода процессса

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

Дополнительные состояния процесса

Операции над процессами

Основная концепция обработки прерываний


Подсистема Управления процессами (УП) является наиболее интенсивно используемым компонентом ОС, входящим в состав ядра ОС, то есть резидентно размещенным в ОП и выполняющим следующие важнейшие функции:

  1. представление процессов в ОС посредством блоков управления процессами;
  2. создание и уничтожение процессов;
  3. обработка прерываний и переключение процессов из состояния в состояние;
  4. синхронизация и организация взаимодействия между асинхронными и параллельными процессами.

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

Основные состояния процесса:

  1. Состояние активности, когда процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором.
  2. Состояние готовности, когда процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.
  3. Состояние блокировки или ожидания, когда процесс не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса.

    Дополнительные состояния процесса:

  1. Приостановка готовности, когда процесс готов, но задержан и не конкурирует за ЦП.
  2. Приостановка блокировки, когда процесс блокирован и задержан. То есть также не будет конкурировать за ЦП.

Дополнительные состояния процессов кратковременны и обычно используются в ОС РВ (реального времени при перегрузках ЦП.

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

 

image46.gif (33244 bytes)

Рисунок 1.  Диаграмма переходов процесса

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

В ходе жизненного цикла каждый процесс переходит из одного состояния в другое в соответствии с алгоритмом планирования процессов, реализуемым в данной операционной системе. Диаграмма переходов процесса представлена на рисунке 1.

  1. Когда в ОС поступает задание на обслуживание, создается процесс, который устанавливается в очередь готовых процессов.
  2. Процесс постепенно продвигается в очереди и, когда очередь подходит при освобождении ЦП, процесс переходит в состояние активности. Предоставление ЦП процесса называется запуском или выбором процесса для выполнения. Эту функцию выполняет системная программа, называющаяся диспетчером.
  3. Процесс, получивший ЦП, выполняется. Для предотвращения случайного, либо умышленного монопольного захвата ресурсов ЭВМ каким-либо процессом устанавливается временной интервал, называющийся квантом времени, в течение которого процессу разрешено занимать ЦП. Этот интервал устанавливается аппаратным таймером прерываний. По истечении кванта времени диспетчер возвращает процесс в состояние готовности и выбирает следующий готовый процесс.
  4. Если выполняемый процесс до истечения кванта запрашивает какое-либо внешнее событие (обычно ввод/вывод), то добровольно освобождает ЦП, переводится в очередь блокировки до наступления события, безвозвратно теряет остаток кванта.
  5. При наступлении события (завершении операции ввода/вывода) процесс переводится в состояние готовности.

Операции приостановки и возобновления играют важную роль в ОС РВ и используются в следующих случаях:

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

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

Все смены состояний происходят по прерываниям.

Прерывание – это событие/сигнал, привлекающий внимание ЦП и заставляющий его изменить текущий порядок исполнения команд процесса. Существуют аппаратные и программные прерывания.

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

Программные прерывания инициируются процессом и на самом деле ничего не прерывают. Это обычные процедуры, которые используются программами для выполнения стандартной рутиной работы. Однако, эти программы содержатся в ОС, и механизм прерываний дает возможность обратиться к ним из программ пользователей. Программные прерывания могут выдаваться внутри друг друга (быть вложенными). Например, аппаратные прерывания могут возникнуть при выполнении программных прерываний. Когда разрешенное прерывание вызывается, то ЦП оставляет свою работу, выполняет прерывание, а затем возвращается в место прерывания. Управляет прерываниями обработчик прерываний (Interrupt Handler).

Операции над процессами

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

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

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

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

В этой связи подсистема Управление процессом должна выполнять следующие операции над процессами:

  1. Создание.
  2. .Уничтожение.
  3. Запуск.
  4. Блокировка.
  5. Приостановка.
  6. Возобновление, а также
  7. Изменение диспетчерского приоритета процесса (работа с очередями).

Создание состоит из многих этапов:

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

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

Блок управления процессом (Program Control Block – PCB) является центральным объектом в ОС, который определяет процесс и содержит всю необходимую информацию о процессе.

PCB содержит определенные сведения.

  1. Текущее состояние процесса (Program Status Word - PSW).(Всего 5 состояний)
  2. Уникальный идентификатор процесса.
  3. Приоритет.
  4. Указатели памяти процесса.
  5. Указатели выданных процессу ресурсов.
  6. Область сохранения регистров.

Когда ОС переключает ЦП с процесса на процесс, используется область сохранения регистров в PSB, чтобы запомнить информацию, необходимую для возобновления процесса, когда он снова получит ЦП.

Обработка прерываний состоит в следующем:

  1. При возникновении прерывания, управление передается в ОС.
  2. ОС запоминает состояние прерванного процесса, обычно в PCB прерванного процесса.
  3. ОС анализирует тип прерывания и передает управление соответствующему обработчику прерываний.
  4. После обработки прерывания ОС либо продолжает выполнять прерванный процесс, либо запускает готовый процесс с наивысшим приоритетом.

Основная концепция обработки прерываний

В различных ЭВМ существует различный набор типов прерываний, которые можно разделить на 6 классов.

  1. Программные прерывания по системной директиве. Инициатор – активный процесс, выполнивший команду SVC (обращение к супервизору), то есть запрос на предоставление ОС какой-либо системной вычислительной услуги.
  2. Прерывания ввода-вывода. Инициируются устройством ввода/вывода (УВВ) и сигнализируют ЦП о том, что произошло изменение состояния канала ввода-вывода (КВВ) или УВВ (например: завершение операции, ошибка, переход устройства в состояние готовности).
  3. Внешние прерывания. Причинами их является нажатие операторами клавиш на панели ЭВМ или прием сигнала прерывания от другого ЦП в мультипроцессорной системе, сигнала от модема.
  4. Прерывание по рестарту. Нажатие оператором на панели управления кнопки рестарта или Reset.
  5. Логические прерывания по контролю программы вызываются программными ошибками, обнаруженными при выполнении программы (деление на ноль, попытка выполнить привилегированную команду в пользовательском режиме, неверный код операции, защита памяти и т.д.).
  6. Прерывания по контролю машины вызываются аппаратными ошибками.

Планирование процессов включает в себя решение следующих задач:

  1. определение момента времени для смены выполняемого процесса;
  2. выбор процесса на выполнение из очереди готовых процессов;
  3. переключение контекстов "старого" и "нового" процессов.

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