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

УПРАВЛЕНИЕ ПРОЦЕССАМИ


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

1.

Представление процессов в ОС посредством блоков управления процессами.

2.     Создание и уничтожение процессов.

3.     Обработка прерываний и переключение процессов из состояния в состояние.

4.     Синхронизация и организация взаимодействия между асинхронными и параллельными процессами.

Процессом

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

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

1.     Состояние активности, когда процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором.

2.     Состояние готовности, когда процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.

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

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



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

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


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

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

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



Рис. 3.1. Диаграмма переходов процесса

1.     Когда в ОС поступает задание на обслуживание, создается процесс, который устанавливается в очередь готовых процессов.

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

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

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

5.     При наступлении события (завершении операции ввода/вывода) процесс переводится в состояние готовности.



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

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

-         при ненадежной работе системы и возможном ее отказе;

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

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

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

7.     Возобновление (или активизация) процесса это операция подготовки процесса к повторному запуску с точки приостановки.

8.     По завершении выполнения задания процесс уничтожается.

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

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

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

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


Содержание раздела