В контексте операционных систем речь, по-видимому, идёт о так называемом динамическом связывании (в противоположность статическому связыванию). Программы для выполнения рутинных операций (печать символов, обмен данными с файлами или по сети) обращаются к внешним подпрограммам, которые организованы в библиотеки - файлы, содержащие код подпрограмм. Если используется статическое связывание, то при сборке программы компилятор прикрепляет к её машинному коду код необходимых подпрограмм из библиотек, подставляет в точки вызовов подпрограмм их адреса, и записывает результат в исполняемый файл (например, EXE-файл для Windows). При запуске таких программ они загружаются в память вместе с подпрограммами и выполняются. Чтобы не дублировать код подпрограмм в каждом исполняемом файле (а потом ещё и в оперативной памяти), операционная система может использовать динамические библиотеки (DLL-файлы для Windows). В этом случае машинный код подпрограмм из библиотеки загружается в общую область памяти, известную операционной системе. Программы, собранные с использованием динамического связывания, не имеют в своих файлах машинных кодов используемых подпрограмм. Вместо этого они настроены на использование таблицы адресов подпрограмм - при необходимости обратиться к подпрограмме программа ищет её адрес в этой таблице. А сама таблица адресов заполняется загрузчиком программы (это модуль операционной системы) в ходе подготовки её к выполнению. Заполнение этой таблицы и есть "связывание адресов во время выполнения". В объектно-ориентированном программировании используется похожая концепция, которая называется ранним и поздним связыванием. |
Вопросы и ответы |
Поиск
Роман Федотов | Репутация: 0 (Без голоса)
27 мая 2018 в 09:48
Надежда Ковалевская | Репутация: 0 (Без голоса)
26 мая 2018 в 15:29
Тема: Операционные системы
Vladislav Machulis | Репутация: 0 (Без статуса)
26 мая 2018 в 06:30
Оксана Дронина | Репутация: 0 (Без голоса)
21 мая 2018 в 09:50
Тема: Образование
Акмал Рахматуллаев | Репутация: 0 (Без голоса)
20 мая 2018 в 13:31
МУХАББАТ АКБАРОВА | Репутация: 0 (Без голоса)
18 мая 2018 в 16:39
Тема: Офисные технологии
NAFISA SHAKIROVA | Репутация: -2 (Без прав)
18 мая 2018 в 11:12
Тема: Офисные технологии
Владимир Каширин | Репутация: 0 (Без голоса)
18 мая 2018 в 05:40
Ирина Пальчикова | Репутация: 0 (Без голоса)
17 мая 2018 в 09:40
Тема: Математика
Анна Резван | Репутация: 0 (Без голоса)
16 мая 2018 в 19:32
Тема: Медицина
Оксана Титова | Репутация: 0 (Без голоса)
16 мая 2018 в 18:11
Валентин Воробьев | Репутация: 0 (Без голоса)
16 мая 2018 в 07:24
Тема: Мобильные технологии
Севарахон Отахонова | Репутация: 0 (Без голоса)
16 мая 2018 в 03:46
Тема: Образование
Валерий Шеcтаков | Репутация: 0 (Без голоса)
15 мая 2018 в 21:52
Тема: Базы данных
Владислав Седойкин | Репутация: 0 (Без голоса)
15 мая 2018 в 15:10
Тема: Программирование
Елена Гачегова | Репутация: 0 (Без голоса)
15 мая 2018 в 12:45
Аида Рысбаева | Репутация: 0 (Без голоса)
14 мая 2018 в 16:35
Елена Кириленко | Репутация: 0 (Без голоса)
14 мая 2018 в 16:27
Елена Кравченко | Репутация: 0 (Без голоса)
14 мая 2018 в 14:59
Добрый день. Да, но зависит от работодателя