Слайд 2
![4.1 Загрузчик = (loader) = программа, которая помещает программы в память и готовит их к выполнению](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-1.jpg)
4.1 Загрузчик
= (loader) = программа, которая помещает программы в память
и готовит их к выполнению
Слайд 3
![4.1.1 Общая схема загрузки (вариант 1: один модуль)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-2.jpg)
4.1.1 Общая схема загрузки
(вариант 1: один модуль)
Слайд 4
![4.1.1 Общая схема загрузки (вариант 2: несколько модулей)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-3.jpg)
4.1.1 Общая схема загрузки
(вариант 2: несколько модулей)
Слайд 5
![4.1.2 Загрузчик: функции распределение ОП (ОЗУ) связывание модулей перемещение программы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-4.jpg)
4.1.2 Загрузчик:
функции
распределение ОП (ОЗУ)
связывание модулей
перемещение программы
загрузка программ в ОП (ОЗУ)
запуск на выполнение
Слайд 6
![4.1.2.1 Загрузчик : 1. распределение памяти = выделение в памяти места для программ](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-5.jpg)
4.1.2.1 Загрузчик :
1. распределение памяти
= выделение в памяти места для
программ
Слайд 7
![4.1.2.1 Загрузчик : 1. распределение памяти при загрузке по фиксированным адресам](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-6.jpg)
4.1.2.1 Загрузчик :
1. распределение памяти
при загрузке по фиксированным адресам
Слайд 8
![4.1.2.1 Загрузчик : 1. распределение памяти = Слева и справа:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-7.jpg)
4.1.2.1 Загрузчик :
1. распределение памяти
= Слева и справа: подпрограмма SQRT
размещена с адреса 0100
= Слева: оттранслированная программа 1-го пользователя размещена с адреса 1200 ? между модулями с памяти свободный участок памяти
= Справа: оттранслированная программа 2-го пользователя размещена с адреса 056F ? перекрытие памяти !!!
Слайд 9
![4.1.2.1 Загрузчик : 1. распределение памяти этот процесс необходимо автоматизировать](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-8.jpg)
4.1.2.1 Загрузчик :
1. распределение памяти
этот процесс необходимо автоматизировать
Слайд 10
![Загрузчик: 2. связывание = связывание двух или более отдельных оттранслированных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-9.jpg)
Загрузчик:
2. связывание
= связывание двух или более отдельных оттранслированных программ
= разрешение
символических ссылок между объектными программами
= машинно-зависимое свойство загрузчика
Слайд 11
![Загрузчик: 2. связывание](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-10.jpg)
Слайд 12
![4.1.2.2 Загрузчик: 2. связывание необходим механизм вызова подпрограмм Пометка символов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-11.jpg)
4.1.2.2 Загрузчик:
2. связывание
необходим механизм вызова подпрограмм
Пометка символов как внешних
(обращение к ним в этой программе, а их определения – в других)
Пометка символов как внутренних
(их определения в этой программе, а обращение к ним – в других)
Слайд 13
![4.1.2.2 Загрузчик: 2. связывание Выделение регистров для хранения адреса вызываемой](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-12.jpg)
4.1.2.2 Загрузчик:
2. связывание
Выделение регистров для хранения адреса вызываемой подпрограммы
Осуществление возврата
в вызывающую программу
+ . . . настройка передаваемых параметров
= машинно-зависимое свойство загрузчика
Слайд 14
![4.1.2.3 Загрузчик: 3. перемещение = модификация объектной программы так, чтобы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-13.jpg)
4.1.2.3 Загрузчик:
3. перемещение
= модификация объектной программы так, чтобы она
могла загружаться с адреса, отличного от первоначального
= настройка всех величин в программе, зависящих от физических адресов (адресные константы) в соответствии с адресом выделенной для программы области памяти
Слайд 15
![4.1.2.3 Загрузчик: 3. перемещение](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-14.jpg)
4.1.2.3 Загрузчик:
3. перемещение
Слайд 16
![4.1.2.3 Загрузчик: 3. перемещение Если внутри модулей имеются адресные константы,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-15.jpg)
4.1.2.3 Загрузчик:
3. перемещение
Если внутри модулей имеются адресные
константы, которые вычисляются от начала модуля, то адреса будут корректироваться относительно «базы»
Слайд 17
![4.1.2.3 Загрузчик: 3. перемещение = перемещающие загрузчики (relocationg loader) или](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-16.jpg)
4.1.2.3 Загрузчик:
3. перемещение
= перемещающие загрузчики (relocationg loader) или
относительные загрузчики (relative loader) = загрузчики, обеспечивающие перемещение программ
Слайд 18
![4.1.2.4 Загрузчик: 4. загрузка = физическое помещение машинных команд и данных в память](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-17.jpg)
4.1.2.4 Загрузчик:
4. загрузка
= физическое помещение машинных команд
и данных в память
Слайд 19
![4.1.2.4 Загрузчик: 5. запуск на выполнение = передача управления первой](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-18.jpg)
4.1.2.4 Загрузчик:
5. запуск на выполнение
= передача управления первой
команде машинной программы , помещенной в ОЗУ
Слайд 20
![Загрузчик многие загрузчики обеспечивают перемещение и связывание в некоторых системах](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-19.jpg)
Загрузчик
многие загрузчики обеспечивают перемещение и связывание
в некоторых системах функция связывания
отделена от функций перемещения и загрузки ? связывание выполняется специальной редактором связей, перемещение и загрузка - загрузчиком
Слайд 21
![4.1.3 Схемы загрузки = Сегмент = информация, рассматриваемая как единое](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-20.jpg)
4.1.3 Схемы загрузки
= Сегмент = информация, рассматриваемая как единое целое, независимо
от того, идет ли речь о программе или о данных
обычно сегментом является отдельная исходная или объектная программа
Слайд 22
![4.1.3 Схемы загрузки в ассемблерах и некоторых языках программирования можно](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-21.jpg)
4.1.3 Схемы загрузки
в ассемблерах и некоторых языках программирования можно задать исходную
программу, состоящую из нескольких программных сегментов и сегментов данных
Слайд 23
![4.1.3 Схемы загрузки Загрузчик типа «компиляция - выполнение» Абсолютный загрузчик Настраивающий загрузчик Непосредственно связывающий загрузчик](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-22.jpg)
4.1.3 Схемы загрузки
Загрузчик типа «компиляция - выполнение»
Абсолютный загрузчик
Настраивающий загрузчик
Непосредственно связывающий загрузчик
Слайд 24
![4.1.3 Схемы загрузки Объединитель Связывающий загрузчик Перекрывающий загрузчик Динамический объединитель](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-23.jpg)
4.1.3 Схемы загрузки
Объединитель
Связывающий загрузчик
Перекрывающий загрузчик
Динамический объединитель
Слайд 25
![4.1.3.1 Загрузчик типа «компиляция - выполнение»](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-24.jpg)
4.1.3.1 Загрузчик типа «компиляция - выполнение»
Слайд 26
![4.1.3.1 Загрузчик типа «компиляция - выполнение» компилятор (Ассемблер), работая в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-25.jpg)
4.1.3.1 Загрузчик типа «компиляция - выполнение»
компилятор (Ассемблер), работая в одной части
ОЗУ, помещает машинные команды и данные по мере трансляции непосредственно в выделенные для них ячейки памяти
Слайд 27
![4.1.3.1 Загрузчик типа «компиляция - выполнение» «загрузчик» состоит из одной](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-26.jpg)
4.1.3.1 Загрузчик типа «компиляция - выполнение»
«загрузчик» состоит из одной команды,
которая передает управление первой команде, подлежащей выполнению скомпилированной программы
Слайд 28
![4.1.3.1 Загрузчик типа «компиляция - выполнение» Недостатки: некоторая часть памяти](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-27.jpg)
4.1.3.1 Загрузчик типа «компиляция - выполнение»
Недостатки:
некоторая часть памяти не может
быть использована, так как занятая транслятором память недоступна для объектной программы.
Слайд 29
![4.1.3.1 Загрузчик типа «компиляция - выполнение» Недостатки: при каждом новом](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-28.jpg)
4.1.3.1 Загрузчик типа «компиляция - выполнение»
Недостатки:
при каждом новом сеансе работы
с программой приходится заново транслировать (ассемблировать) программу пользователя
Слайд 30
![4.1.3.1 Загрузчик типа «компиляция - выполнение» Недостатки: затруднительно организовать совместную](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-29.jpg)
4.1.3.1 Загрузчик типа «компиляция - выполнение»
Недостатки:
затруднительно организовать совместную работу нескольких
сегментов программы, если исходные программы написаны на разных языках
Слайд 31
![4.1.3.1 Загрузчик типа «компиляция - выполнение» Реализация функций: распределение –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-30.jpg)
4.1.3.1 Загрузчик типа «компиляция - выполнение»
Реализация функций:
распределение – программист
связывание – программист
перемещение
– транслятор
загрузка – транслятор
запуск на выполнение – «загрузчик»
Слайд 32
![4.1.3.2 Общая схема загрузки (вариант 3) (программы могут быть на разных языках)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-31.jpg)
4.1.3.2 Общая схема загрузки
(вариант 3)
(программы могут быть на разных языках)
Слайд 33
![4.1.3.2 Общая схема загрузки (вариант 3) можно организовать хранение результатов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-32.jpg)
4.1.3.2 Общая схема загрузки
(вариант 3)
можно организовать хранение результатов трансляции на некотором
внешнем носителе, с тем чтобы загрузить их в память тогда, когда понадобится выполнить полученную программу
при этом скомпилированная программа может быть загружена в ту же область памяти, которую раньше занимал транслятор (? трансляция уже будет завершена)
Слайд 34
![Общая схема загрузки использование объектной программы как промежуточных данных приводит](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-33.jpg)
Общая схема загрузки
использование объектной программы как промежуточных данных приводит к включению
в СП загрузчика
входные данные загрузчика: объектная программа (скомпилированные машинные команды, данные и другая информация)
выходные данные загрузчика: машинные команды и данные в форме, готовой для выполнения ЭВМ, помещенные в ОЗУ
Слайд 35
![4.1.3.2 Общая схема загрузки (вариант 3) Преимущества: загрузчик занимает меньше](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-34.jpg)
4.1.3.2 Общая схема загрузки
(вариант 3)
Преимущества:
загрузчик занимает меньше памяти, чем транслятор ?
у пользователя оказывается большее количество доступной памяти
при повторном выполнении программы нет необходимости в перекомпилировании
Слайд 36
![4.1.3.2 Общая схема загрузки (вариант 3) Преимущества: если все трансляторы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-35.jpg)
4.1.3.2 Общая схема загрузки
(вариант 3)
Преимущества:
если все трансляторы имеют единый формат объектной
программы и используют одинаковые соглашения о связях, возможно писать подпрограммы на различных языках (язык объектных программ общий)
Слайд 37
![4.1.3.2 Общая схема загрузки (вариант 3) Преимущества: если все трансляторы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-36.jpg)
4.1.3.2 Общая схема загрузки
(вариант 3)
Преимущества:
если все трансляторы имеют единый формат объектной
программы и используют одинаковые соглашения о связях, возможно писать подпрограммы на различных языках (язык объектных программ общий)
Слайд 38
![4.1.3.3 Абсолютный загрузчик](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-37.jpg)
4.1.3.3 Абсолютный загрузчик
Слайд 39
![4.1.3.3 Абсолютный загрузчик транслятор выводит результаты трансляции исходной программы почти](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-38.jpg)
4.1.3.3 Абсолютный загрузчик
транслятор выводит результаты трансляции исходной программы почти в такой
же форме, как при использовании схемы «компиляция-выполнение»
но результаты трансляции выводятся в файл объектной программы, а не в ОП
Слайд 40
![4.1.3.3 Абсолютный загрузчик загрузчик считывает текст программы на машинном языке](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-39.jpg)
4.1.3.3 Абсолютный загрузчик
загрузчик считывает текст программы на машинном языке и помещает
его в ОП по адресу, заданную транслятором
Слайд 41
![4.1.3.3 Абсолютный загрузчик Преимущества: обеспечивает большее количество ОП, доступной пользователю](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-40.jpg)
4.1.3.3 Абсолютный загрузчик
Преимущества:
обеспечивает большее количество ОП, доступной пользователю (? во время
загрузки транслятор уже не находится в памяти)
простота реализации
Слайд 42
![4.1.3.3 Абсолютный загрузчик Недостатки: программист должен указать транслятору адрес загрузки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-41.jpg)
4.1.3.3 Абсолютный загрузчик
Недостатки:
программист должен указать транслятору адрес загрузки готовой программы
если имеется
ряд подпрограмм, программист должен помнить абсолютный адрес каждой из них и использовать эти адреса в явном виде для связывания подпрограмм
Слайд 43
![4.1.3.3 Абсолютный загрузчик Реализация функций: распределение – программист связывание –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-42.jpg)
4.1.3.3 Абсолютный загрузчик
Реализация функций:
распределение – программист
связывание – программист
перемещение – транслятор
загрузка –
загрузчик
запуск на выполнение – загрузчик
Слайд 44
![4.1.3.3 Абсолютный загрузчик Не подходит: для многозадачных ОС для использования в библиотеках стандартных подпрограмм](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-43.jpg)
4.1.3.3 Абсолютный загрузчик
Не подходит:
для многозадачных ОС
для использования в библиотеках стандартных подпрограмм
Слайд 45
![4.1.3.3 Абсолютный загрузчик Домашнее задание: Записать алгоритм работы абсолютного загрузчика](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-44.jpg)
4.1.3.3 Абсолютный загрузчик
Домашнее задание:
Записать алгоритм работы абсолютного загрузчика
Бек Л. Введение в
системное программирование. М.: Мир, 1988
Слайд 46
![4.1.3.4 Настраивающий загрузчик Назначение: избежать необходимости повторной трансляции всех подпрограмм](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-45.jpg)
4.1.3.4 Настраивающий загрузчик
Назначение:
избежать необходимости повторной трансляции всех подпрограмм при внесении изменения
в одну из них
освободить программиста от задач распределения памяти и осуществления связи подпрограмм
Слайд 47
![4.1.3.4 Настраивающий загрузчик Пример: загрузчик подпрограмм в двоично-символической форме (BSS-загрузчик)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-46.jpg)
4.1.3.4 Настраивающий загрузчик
Пример:
загрузчик подпрограмм в двоично-символической форме (BSS-загрузчик)
допускает наличие в программе
нескольких программных сегментов и только одного сегмента данных (общего сегмента)
Слайд 48
![4.1.3.4 Настраивающий загрузчик транслятор компилирует каждый программный сегмент независимо и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-47.jpg)
4.1.3.4 Настраивающий загрузчик
транслятор компилирует каждый программный сегмент независимо и передает загрузчику
текст и информацию о перемещениях и перекрестных ссылках между сегментами
Слайд 49
![4.1.3.4 Настраивающий загрузчик Выходные данные транслятора: вектор переходов объектная программа](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-48.jpg)
4.1.3.4 Настраивающий загрузчик
Выходные данные транслятора:
вектор переходов
объектная программа
индикаторы переместимости
+
общая длина программы
длина вектора переходов
Слайд 50
![4.1.3.4 Настраивающий загрузчик Вектор переходов: = информация обо всех других](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-49.jpg)
4.1.3.4 Настраивающий загрузчик
Вектор переходов:
= информация обо всех других программах, к которым
в данной программе имеются обращения
записывается перед текстом объектной программы
Слайд 51
![4.1.3.4 Настраивающий загрузчик индикаторы (биты) переместимости = разряд перемещения: =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-50.jpg)
4.1.3.4 Настраивающий загрузчик
индикаторы (биты) переместимости =
разряд перемещения:
= информация о ячейках, содержимое
которых зависит от расположения программы в памяти (они должны быть изменены при необходимости загрузки программы в произвольное место памяти)
Слайд 52
![4.1.3.4 Настраивающий загрузчик](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-51.jpg)
4.1.3.4 Настраивающий загрузчик
Слайд 53
![4.1.3.4 Настраивающий загрузчик Пример: Пусть подпрограмма B является первой по](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-52.jpg)
4.1.3.4 Настраивающий загрузчик
Пример:
Пусть подпрограмма B является первой по порядку вызываемой подпрограммой
программы A
1. Работа транслятора:
первая ячейка вектора переходов содержит символическое имя B
Слайд 54
![4.1.3.4 Настраивающий загрузчик команда (оператор/ инструкция), содержащее вызов подпрограммы B,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-53.jpg)
4.1.3.4 Настраивающий загрузчик
команда (оператор/ инструкция), содержащее вызов подпрограммы B, транслируется в
команду перехода, указывающую адрес элемента вектора переходов, связанного с подпрограммой B
Слайд 55
![4.1.3.4 Настраивающий загрузчик 2. Работа загрузчика: 1. загружает в память](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-54.jpg)
4.1.3.4 Настраивающий загрузчик
2. Работа загрузчика:
1. загружает в память объектную программу A
и вектор переходов
2. загружает в память каждую подпрограмму из вектора переходов (B), используя информацию о длине программы A
Слайд 56
![4.1.3.4 Настраивающий загрузчик 2. Работа загрузчика: 3. в каждый элемент](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-55.jpg)
4.1.3.4 Настраивающий загрузчик
2. Работа загрузчика:
3. в каждый элемент вектора переходов помещает
команду перехода к соответствующей подпрограмме
Слайд 57
![4.1.3.4 Настраивающий загрузчик 2. Работа загрузчика: ?вызов подпрограммы B приведет](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-56.jpg)
4.1.3.4 Настраивающий загрузчик
2. Работа загрузчика:
?вызов подпрограммы B приведет к выполнению команды
перехода к первой ячейке вектора переходов, в которой будет находиться команда перехода к вызываемой подпрограмме B
Слайд 58
![4.1.3.4 Настраивающий загрузчик используется: в ЭВМ с фиксированным (единым) форматом](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-57.jpg)
4.1.3.4 Настраивающий загрузчик
используется:
в ЭВМ с фиксированным (единым) форматом команд и непосредственной
адресацией (адрес операнда явно указывается в команде, базовые регистры не используются)
Слайд 59
![4.1.3.4 Настраивающий загрузчик при перемещении программ необходимо вносить изменения в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-58.jpg)
4.1.3.4 Настраивающий загрузчик
при перемещении программ необходимо вносить изменения в адресную
часть каждой команды,
перемещение программ намного сложнее
Слайд 60
![4.1.3.4 Настраивающий загрузчик Решение проблемы перемещения: 1. Работа транслятора: с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-59.jpg)
4.1.3.4 Настраивающий загрузчик
Решение проблемы перемещения:
1. Работа транслятора:
с каждой командой или
полем адреса связывает специальный двоичный разряд
Слайд 61
![4.1.3.4 Настраивающий загрузчик Решение проблемы перемещения: 1. Работа транслятора: если](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-60.jpg)
4.1.3.4 Настраивающий загрузчик
Решение проблемы перемещения:
1. Работа транслятора:
если поле адреса подлежит настройке,
бит устанавливается в единицу, иначе в нуль
эти биты переместимости помещаются в объектную программу
Слайд 62
![4.1.3.4 Настраивающий загрузчик Решение проблемы перемещения: 2. Работа загрузчика: используя](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-61.jpg)
4.1.3.4 Настраивающий загрузчик
Решение проблемы перемещения:
2. Работа загрузчика:
используя значения битов переместимости, изменяет
содержимое полей адреса в соответствии с начальным адресом программы
Слайд 63
![4.1.3.4 Настраивающий загрузчик BSS-загрузчик автоматически выполняет все 5 функций загрузчика,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-62.jpg)
4.1.3.4 Настраивающий загрузчик
BSS-загрузчик автоматически выполняет все 5 функций загрузчика, при этом:
для распределения – информация о длине программы
для перемещения – биты переместимости
Слайд 64
![4.1.3.4 Настраивающий загрузчик Недостатки: вектор переходов не вполне удобен для](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-63.jpg)
4.1.3.4 Настраивающий загрузчик
Недостатки:
вектор переходов не вполне удобен для загрузки и сохранения
внешних данных (расположенных в другом программном сегменте)
вектор переходов увеличивает размер объектной программы
Слайд 65
![4.1.3.4 Настраивающий загрузчик Недостатки: работает с программными сегментами, но не](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-64.jpg)
4.1.3.4 Настраивающий загрузчик
Недостатки:
работает с программными сегментами, но не облегчает доступ к
сегментам данных, которые могут совместно использоваться несколькими подпрограммами
Слайд 66
![4.1.3.4 Настраивающий загрузчик Устранение недостатка 3: использовать общий сегмент данных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-65.jpg)
4.1.3.4 Настраивающий загрузчик
Устранение недостатка 3:
использовать общий сегмент данных
расширения поля битов переместимости
до двух разрядов:
01 - перемещение по отношению к программному сегменту
Слайд 67
![4.1.3.4 Настраивающий загрузчик 10 - перемещение по отношению к адресу](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-66.jpg)
4.1.3.4 Настраивающий загрузчик
10 - перемещение по отношению к адресу общего сегмента
данных
00 или 11 – при перемещении не требуется модификация
Слайд 68
![4.1.3.5 Непосредственно связывающий загрузчик наиболее полно обеспечивает возможность перемещения в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-67.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
наиболее полно обеспечивает возможность перемещения в памяти программ
и данных
является наиболее распространенным
Слайд 69
![4.1.3.5 Непосредственно связывающий загрузчик Преимущество: допускает использование большого числа программных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-68.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Преимущество:
допускает использование большого числа программных сегментов и сегментов
данных
? обеспечивает гибкие перекрестные обращения между сегментами и возможности доступа
? допускает независимую трансляцию программ
Слайд 70
![4.1.3.5 Непосредственно связывающий загрузчик Транслятор должен передать загрузчику: длину каждого](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-69.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Транслятор должен передать загрузчику:
длину каждого сегмента программы или
данных
словарь внешних символов (ESD)
объектные коды оттранслированной программы (TXT)
Слайд 71
![4.1.3.5 Непосредственно связывающий загрузчик словарь перемещаемых символов (RLD) адрес, с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-70.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
словарь перемещаемых символов (RLD)
адрес, с которого должно начинаться
выполнение программы, если она не вызывается другой программой, а является «главной»
Слайд 72
![4.1.3.5 Непосредственно связывающий загрузчик Словарь внешних символов (ESD) : список](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-71.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Словарь внешних символов (ESD) :
список всех символов сегмента,
к которым возможно обращение из других сегментов, и их относительные адреса внутри сегмента
список всех символов, не определенных в сегменте, к которым есть обращения внутри сегмента
Слайд 73
![4.1.3.5 Непосредственно связывающий загрузчик Словарь внешних символов (ESD) : для](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-72.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Словарь внешних символов (ESD) :
для программ, к которым
возможно обращение извне:
тип («определение сегмента»)
относительный адрес
длина (в байтах)
Слайд 74
![4.1.3.5 Непосредственно связывающий загрузчик Словарь внешних символов (ESD) : для](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-73.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Словарь внешних символов (ESD) :
для локальных имен:
тип
(«местное определение»)
относительный адрес
Слайд 75
![4.1.3.5 Непосредственно связывающий загрузчик Словарь внешних символов (ESD) : для внешних имен: тип («внешняя ссылка»)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-74.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Словарь внешних символов (ESD) :
для внешних имен:
тип
(«внешняя ссылка»)
Слайд 76
![4.1.3.5 Непосредственно связывающий загрузчик Объектные коды оттранслированной программы (TXT): машинные](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-75.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Объектные коды оттранслированной программы (TXT):
машинные коды, полученные в
результате трансляции исходной программы, и приписанные им относительные адреса (по аналогии с абсолютным загрузчиком)
Слайд 77
![4.1.3.5 Непосредственно связывающий загрузчик Словарь перемещаемых символов (RLD): информация о](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-76.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Словарь перемещаемых символов (RLD):
информация о расположении адресных констант
в сегменте и описание того, каким образом должны изменяться их значения
Слайд 78
![4.1.3.5 Непосредственно связывающий загрузчик Словарь перемещаемых символов (RLD): адрес каждой](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-77.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Словарь перемещаемых символов (RLD):
адрес каждой константы, которая должна
изменяться при перемещении программы
указание на символ, значение которого определяет величину изменения константы
операцию, с помощью которой вносится изменение (+ / -)
Слайд 79
![4.1.3.5 Непосредственно связывающий загрузчик Словарь перемещаемых символов (RLD): процесс корректировки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-78.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Словарь перемещаемых символов (RLD):
процесс корректировки адресных констант для
внутренних символов, называют перемещением
процесс определения содержимого адресных констант для внешних символов называют связыванием
Слайд 80
![4.1.3.5 Непосредственно связывающий загрузчик Словарь перемещаемых символов (RLD): используется в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-79.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Словарь перемещаемых символов (RLD):
используется в обоих случаях
?
его называют словарь перемещения и связывания
Слайд 81
![4.1.3.5 Непосредственно связывающий загрузчик Работа загрузчика в 2 просмотра: назначение](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-80.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Работа загрузчика в 2 просмотра:
назначение адресов внешним ссылкам
фактические
связывание, перемещение и загрузка
Слайд 82
![4.1.3.5 Непосредственно связывающий загрузчик Реализация функций: распределение – загрузчик связывание](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-81.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Реализация функций:
распределение – загрузчик
связывание – загрузчик
перемещение – загрузчик
загрузка
– загрузчик
запуск на выполнение – загрузчик
Слайд 83
![4.1.3.5 Непосредственно связывающий загрузчик Недостатки: необходимость при каждом выполнении программы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-82.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Недостатки:
необходимость при каждом выполнении программы повторно выполнять все
функции загрузчика
для всех необходимых подпрограмм таких подпрограмм могут быть десятки и сотни ? процесс загрузки приводит к затратам времени
Слайд 84
![4.1.3.5 Непосредственно связывающий загрузчик Недостатки: хотя загрузчик и занимает меньше](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-83.jpg)
4.1.3.5 Непосредственно связывающий загрузчик
Недостатки:
хотя загрузчик и занимает меньше места, чем транслятор,
но он требует выделения значительного места в памяти
Слайд 85
![4.1.3.6 Общая схема загрузки (вариант 4)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-84.jpg)
4.1.3.6 Общая схема загрузки
(вариант 4)
Слайд 86
![4.1.3.6 Общая схема загрузки (вариант 4) Для устранения этих недостатков:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-85.jpg)
4.1.3.6 Общая схема загрузки
(вариант 4)
Для устранения этих недостатков:
выполнения загрузки с
помощью двух самостоятельных программ:
объединителя
загрузчика модуля
Слайд 87
![4.1.3.7 Объединитель 1. Объединитель: = программа, которая выполняет те же](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-86.jpg)
4.1.3.7 Объединитель
1. Объединитель:
= программа, которая выполняет те же самые функции, что
и непосредственно связывающий загрузчик по объединению подпрограмм, но настроенный и связанный текст помещает не в ОП, а файл загрузочного модуля
Слайд 88
![4.1.3.7 Объединитель = загрузочный модуль = имеет формат, допускающий загрузку программы в ОП для выполнения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-87.jpg)
4.1.3.7 Объединитель
= загрузочный модуль = имеет формат, допускающий загрузку программы в
ОП для выполнения
Слайд 89
![4.1.3.7 Объединитель 2. Загрузчик модуля: = реализует функции: загрузки запуска](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-88.jpg)
4.1.3.7 Объединитель
2. Загрузчик модуля:
= реализует функции:
загрузки
запуска
= это может быть
настраивающий (перемещающий) загрузчик
Слайд 90
![4.1.3.7 Объединитель Два основных класса: построитель образа памяти редактор связей](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-89.jpg)
4.1.3.7 Объединитель
Два основных класса:
построитель образа памяти
редактор связей
Слайд 91
![4.1.3.6 Объединитель: построитель образа памяти простейший тип объединителя вырабатывает загрузочный](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-90.jpg)
4.1.3.6 Объединитель: построитель образа памяти
простейший тип объединителя
вырабатывает загрузочный модуль, похожий
на файл, создаваемый абсолютным загрузчиком
? привязка программы к конкретным адресам памяти выполняется в процессе объединения подпрограмм
Слайд 92
![4.1.3.7 Объединитель: построитель образа памяти загрузочный модуль такого типа выглядит](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-91.jpg)
4.1.3.7 Объединитель: построитель образа памяти
загрузочный модуль такого типа выглядит как моментальная
фотография (образ памяти), его называют модулем образа памяти, а объединитель - построитель образа памяти
Слайд 93
![4.1.3.7 Объединитель: построитель образа памяти Преимущества: относительно прост обеспечивает высокое быстродействие](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-92.jpg)
4.1.3.7 Объединитель: построитель образа памяти
Преимущества:
относительно прост
обеспечивает высокое быстродействие
Слайд 94
![4.1.3.7 Объединитель: построитель образа памяти Реализация функций: распределение – объединитель](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-93.jpg)
4.1.3.7 Объединитель: построитель образа памяти
Реализация функций:
распределение – объединитель
связывание – объединитель
перемещение –
объединитель
загрузка – загрузчик
запуск на выполнение – загрузчик
Слайд 95
![4.1.3.8 Связывающий загрузчик = редактор связей выполняет только связывание объектных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-94.jpg)
4.1.3.8 Связывающий загрузчик = редактор связей
выполняет только связывание объектных модулей
и подпрограмм
сохраняет информацию, необходимую для перемещения модуля в памяти ? загрузочный модуль как единое целое может затем настраиваться и загружаться в произвольное место ОП
Слайд 96
![4.1.3.8 Связывающий загрузчик = редактор связей ? загрузчик модуля должен](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-95.jpg)
4.1.3.8 Связывающий загрузчик = редактор связей
? загрузчик модуля должен
также выполнять функции распределения памяти и перемещения
Слайд 97
![4.1.3.8 Связывающий загрузчик = редактор связей Преимущества: обеспечивает большую гибкость](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-96.jpg)
4.1.3.8 Связывающий загрузчик = редактор связей
Преимущества:
обеспечивает большую гибкость при распределении,
памяти и загрузке, чем построитель образа памяти
Недостаток:
более сложен, чем построитель образа памяти
Слайд 98
![4.1.3.8 Связывающий загрузчик = редактор связей Реализация функций: распределение –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-97.jpg)
4.1.3.8 Связывающий загрузчик = редактор связей
Реализация функций:
распределение – загрузчик
связывание –
объединитель
перемещение – загрузчик
загрузка – загрузчик
запуск на выполнение – загрузчик
Слайд 99
![Объединитель Преимущество (построитель образа памяти и редактор связей): программы, которые](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-98.jpg)
Объединитель
Преимущество (построитель образа памяти и редактор связей):
программы, которые предполагается использовать многократно,
обрабатываются только один раз, после чего могут быть загружены тогда, когда это потребуется
Слайд 100
![4.1.3.9 Динамическая загрузка схемы загрузки 1-6 предполагают, что все необходимые](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-99.jpg)
4.1.3.9 Динамическая загрузка
схемы загрузки 1-6 предполагают, что все необходимые подпрограммы загружаются
в память одновременно
если общее количество требуемой всеми подпрограммами памяти превышает размер доступной ОП, возникают затруднения
Слайд 101
![4.1.3.9 Динамическая загрузка существуют аппаратные методы для решения этой задачи](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-100.jpg)
4.1.3.9 Динамическая загрузка
существуют аппаратные методы для решения этой задачи (страничная организация
и сегментация)
рассмотрим традиционную схему динамической загрузки с последовательным использованием объединителя и загрузчика
Слайд 102
![4.1.3.10 Перекрывающий загрузчик обычно разные подпрограммы одной программы требуются в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-101.jpg)
4.1.3.10 Перекрывающий загрузчик
обычно разные подпрограммы одной программы требуются в разное время
(например, фазы анализа и генерации кода в компиляторе взаимно исключают друг друга)
Слайд 103
![4.1.3.10 Перекрывающий загрузчик используя явное определение того, какая подпрограмма содержит](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-102.jpg)
4.1.3.10 Перекрывающий загрузчик
используя явное определение того, какая подпрограмма содержит обращения к
другим подпрограммам, можно задать так называемую структуру с перекрытием (оверлейную структуру), которая указывает на взаимоисключающие подпрограммы
Слайд 104
![4.1.3.10 Перекрывающий загрузчик Пример: A вызывает B,D B вызывает C,E](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-103.jpg)
4.1.3.10 Перекрывающий загрузчик
Пример:
A вызывает B,D
B вызывает C,E
D вызывает E
C,E не вызывают
?
всего 100К
Слайд 105
![4.1.3.10 Перекрывающий загрузчик Пример: никогда не выполняются одновременно: В и D С и Е](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-104.jpg)
4.1.3.10 Перекрывающий загрузчик
Пример:
никогда
не выполняются
одновременно:
В и D
С и Е
Слайд 106
![4.1.3.10 Перекрывающий загрузчик Как уменьшить требуемое количество памяти? ? загрузить](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-105.jpg)
4.1.3.10 Перекрывающий загрузчик
Как уменьшить требуемое количество памяти?
? загрузить в память
только те процедуры, которые в действительности могут быть использованы в некоторый конкретный момент времени
Слайд 107
![4.1.3.10 Перекрывающий загрузчик ? всего 70К (определено по самой длинной ветви структуры с перекрытием)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-106.jpg)
4.1.3.10 Перекрывающий загрузчик
? всего 70К (определено по самой длинной ветви структуры
с перекрытием)
Слайд 108
![4.1.3.10 Перекрывающий загрузчик распределение памяти для всех подпрограмм в структуре](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-107.jpg)
4.1.3.10 Перекрывающий загрузчик
распределение памяти
для всех подпрограмм
в структуре с перекрытием
Необходимо:
загрузчик
модуля загружает различные
подпрограммы по мере
необходимости
Слайд 109
![4.1.3.10 Перекрывающий загрузчик = супервизор перекрытий = та часть загрузчика,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-108.jpg)
4.1.3.10 Перекрывающий загрузчик
= супервизор перекрытий =
та часть загрузчика, которая принимает запросы
и загружает необходимые подпрограммы
Слайд 110
![4.1.3.10 Перекрывающий загрузчик Реализация функций: распределение – загрузчик связывание –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-109.jpg)
4.1.3.10 Перекрывающий загрузчик
Реализация функций:
распределение – загрузчик
связывание – объединитель
перемещение – загрузчик
загрузка –
загрузчик
запуск на выполнение – загрузчик
Слайд 111
![4.1.3.11 Динамический объединитель Недостатки схем 1-7: если к некоторой подпрограмме](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-110.jpg)
4.1.3.11 Динамический объединитель
Недостатки схем 1-7:
если к некоторой подпрограмме имеется обращение,
а она не используется при выполнении программы, загрузчик все равно выполняет работу по связыванию этой подпрограммы с основной программой
Слайд 112
![4.1.3.11 Динамический объединитель требуют от программиста явного указания тех подпрограмм, которые могут потребоваться](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-111.jpg)
4.1.3.11 Динамический объединитель
требуют от программиста явного указания тех подпрограмм, которые могут
потребоваться
Слайд 113
![4.1.3.11 Динамический объединитель Для устранения недостатков: динамическое связывание = =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-112.jpg)
4.1.3.11 Динамический объединитель
Для устранения недостатков:
динамическое связывание =
= механизм, с помощью которого
загрузка и связывание по внешним ссылкам откладываются до выполнения программы
Слайд 114
![4.1.3.11 Динамический объединитель транслятор вырабатывает текст и информацию для объединения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-113.jpg)
4.1.3.11 Динамический объединитель
транслятор вырабатывает текст и информацию для объединения и настройки
адресов исходной программы
загрузчик загружает только основную программу
Слайд 115
![4.1.3.11 Динамический объединитель когда основная программа выполняет команды перехода по](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-114.jpg)
4.1.3.11 Динамический объединитель
когда основная программа выполняет команды перехода по внешним адресам
или обращается к внешним переменным, вызывается загрузчик
загрузчик выполняет загрузку в память сегмента, содержащего внешний адрес, к которому было сделано обращение
Слайд 116
![4.1.3.11 Динамический объединитель Преимущества: в ОП загружаются только те сегменты](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-115.jpg)
4.1.3.11 Динамический объединитель
Преимущества:
в ОП загружаются только те сегменты программ или данных,
к которым действительно происходит обращение
возможна динамическая реконфигурация системы
Слайд 117
![4.1.3.11 Динамический объединитель Недостаток: дополнительные затраты и сложности, связанных с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-116.jpg)
4.1.3.11 Динамический объединитель
Недостаток:
дополнительные затраты и сложности, связанных с переносом большей части
процесса связывания на время выполнения программы
Слайд 118
![4.1.3.11 Динамический объединитель Реализация функций: распределение – загрузчик связывание –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/598669/slide-117.jpg)
4.1.3.11 Динамический объединитель
Реализация функций:
распределение – загрузчик
связывание – загрузчик
перемещение – загрузчик
загрузка –
загрузчик
запуск на выполнение – загрузчик