Лекция: Динамика состояния процесса
Процесс может находиться:
— в активном состоянии, может участвовать в конкуренции за использование
ресурсов вычислительной системы;
— в пассивном состоянии, известен системе, в конкуренции не участвует.
Активный процессможет находиться в одном из следующих состояний:
— выполнения, когда все затребованные ресурсы выделены. В состоянии
выполнения может находиться только один процесс (для однопроцессорной
системы);
— готовности к выполнению, когда ресурсы могут быть предоставлены и
процесс перейдет в состояние выполнения;
— блокирования или ожидания, когда затребованные ресурсы не могут быть
предоставлены или не завершена операция ввода/вывода.
За время существования процесс может неоднократно совершать переходы из
одного состояния в другое. Это обусловлено:
— обращениями к операционной системе с запросами ресурсов;
— выполнением системных функций;
— взаимодействием с другими процессами;
— появлением сигналов прерывания u1086 от таймера, каналов и устройств
ввода/вывода и других устройств.
Процесс из состояния бездействияв состояние готовностиможет перейти в
следующих случаях:
— по команде оператора (пользователя) в диалоговых ОС, где программа может
иметь статус задачи, а не просто быть исполняемым файлом и только на время
исполнения получит статус задачи (ОС на ПК);
— при выборе из очереди планировщиком;
— по вызову из другой задачи (посредством обращения к супервизору один
процесс может создавать, инициировать, приостановить, остановить или
уничтожить другой процесс);
— по прерыванию от внешнего «инициативного» устройства;
— при наступлении запланированного времени запуска программы.
Процесс, который может исполняться, как только ему будет предоставлен
процессор, находится в состоянии готовности, все ресурсы, за исключением процессора,
ему выделены.
Из состояния выполненияпроцесс может выйти по одной из следующих причин:
— процесс завешается, при этом он посредством обращения к супервизору
передает управление ОС и сообщает о своем завершении. Супервизор
уничтожает процесс или переводит его в список бездействующихпроцессов.
В состояние бездействияпроцесс может быть переведен принудительно по
команде оператора или путем обращения к супервизору другой задачи,
требующей остановить данный процесс;
— процесс переводится супервизором ОС в состояние готовности к исполнению
в связи с появлением более приоритетной задачи или в связи с окончанием
выделенного ему кванта времени;
— процесс блокируетсяиз-за невозможности предоставить ему ресурс или
вследствие запроса ввода/вывода, а также по команде оператора на
приостановку задачи.
Процесс деблокируется и переводится в состояние готовности к исполнению при
наступлении соответствующего события:
— завершение операции ввода/вывода;
— освобождение затребованного ресурса;
— загрузка в оперативную память страницы виртуальной памяти и т.д.
Предпосылками изменения состояния процесса являются u1089 события. Один из
основных видов событий – прерывания.