Подсистема управления процессами

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

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

Подсистема управления процессами выполняет следующие функции:

¨ создает описатель процесса;

¨ выделяет процессорное время процессам;

¨ управляет прерываниями процессов по разнообразным причинам, например, для осуществления ввода-вывода.

¨ синхронизирует работу процессов

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

Идентификатор процесса Потребности процесса в ресурсах Фактически выделенные ресурсы Состояние процесса Приоритет процесса Временные характеристики

Рис. 9. Системная информационная структура о процессе

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

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

¨ Процесс выполняется, когда он имеет все ресурсы, в том числе процессорное время.

¨ Готов к выполнению – имеет все ресурсы кроме процессорного времени.

¨ Заблокирован – переведен в состояния ожидания какого-либо ресурса, например, устройства ввода-вывода, которое ему необходимо для дальнейшего выполнения или какого либо события, например ожидание запрашиваемого сервиса ОС.

Рис. 10. Диаграмма состояний процесса

В мультипрограммной среде, что бы все процессы могли быть выполнены, операционная система выделяет выполняющемуся процессу только квант времени. Квант - неделимый отрезок процессорного времени. Квант обычно равен 20-40 миллисекунд. Процесс покинет процессор, если он завершен или если он прерван. Процесс может быть прерван: 1) в связи с тем, что выделенный ему квант времени истек, тогда процесс будет переведен в очередь готовых к выполнению процессов; 2) в связи с тем, что произошло прерывание от устройств ввода-вывода или программное прерывание, тогда процесс будет заблокирован до завершения соответствующего события.

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

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

 
 


Рис. 11. Действия операционной системы в момент передачи процессора от одного процесса к другому

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

Прерывания бывают следующих типов

¨ Внутренние прерывания (синхронные с работой процессора), зависящие от результатов работы процессора: деление на ноль, неправильная адресация, исчезновение порядка и т.д.

¨ Внешние прерывания (асинхронные с работой процессора) - от внешних устройств ввода-вывода.

¨ Программные прерывания – системные вызовы, обращение из программ пользователя к операционной системе за каким либо сервисом.

Операционная система берет на себя также функции синхронизации процессов, позволяющие согласовать скорость их выполнения. Синхронизация необходима, когда один процесс производит информацию, а другой её потребляет. Тогда необходимо, чтобы процесс - потребитель не начал работу, пока процесс – производитель не произведет информацию в нужном объеме. Или, чтобы процесс производитель приостановил свою работу, пока процесс – потребитель перерабатывает информацию. Самый простой способ решения задачи синхронизации является использование буфера – промежуточной памяти и глобальной переменной Рис. 12.

 
 


Рис. 12.Синхронизация процессов

Изменяя значение глобальной переменной Р операционная система приостанавливает попеременно выполнение процессов, если буфер пуст работает Процесс1 – производитель информации, а Процесс2 – потребитель информации ожидает. Если буфер заполнен информацией, то работает Процесс2 –потребитель информации, Процесс1-производитель информации ожидает.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: