Общая информация. Часть 5.

Программы простой структуры эффективны по скорости выполнения, так как не требуют дополнительной загрузки других программ. Однако может оказаться, что задача слишком велика и все ее программы нельзя загрузить в оперативную память одновременно. В этом случае вместо простой структуры следует использовать динамические структуры.

Динамические структуры не требуют одновременного присутствия в памяти всех модулей программы при выполнении. Модули динамически загружаются в память, когда это требуется. Следует различать динамические последовательные и параллельные структуры.

В динамических последовательных структурах вызываемый динамически модуль выполняется последовательно. Это значит, что вызывающий модуль не выполняется до завершения выполнения вызванного модуля.

В динамических параллельных структурах вызываемый и вызывающий модули выполняются параллельно.

Типы загрузочных модулей в зависимости от возможности повторного использования. Возможность многократного использования загрузочного модуля в памяти без перезагрузки является важной характеристикой программного модуля. Снижение числа загрузок копии в память повышает производительность вычислительной системы, а уменьшение количества одновременно функционирующих копий снижает размер затрачиваемой на этапе выполнения памяти.

В зависимости от возможности повторного использования программ различают три типа загрузочных модулей: однократно используемые, повторно используемые и реентерабельные. Тип модуля определяется во время редактирования связей по указанию программиста. Это одна из характеристик модуля, формируемых редактором связей в оглавлении библиотеки.

Однократно используемые модули изменяются в процессе выполнения и не могут быть повторно использованы. Поэтому при каждом обращении к такому модулю его необходимо вновь вызвать из библиотеки.

Повторно используемые модули являются самовосстанавливающимися, так что любая часть, измененная в процессе выполнения, восстанавливается перед повторным использованием. Следовательно, одна и та же копия загрузочного модуля в оперативной памяти может использоваться повторно. Имеется одно условие использования загрузочного модуля несколькими задачами: в момент обращения к нему какой-либо задачи он не должен использоваться другой задачей. Если же это случается, то запросы задач ставятся в очередь до освобождения модуля.