Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Отображение адресного пространства программы на основную память




Алгоритмы распределения, использования, освобождения ресурсов и представления к ним доступа предназначены для наиболее эффек­тивной организации работы всего комплекса устройств ЭВМ. Рас­смотрим их на примере управления основной памятью.

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

Выделение ресурсов может быть осуществлено самим програм­мистом (особенно, если он работает на языке, близком машинному), но может производиться и операционной системой.

Если выделение ресурсов производится перед выполнением про­граммы, такой процесс называется статическим перемещением, в результате которого программа «привязывается» к определенному месту в памяти вычислительной машины. Если же ресурсы выделяются в процессе выполнения программы, это называется динамичес­ким перемещением, и в этом случае программа не привязана к опреде­ленному месту в реальной памяти. Динамический режим можно реа­лизовать только с помощью операционной системы.

При статическом перемещении могут встретиться два случая:

• реальная память больше требуемого адресного пространства про­граммы. В этом случае загрузка программы в реальную память производится, начиная с 0-го адреса (рис. 4.2).

Рис. 4.2. Загрузка программы в избыточную реальную память

Загружаемая программа А является абсолютной программой, так как никакого изменения адресов в адресном пространстве, подготовленном компилятором, при загрузке в основную память не происходит — программа располагается с 0-го адреса реальной памяти;

· реальная память меньше требуемого адресного пространства про­граммы (рис. 4.3). В этом случае программист (или операционная система) вынужден решать проблему, как организовать выполне­ние программы. Методов решения проблемы существует несколь­ко: можно создать оверлейную структуру (т.е. разбить програм­му на части, вызываемые в ОП по мере необходимости), сделать модули программы реентерабельными (т.е. допускающими одно­временную работу модуля по нескольким обращениям из разных частей программы или из различных программ) и т. д.

Рис. 4.3. Загрузка программы в реальную память при недостатке памяти

 

В некоторых операционных системах адреса откомпилированной (с 0-го адреса) программы могут быть преобразованы в адреса ре­альной памяти, отличные от 0. При этом создается абсолютный мо­дуль, который требует размещения его в памяти всегда с одного и того же адреса.

При мультипрограммном режиме, если имеем программы А, В и С, для которых известно, что программа А выполняется при разме­щении в памяти с адреса 60 Кбайт до 90 Кбайт, В — с 60 Кбайт до 90 Кбайт, С — с 50 Кбайт до 120 Кбайт, организовать их совместное выполнение невозможно, так как им необходим один и тот же участок реальной памяти. Эти программы будут ждать друг друга либо их нужно заново редактировать с другого адреса.

При работе в мультипрограммном режиме может сложиться ситу­ация, когда между программами образуются незанятые участки па­мяти. На рис. 4.4 общий объем незанятой памяти, составляющий 50 Кбайт, достаточен, чтобы загрузить и программу D, находящуюся в ожидании. Но ее не удается загрузить, так как свободные участки памяти не являются смежными. Такое состояние называется фрагмен­тацией реальной памяти. Оно характерно для систем со статическим перемещением.

Рис. 4.4. Фрагментация реальной памяти

В системах с динамическим перемещением программ перемещаю­щий загрузчик размещает программу в свободной части памяти (рис. 4.5) и допускает использование ее несмежных участков.

В этом случае имеется больше возможностей для организации муль­типрограммной работы, а следовательно, и для более эффективного использования временных ресурсов ЭВМ.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...