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