Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
43
Добавлен:
11.02.2015
Размер:
185.71 Кб
Скачать

Редактирование связей

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

Программа редактора связей осуществляет первичное разрешение межмодульных ссылок. Предположим, что в модуле А существует команда обращения к модулю В - call В. Редактор связей после объединения обоих модулей в единый загрузочный модуль в соответствующей машинной команде должен проставить адрес модуля В, определенный относительно начала всего загрузочного модуля.

Чтобы программа могла выполняться, единый загрузочный модуль должен быть помещен в RAM ЭВМ. Эту операцию называют этапом загрузки, а программу, которая осуществляет загрузку, - загрузчиком или программой выборки.

Динамическое связывание и dll

Библиотека в программировании (от англ. library) — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО).

В некоторых языках программирования то же, что модуль, в некоторых — несколько модулей. С точки зрения операционной системы (ОС) и прикладного ПО библиотеки разделяются на динамические и статические.

Динамические библиотеки

Часть основной программы, которая загружается в ОС по запросу работающей программы в ходе её выполнения (Run-time), т.е. динамически (Dynamic Link Library, DLL в Windows). Один и тот же набор функций (подпрограмм) может быть использован сразу в нескольких работающих программах, из-за чего они имеют ещё одно название — библиотеки общего пользования (Shared Library). Если динамическая библиотека загружена в адресное пространство самой ОС (System Library), то единственная копия может быть использована множеством работающих с нею программ, что положительно сказывается на степени использовании ресурса ОЗУ. Динамические библиотеки могут содержать в себе как критические для работы программы части, так и дополнительные функции. Дополнительным плюсом такого подхода является то, что динамическая библиотека может быть использована в качестве плагина (Plug-ins), расширяющего функциональность программы. Минусом является то, что в случае, если модуль, который содержит в себе критическую часть, отсутствует, программа не сможет продолжить работу.

Динамические библиотеки хранятся обычно в определенном месте и имеют стандартное расширение. Например, файлы .library в логическом томе Libs: в AmigaOS; в Microsoft Windows и OS/2 файлы библиотек общего пользования имеют расширение .dll; в UNIX‐подобных ОС — обычно .so; в Mac OS — .dylib.

При написании программы программисту достаточно указать транслятору (компилятору или интерпретатору) языка программирования, что следует подключить нужную библиотеку и использовать функцию из неё. Ни исходный текст, ни исполняемый код функции в состав программы на данном этапе не входит.

Соседние файлы в папке Темы