Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Динамический компоновщик



Как и в случае загрузки, некоторые функции компоновки могут быть отложены. Метод, при котором компоновка отдельных внешних модулей откладывается на время после создания загружаемого модуля, называется динамической компоновкой (dynamic linking). Таким образом, загружаемый модуль содержит неразрешенные обращения к другим программам, которые могут быть разрешены либо в процессе загрузки, либо во время работы программы.

При динамическом связывании во время загрузки выполняются следующие действия. Загрузочный модуль (модуль приложения) считывается в память. Любые обращения ко внешнему (целевому) модулю приводят к поиску этого модуля загрузчиком, его загрузке и преобразованию ссылки в относительный адрес, отсчитываемый от начала модуля приложения. У такого динамического способа связывания имеется ряд преимуществ по сравнению со статической загрузкой.

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

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

• Независимым производителям программного обеспечения становится легче расширять функциональность таких распространенных операционных систем, как, например, Linux. Разработчик может предоставить новую полезную функцию для ряда приложений в виде динамически компонуемого модуля.





Дата публикования: 2014-12-08; Прочитано: 222 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...