Связывающий загрузчик - Большая Энциклопедия Нефти и Газа, статья, страница 2
Третий закон Вселенной. Существует два типа грязи: темная, которая пристает к светлым объектам и светлая, которая пристает к темным объектам. Законы Мерфи (еще...)

Связывающий загрузчик

Cтраница 2


Перед вами поставлена задача разработать однопросмот-ровый непосредственно связывающий загрузчик.  [16]

Объединителем называется программа, которая выполняет те же самые функции, что и непосредственно связывающий загрузчик в части объединения подпрограмм, но вместо того, чтобы помещать настроенный и связанный текст непосредственно в память, он оформляет этот текст в виде набора данных или колоды перфокарт. Этот выходной набор данных имеет формат, допускающий загрузку программы в память для выполнения, и обычно называется загрузочным модулем. На долю загрузчика модуля остается только физическая загрузка модуля в память. Объединитель, по существу, выполняет функции распределения памяти, перемещения и связывания, а загрузчик модуля - функцию загрузки.  [17]

Если нелокальные ассоциации явно описываются в каждой подпрограмме, то обычно транслятор ( или чаще связывающий загрузчик) собирает все ассоциации в одну центральную таблицу, причем нелокальные ссылки в каждой подпрограмме во время загрузки изменяются таким образом, чтобы происходило обращение к этой таблице. В тех случаях, когда элемент программы или данных, являющийся объектом ассоциации, уже известен во время загрузки ( например, блок команд подпрограммы), можно устанавливать ссылки непосредственно на программный объект или объект данных, минуя таблицу ассоциаций. Процесс трансляции, особенно загрузка и редактирование связей независимо транслируемых программ, становится более сложным из-за необходимости собирать и объединять нелокальные ассоциации, явно декларированные в каждой подпрограмме. Однако во время выполнения программы обработка ссылки совершенно тривиальна, а поскольку нелокальная среда одна и та же для всех подпрограмм, нет нужды заменять нелокальную среду при передачах управления между подпрограммами.  [18]

19 Общая схема загрузки. [19]

В этой главе предполагается рассмотреть различные схемы загрузки, уделив особое внимание детальному обсуждению структуры непосредственно связывающего загрузчика.  [20]

Опишите наиболее характерные из этих изменений ( в предположении, что ассемблер правильно генерирует коды для непосредственно связывающего загрузчика) и объясните причины этих изменений.  [21]

22 Объектная колода для программы PG2. [22]

Функции двух просмотров загрузчика напоминают соответствующие функции просмотров ассемблера. Основной функцией первого просмотра непосредственно связывающего загрузчика является выделение памяти для каждой из программ и заполнение таблицы символов значениями внешних символов. Основная, функция второго просмотра заключается в загрузке действительного текста программы и выполнении модификации всех адресных констант, значения которых должны быть настроены в соответствии с расположением программы в памяти.  [23]

Для того чтобы можно было воспользоваться непосредственно связывающим загрузчиком ( DLL), необходимо, чтобы объединенный сегмент имел тот же формат, что и исходные сегменты.  [24]

Этапы проектирования загрузчика аналогичны этапам проектирования ассемблеров - ( гл. Заметим, что из-за того, что непосредственно связывающему загрузчику необходима информация об абсолютных ( определяемых при загрузке) значениях некоторых внешних символов до того, как он выполняет модификацию адресных констант, алгоритм работы загрузчика должен предусматривать два просмотра объектной программы.  [25]

26 Хэш-кодирование. символьные имена, значения и хэш-коды, образованные от символьных имен ( а. хэш-таблица из 8 элементов со связным списком символьных. [26]

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

Ассемблер задает имя символа, относительно которого должен настраиваться адрес, а загрузчик корректирует адреса, упомянутые в картах справочника. Объектная колода заканчивается картой END, которая в случае, если подпрограмма является основной программой, задает также и начальный адрес для выполнения. Некоторые связывающие загрузчики требуют более четырех типов карт. Однако по существу на этих картах содержится та же самая информация, хотя она и может быть распределена по другим, типам карт.  [28]

Загрузчик заносит абсолютные адреса всех этих внешних символов в таблицу символов. Во время второго просмотра загрузчик помещает текст в выделенные ячейки памяти и решает задачу настройки, модифицируя перемещаемые константы. На рис. 5.16 показана взаимосвязь просмотров для непосредственно связывающего загрузчика.  [29]

30 Блок-схема простого загрузчика. [30]



Страницы:      1    2    3