Инициатор-Терминатор
Инициатор-терминатор (ИТ) является центральной задачей ОС. Основная функция ИТ - порождение задач и их завершение. В частности, именно ИТ присваивает уникальные идентификаторы вновь созданным задачам. ИТ разрешает все конфликты, возникающие в системе: из-за нехватки памяти оперативной или массовой, из-за тупиков, в результате синхрозахватов в Файловой системе.
ИТ управляет выполнением заданий. Максимальное число одновременно обрабатываемых заданий в пакетном режиме устанавливается на этапе генерации системы. Сведения о введенном в машину задании ИТ получает от задачи ВВОДа заданий в виде имени вводного справочника задания, идентификатора задания в локальной сети и паспортной информации. В паспортной информации содержится имя пользователя, шифр задания, пароль, время выполнения задания. В справочнике задания обязательно должно быть указание на файл, содержащий текст на языке управления заданиями. ИТ контролирует пароль на имя пользователя и создает задачу, в которую загружается системная программа (в виде двоичного кода) инициации задания. Функциями этой программы являются создание рабочего справочника задания, справочника выводных файлов, создание в выводном справочнике стандартного выводного файла, установление стандартной среды поиска в задаче АРХИВ.
После выполнения подготовительных действий управление пакетным заданием входит в цикл обработки, на каждом этапе которого выполняется определеннная программа в виде двоичного кода (шаг задания). Имя программы передается от завершившегося предыдущего шага при обращении от него к ИТ с командой "Выполни шаг".
Последовательность шагов задания, которые необходимо выполнить, описывается на языке управления заданиями. Первым шагом в этой последовательности является трансляция этого описания. Для выполнения каждого шага создается задача.
ИТ заканчивает выполнение текущего шага ликвидацией задачи. При возникновении ошибок во время выполнения очередного
шага управление передается программе обработки исключительных ситуаций, выполняющейся в том же адресном пространстве, что и задача.
Программа обработки исключительных ситуаций либо принимает меры по дальнейшему выполнению задания, либо заканчивает выполнение задания командой "Конец задания". В случае истечения интервала времени, выделенного для выполнения задания, управление передается Инициатору-Терминатору, и он аварийно заканчивает задание.
Получив команду "Конец задания", ИТ ликвидирует задачу выполнения шага, выдавшую эту команду, и запускает стандартный шаг терминации задания. Эта задача уничтожает рабочие файлы и справочники в файловой системе, отправляет выводные файлы, отмеченные в справочнике выводных файлов, на соответствующую внешнюю машину. Задание выполнено.
Основными командами, с которыми ИТ обращается к другим компонентам ОС при выполнении пакетного задания, являются запрос и освобождение оперативной памяти (к псевдозадаче Управления оперативной памятью ), создание и ликвидация задачи (к псевдозадаче управления задачами).
Удовлетворение запроса на оперативную память может быть отложено до момента освобождения памяти другой задачей. Задача управления памятью ведет очередь неудовлетворенных запросов.
Одной из важных функций при обработке задания является управление контрольными точками - необходимым средством для решения больших задач в пакетном режиме.
Контрольные точки позволяют продолжить выполнение задания с последней контрольной точки в случае отказов аппаратуры ОМ или ОС. Заказ на образование контрольных точек устанавливается специальным обращением со стороны задачи к ИТ, и задание продолжает выполняться с контрольными точками либо до выдачи команды конца работы с контрольными точками, либо до конца выполнения задания. При задании режима контрольных точек может быть установлен циклический интервал времени, по истечении которого каждый раз автоматически будет производиться установка контрольной точки. Если интервал времени не задается, то установка контрольных точек производится только по явным командам от пользовательских задач.
В обоих случаях контрольная точка будет устанавливаться между шагами задания.
При установке контрольной точки ИТ останавливает задачу обращением "Остановить задачу" к псевдозадаче управления задачами. В ответ ИТ получает информацию о состоянии задачи - идентификаторы тех задач, ответы от которых ждет данная задача. Задаче с контрольными точками разрешается общаться только с системными задачами АРХИВ, ОБМЕНМД, ОБМЕНМП. ИТ сообщает этим задачам идентификатор задачи пользователя, для которой строится контрольная точка. Задачи ОБМЕНМД и ОБМЕНМП заканчивают обмены, заказанные данной задачей.
Получив ответы от обменнных задач и задачи АРХИВ, ИТ запускает задачу ЖУРНАЛ. ЖУРНАЛ, опрашивая системные задачи, заносит в файл следующие записи: список открытых файлов, установленная среда поиска (информация от задачи АРХИВ), время выполнения, состояние задачи, состояние каналов связи, состояние регистров и оперативной памяти задачи (информация от псевдозадачи управления задачами), паспортная информация ( от Инициатора-Терминатора).
Получив управление от задачи ЖУРНАЛ, ИТ сообщает задаче АРХИВ о построении контрольной точки для данной задачи. АРХИВ приводит в согласованное состояние файл-журнал и модифицированные файлы той задачи, для которой строится контрольная точка(см. 3.3.8). После этого ИТ возобновляет выполнение задачи пользователя - выдает команды "Продолжить задачу" для псевдозадачи управления задачами и "Продолжить работу" для задачи АРХИВ.
Механизм контрольных точек используется при разрешении конфликтов по нехватке массовой памяти. ИТ выбирает одну из задач, попавших в тупик из-за нехватки массовой памяти, и устанавливает для нее контрольную точку. После построения контрольной точки задача ликвидируется и освобождается массовая и оперативная память.
Продолжение выполнения с контрольной точки происходит после отказов ОМ и ОС, либо после разрешения конфликта по массовой памяти.ИТ запрашивает оперативную память под задачу (ее размер имеется в файле-журнале), создает задачу и запускает задачу ЖУРНАЛ для действий, обратных построению контрольной точки. Журнал сообщает задачам ОБМЕНМД, ОБМЕНМП и АРХИВ информацию, характеризующую задачу пользователя; информирует псевдозадачу управления задачами о состоянии задачи, времени выполнения, состоянии каналов связи; заполняет в соответствии с содержимым файла-журнала память, в которой хранятся копии регистров, и собственно саму оперативную память задачи.
Получив управление от задачи ЖУРНАЛ, ИТ продолжает выполнение задачи пользователя - выдает команды: "Продолжить задачу" для псевдозадачи управления задачами и "Продолжить работу" для задач ОБМЕНМД, ОБМЕНМП и АРХИВ.