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

Динамическая загрузка времени исполнения



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

Альтернативное решение состоит в том, чтобы отложить вычисление абсолютного адреса до того момента, пока он не потребуется реально во время исполнения. С этой целью модуль загружается в основную память со ссылками в относительном виде (рис. 7.15,в), и только при реальном выполнении команды вычисляется абсолютный адрес. Для того чтобы такой метод не снижал общую производительность, требуется аппаратная поддержка вычисления абсолютного адреса (о чем говорилось в разделе 7.2),

Динамическое вычисление адресов обеспечивает высокую гибкость — программа может быть загружена в любую область основной памяти, причем программа может быть выгружена из основной памяти, а позднее — загружена в другое место в памяти.





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



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