
- •Архитектура вычислительных систем Фон-неймановская архитектура эвм
- •Операционный и управляющий блоки вычислительного устройства.
- •Основная и внешняя память
- •Системы прерывания
- •Система по
- •Ядро и вспомогательные модули ос
- •Пользовательский и привилегированный ражим
- •Многоуровневое построение ос
- •Редактирование связей
- •Динамическое связывание и dll
Редактирование связей
В современных ОС такое объединение модулей осуществляется после этапа трансляции перед загрузкой программы в 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.
При написании программы программисту достаточно указать транслятору (компилятору или интерпретатору) языка программирования, что следует подключить нужную библиотеку и использовать функцию из неё. Ни исходный текст, ни исполняемый код функции в состав программы на данном этапе не входит.