Состояния задачи
Состояния задачи
состояние характеризует способность задачи выполняться процессором. Любая задача в системе может находиться в одном из четырех состояний. Обратите внимание, что каждое состояние может обозначаться несколькими терминами. В данном разделе мы используем имена состояний SLIC. Итак, четыре состояния задачи — это:
Подвешенность — задача находится в этом состоянии, когда начинается или завершается. Такая задача не может исполняться процессором.
Готовность — состояние задачи, которая готова к выполнению, но еще не выполняется. За пределами SLIC данное состояние также иногда называется «не избранным», то есть вместо данной задачи исполняется некоторая другая.
Рисунок 9.1. Состояния задачи
Исполнение — состояние задачи, называемое вне SLIC активным. В любой момент времени на одном процессоре может исполняться только одна задача.
Ожидание — задача чего-либо ожидает, обычно, завершения ввода-вывода, и при этом не может исполняться.
Четыре состояния задачи и возможные переходы между ними показаны на рисунке 9.1.
Всего возможно 12 переходов из одного состояния в другое, но в AS/400 разрешены только шесть, а именно:
Инициирование задачи (подвешенность — готовность): работа начата, и задача переводится в состояние готовности к исполнению.
Запуск задачи (готовность — исполнение): перевод задачи в исполняющееся (активное) состояние.
Подвешивание задачи (исполнение —подвешенность): по завершении работы задача переводится в подвешенное состояние.
Вытеснение задачи (исполнение — готовность): еще не завершенная задача переводится обратно в готовое состояние. Данный переход предполагает наличие в системе других задач, которые более важны (приоритетны).
Ожидание (исполнение — ожидание):некоторая операция, запущенная задачей, например, ввода-вывода, заставляет задачу ожидать своего завершения.
Сигнализация (ожидание — готовность): операция, окончания которой ждала задача, завершилась, и задача переходит в состояние готовности (не избранности).
Некоторые из этих переходов знакомы тем, кто работал с командой «WRKSYSSTS». Она показывает частоту выполнения следующих переходов: «исполнение — ожидание», «исполнение — готовность» и «ожидание — готовность». Данные значения используются при настройке уровня активности в пуле памяти. (На уровнях активности и пулах памяти мы подробно остановимся далее в этой главе).
Текущее состояние задачи определяется местом связанного с ней TDE. TDE перемещаются в системе, но не физически, а логически. Все TDE расположены в памяти AS/400. TDE содержит поля адресов, связывающие его с другими структурами данных. Когда говорят о перемещении TDE, имеют в виду, что адреса в структурах данных изменяются для логического перемещения TDE в другую структуру данных. Операции, выполняемые SLIC для связывания различных адресов памяти — вставка TDE в структуру данных и удаление его оттуда — называются постановкой в очередь и удалением из очереди. Эти операции связывания выполняются очень быстро по сравнению с физическим перемещением TDE.