Особенности управления основной памятью ЭВМ
Особенности управления основной памятью ЭВМ.
Для выполнения программы при ее загрузке в основную память ей выделяется часть машинных ресурсов — они необходимы для размещения команд, данных, управляющих таблиц и областей ввода-вывода, т.е. производится трансляция адресного пространства откомпилированной программы в местоположение в реальной памяти.
Выделение ресурсов может быть осуществлено самим программистом (особенно, если он работает на языке, близком машинному), но может производиться и операционной системой.
Если выделение ресурсов производится перед выполнением программы, такой процесс называется статическим перемещением, в результате которого программа «привязывается» к определенному месту в памяти вычислительной машины. Если же ресурсы выделяются в процессе выполнения программы, это называется динамическим перемещением, и в этом случае программа не привязана к определенному месту в реальной памяти. Динамический режим можно реализовать только с помощью операционной системы.
При статическом перемещении могут встретиться два случая:
• реальная память больше требуемого адресного пространства программы. В этом случае загрузка программы в реальную память производится, начиная с 0-го адреса (рис. 4.2).
Лекция "8.1. Классификация трубопроводов" также может быть Вам полезна.
Рис. 4.2. Загрузка программы в избыточную реальную память
Загружаемая программа А является абсолютной программой, так как никакого изменения адресов в адресном пространстве, подготовленном компилятором, при загрузке в основную память не происходит — программа располагается с 0-го адреса реальной памяти;
· реальная память меньше требуемого адресного пространства программы (рис. 4.3). В этом случае программист (или операционная система) вынужден решать проблему, как организовать выполнение программы. Методов решения проблемы существует несколько: можно создать оверлейную структуру (т.е. разбить программу на части, вызываемые в ОП по мере необходимости), сделать модули программы реентерабельными (т.е. допускающими одновременную работу модуля по нескольким обращениям из разных частей программы или из различных программ) и т. д.
Рис. 4.3. Загрузка программы в реальную память при недостатке памяти
В некоторых операционных системах адреса откомпилированной (с 0-го адреса) программы могут быть преобразованы в адреса реальной памяти, отличные от 0. При этом создается абсолютный модуль, который требует размещения его в памяти всегда с одного и того же адреса.