Программный способ переадресации программ
Переадресации программ
Основные задачи виртуальной памяти
Требование исключения взаимных помех
Предпосылки появления виртуальной памяти
Организация виртуальной памяти
Виртуальная память появилась для решения проблем многопрограммных пакетных режимов работы и режимов коллективного доступа высокопроизводительных ЭВМ.
Основными требованиями этих режимов являлись: независимость подготовки программ и исключение взаимных помех.
Требование исключения взаимных помех заключается в том, что возможные конфликты программ должны разрешаться также на уровне операционных систем.
Для этого в пределах программ операционной системы предусмотрен ряд корректно написанных сервисных программ по управлению этими ресурсами. Для их использования предусмотрены стандартные вызовы, например, через команды прерывания.
Основными задачами виртуальной памяти являются реализации:
· динамической переадресации программ,
· организация памяти единого уровня.
В соответствии с основной концепцией виртуальной памяти пользователи могут писать программы с использованием любых адресов математической памяти. Переадресация программ заключается в изменении всех адресов обращения к памяти за командами и данными в соответствии с адресами памяти, выделенными операционной системой.
Имеется два способа переадресации программ: программный и аппаратный. Аппаратный способ переадресации используется в механизме виртуальной памяти. Альтернативой ему является программный способ.
Схема программного способа переадресации программ
При статической переадресации исходная программа, возможно разделенная на части, написанная с использованием различных языков программирования, перед выполнением проходит две процедуры преобразования:
· Перевод программы с используемого языка программирования на язык машинных команд (процедура компиляции программы). В результате этой процедуры формируются объектные модули. Объектные модули – это программы в машинных кодах, но не настроенные на "свободные участки адресов физической памяти".
· Дальше используются две программы операционной системы: супервизор памяти (программа выделения свободных участков оперативной памяти) и редактор связей (программа, связывающая отдельные участки программы в единую последовательность команд – исполняемый модуль).
Все эти процедуры преобразования программ необходимы и при однопрограммных режимах работы, когда нет проблемы распределения памяти.
Разница заключается в том, что в многопрограммных режимах при каждом запуске (прогоне) программы нужно повторять преобразование объектного модуля в исполняемый модуль.