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

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

Компоновщик. Обрабатывает объектные модули, подготовленные для выполнения в ФОДОС, объединяет функции редактора связей и загрузчика. Такое объединение позволяет сократить время запуска задачи.

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

Компоновщик осуществляет поиск в библиотеках объектных модулей, прикомпоновывая к загрузочному модулю необходимые (т. е. имеющие общие с обрабатываемым модулем глобальные имена) модули. Поиск в библиотеке SYSLIB производится по умолчанию всегда; библиотека FORLIB включается в поиск по ключу /F; остальные библиотеки требуют явного указания в списке компонуемых вместе файлов с объектными модулями. В отличие от построителя задач, компоновщик не требует специального ключа, указывающего, что данный файл — библиотека. Перфоленточный компоновщик является упрощенным вариантом компоновщика ФОДОС. Их отличия носят технологический и языковый характер. Технологические отличия полностью совпадают с отличиями перфоленточиого ассемблера от макроассеблера, а языковые отличия заключаются в том, что перфоленточный компоновщик не создает оверлейных структур и соответственно не имеет средств описания перекрытий; секции не могут быть расширены; исходные параметры задаются не в виде ключей, а в диалоге (как и присваивание логических номеров). Загрузочный модуль, подготовленный перфоленточным компоновщиком, может быть затем выполнен в ФОДОС. При этом перфоленточные средства ввода-вывода должны быть заранее прикомпонованы к выполняемой программе.

Генератор мультипрограммного пакета. Обрабатывает объектные модули, подготовленные для выполнения в ПЛОС и ФОДОС, выполняет функции перфоленточиого компоновщика и, кроме того, формирует описатели процессов и стеки, необходимые для выполнения программ под управлением ОС УП. При этом форма исходных и результирующих продуктов такая же, как для перфоленточиого компоновщика.

В результате работы генератора формируется задание, которое выполняется в режиме разделения времени процессами из неизменного состава пакета процессов; в дальнейшем может произойти смена всего задания. Все параметры описателя вводятся в режиме диалога. К заполняемым параметрам относятся: имя процесса; размер стека; приоритет. Если описатель создан заранее (средствами какого-либо языка программирования, например, в виде записи Паскаля), то диалог позволяет изменить отдельные поля описателя.