Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами.
В мультипрограммной операционной среде одновременно существует несколько процессов, порождаемых по инициативе пользователей и их приложений, они называются пользовательские, и инициализируемые операционной системой для выполнения своих функций - системные. Процессы часто одновременно претендуют на одни и те же ресурсы, поэтому ОС поддерживает очереди процессов на ресурсы, например очереди к процессору, к принтеру, к последовательному порту.
Подсистема управления процессами выполняет следующие функции:
¨ создает описатель процесса;
¨ выделяет процессорное время процессам;
¨ управляет прерываниями процессов по разнообразным причинам, например, для осуществления ввода-вывода.
¨ синхронизирует работу процессов
Для каждого вновь создаваемого процесса операционная система создает системные информационные структуры (Рис. 9), которые содержат идентификатор процесса, данные о потребностях процесса в ресурсах вычислительной системы, о фактически выделенных ему ресурсах, содержится информация о состоянии процесса и приоритет процесса - степень его привилегированности. Эти данные учитываются операционной системой при принятии решения о выделении ресурсов процессу.
| Идентификатор процесса | Потребности процесса в ресурсах | Фактически выделенные ресурсы | Состояние процесса | Приоритет процесса | Временные характеристики |
Рис. 9. Системная информационная структура о процессе
Основной задачей подсистемы управления процессами ОС является выделение им процессорного времени для выполнения. В компьютере с одним процессором в каждый момент времени выполняется процессором только один процесс.
Все остальные процессы, если они имеют нужные ресурсы (кроме процессорного времени) находятся в очереди готовых к выполнению процессов или же в очереди ожидания какого-либо другого ресурса (заблокирован), т.е. процесс может находится в разных состояниях(Рис. 10):
¨ Процесс выполняется, когда он имеет все ресурсы, в том числе процессорное время.
¨ Готов к выполнению – имеет все ресурсы кроме процессорного времени.
¨ Заблокирован – переведен в состояния ожидания какого-либо ресурса, например, устройства ввода-вывода, которое ему необходимо для дальнейшего выполнения или какого либо события, например ожидание запрашиваемого сервиса ОС.

Рис. 10. Диаграмма состояний процесса
В мультипрограммной среде, что бы все процессы могли быть выполнены, операционная система выделяет выполняющемуся процессу только квант времени. Квант - неделимый отрезок процессорного времени. Квант обычно равен 20-40 миллисекунд. Процесс покинет процессор, если он завершен или если он прерван. Процесс может быть прерван: 1) в связи с тем, что выделенный ему квант времени истек, тогда процесс будет переведен в очередь готовых к выполнению процессов; 2) в связи с тем, что произошло прерывание от устройств ввода-вывода или программное прерывание, тогда процесс будет заблокирован до завершения соответствующего события.
Процессорное время выделяется готовым к исполнению процессам в соответствии с приоритетом. Приоритет - это числовая характеристика, назначаемая процессу операционной системой, которая используется системой для формирования очередей. Таким образом, очередь готовых процессов выстраивается в соответствии с их приоритетами. Приоритеты могут бать постоянными или динамически меняться в зависимости от состояния операционной среды. Существует большое количество разнообразных алгоритмов управления процессами, основанные на квантовании и изменении приоритетов.
На протяжении периода существования процесса его выполнение может быть многократно прервано по многим причинам и затем продолжено. В момент прерывания ОС запускает на выполнение специальную программу обработчик прерывания. Затем управление передается диспетчеру подсистемы управления процессами, который определяет какому процессу передать процессорное время, учитывая их приоритет Рис. 11.
![]() |
Рис. 11. Действия операционной системы в момент передачи процессора от одного процесса к другому
Для того чтобы возобновить выполнение прерванного процесса, необходимо сохранить, а затем восстановить состояние его операционной среды. Состояние операционной среды процесса определяется состоянием регистров процессора - эта информация называется контекстом процесса. Говорят, что при смене процесса в процессоре происходит переключение контекстов, т.е. из регистров процессора в память записывается состояние прерванного процесса, а из памяти в регистры процессора записывается состояние того процесса, которому операционная система передала управление - выделила процессор.
Прерывания бывают следующих типов
¨ Внутренние прерывания (синхронные с работой процессора), зависящие от результатов работы процессора: деление на ноль, неправильная адресация, исчезновение порядка и т.д.
¨ Внешние прерывания (асинхронные с работой процессора) - от внешних устройств ввода-вывода.
¨ Программные прерывания – системные вызовы, обращение из программ пользователя к операционной системе за каким либо сервисом.
Операционная система берет на себя также функции синхронизации процессов, позволяющие согласовать скорость их выполнения. Синхронизация необходима, когда один процесс производит информацию, а другой её потребляет. Тогда необходимо, чтобы процесс - потребитель не начал работу, пока процесс – производитель не произведет информацию в нужном объеме. Или, чтобы процесс производитель приостановил свою работу, пока процесс – потребитель перерабатывает информацию. Самый простой способ решения задачи синхронизации является использование буфера – промежуточной памяти и глобальной переменной Рис. 12.
![]() |
Рис. 12.Синхронизация процессов
Изменяя значение глобальной переменной Р операционная система приостанавливает попеременно выполнение процессов, если буфер пуст работает Процесс1 – производитель информации, а Процесс2 – потребитель информации ожидает. Если буфер заполнен информацией, то работает Процесс2 –потребитель информации, Процесс1-производитель информации ожидает.
Таким образом, подсистема управления процессами занимается: созданием процессов; планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами; обеспечивает процессы другими системными ресурсами; поддерживает синхронизацию процессов и обеспечивает взаимодействие между процессами, а при завершении процесса уничтожает процесс.

