Программы обработки объектных модулей. Часть 1.

Построитель задач. Обрабатывает объектные модули, объединяя их в один простой или оверлейный загрузочный модуль задачи, создает все компоненты задачи в МДОС: блок управления задачей, который затем диспетчируется ядром системы; сегментированное тело задачи; рабочая область — стек задачи, может быть отведена область во внешней памяти для свертывания задачи. Таким образом, построитель задач объединяет функции редактора связей (объединение модулей и поиск в библиотеках), загрузчика (настройка по адресам) и модуля организации задач (в части построения блока управления задачей). Ядро ОС перед запуском задачи выполняет две разделенные функции: включение блока управления в таблицу диспетчирования (команда INSTALL) и пуск (команда RUN). Все это позволяет максимально сократить время для непосредственного запуска.

Для эффективного построения задач используются три инструмента: ключи, опции и язык описания перекрытий. С помощью ключей и опций задаются различные характеристики задачи, применяемого оборудования и исходных файлов. В отличие от опций ключи указывают либо наличие признака, либо его отсутствие (с приставкой ND или —). Кроме того, ключи могут относиться к отдельным входным и выходным файлам, в то время как опции относятся к задаче в целом.

Язык управления перекрытиями позволяет задавать разветвленные структуры секций, в частности любое количество поддеревьев. При этом пользователь указывает только логические связи между секциями, не производя их привязки, как при использовании компоновщика, к окнам в виртуальном адресном пространстве; построитель задач выполняет это автоматически. При этом «вылавливаются» все некорректные ссылки (между перекрывающимися секциями без обращения к корню их поддерева).

Общая картина перекрытий и логические связи между секциями не зависят от того, как эти перекрытия реализуются: с помощью обменов с внешней памятью или с помощью «перепривязки» окон в виртуальном пространстве к другим областям физической памяти, при наличии механизма переадресации (диспетчера памяти). Язык управления перекрытиями позволяет выделить уровни дерева перекрытий, которые должны размещаться в физической памяти; остальные уровни размещаются на диске. Таким образом, пользователь устанавливает размер логического буфера (см. гл. 1) для создаваемой задачи. С помощью ключей, однако, можно отметить размещение секций в физической памяти; это размещение ликвидируется автоматически, если в системе, для которой строится задача, отсутствует диспетчер памяти.

Следует отметить, что, как и все языковые процессоры, построитель задач не связывает параметры ЭВМ, на которой он сам выполняется (инструментальной ЭВМ), с параметрами ЭВМ, на которой будет выполняться построенная задача (исполняющая ЭВМ). Параметры инструментальной ЭВМ устанавливаются при генерации, а параметры исполняющей ЭВМ задаются с помощью ключей. В процессе выполнения задачи перекрытиями управляет оверлейный супервизор. При этом возможны два режима работы его использования: автоматический, когда запросы к нему формируются по обращению к отсутствующему сегменту (так же, как в компоновщике ФОДОС), или с помощью явных запросов (как в организации перекрытий ОС ЕС). Во втором режиме возможно некоторое ускорение выполнения задачи благодаря асинхронной загрузке перекрывающихся секций.