3.28. Понятие процесса, управление процессами, способы диспетчеризации процессов
Мультипрограммная ОС вместе с выполняющимися в ней заданиями пользователя может быть логически описана как набор процессов. Эти процессы взаимодействуют между собой путем пересылки сообщений и синхронизирующих сигналов. Об этих процессах говорят, что эти процессы протекают параллельно. Параллелизм может быть аппаратным (когда параллельно работают несколько управляющих устройств) и логическим.
Существует много понятий процесса:
1. Программа на стадии выполнения
2. P=<P,S> , где P – выполняемая программа, S – вектор состояний процесса. Одна программа может породить несколько процессов, и выполняться они могут в одном процессоре.
Процесс за время жизни может находиться в нескольких состояниях:
1. выполняется в данный момент
2. готов, если процессор может его использовать в данный момент
3. блокирован, если ожидает некоторые события, чтобы получить возможность стать готовым
Запуск – переход из состояния готовности в состояние выполнения. Чтобы процесс монопольно не владел ресурсами вычислительной системы, устанавливается системный таймер, который устанавливает квант времени, в течение которого процесс владеет центральным процессором. По истечение времени происходит переход выполнение – готов. Если выполняемый процесс до истечение отпущенного ему кванта времени инициализировал операцию ввода-вывода, этим он добровольно покинул процессор и перевел себя в состояние блокирования. Как только произойдет событие, которого ожидает блокированный процесс, происходит переход блокированный – готов (пробуждение). Единственная смена состояний, которую вызывает процесс над собой - блокирование. Остальные инициируются внешними объектами.
Структура данных, которая порождается как только в ней появляется новый процесс – приоритет процесса.
Уничтожение – ресурсы возвращаются в систему, имя процесса стирается во всех списках и таблицах системы.
А) прерывания ввода/вывода – инициируется аппаратурой ввода/вывода
Б) внешние прерывания – это три вида различных событий:
- истечение кванта времени (таймера)
- нажатие оператором клавиши
- прием сигнала прерывания от другого процессора
В) прерывания по ошибке программы
Г) прерывания вызванные сбоем аппаратуры
Любое взаимодействие процессов связано с синхронизацией, то есть согласование скоростей процессов путем остановки процесса до наступления некоторого события и активизации его при наступлении этого события. Синхронизация необходима для корректной работы процессов при обмене данными между процессами, при разделении данных при совместном использовании устройств ввода/вывода.