Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод указан АРХИТЕКТУРА ЭВМ Майстренко .doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
3.38 Mб
Скачать

Контрольные вопросы

  1. Назначение трансляторов.

  2. Назначение редактора связей.

  3. Назначение программы выборки.

  4. Для чего машинную программу представляют в виде модулей?

  5. Что содержат исходный, объектовый и загрузочный модули?

Тема 3.5 Особенности управления основной памятью эвм

Студент должен:

знать:

- понятия статического и динамического перемещения;

- понятие фрагментации и способы ее устранения;

- технологию динамической трансляции адресов;

- сегментную и сегменто-страничную организацию адресов.

Статическое и динамическое перемещение. Фрагментация ОП и способ ее

устранения. Динамическая трансляция адресов.

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

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

ОП

ОС

20 Кбайт

Программа А

10 Кбайт

Программа B

20 Кбайт

Программа С

Программа 0 Кбайт

D 50 Кбайт


Фрагментация основной памяти

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

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

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

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

ОП Программа D

ОС

2 0 Кбайт

Программа А

1 0 Кбайт

П рограмма B

20 Кбайт

Программа С

Сегмент 1 0

20 Кбайт

Сегмент 2 0

10 Кбайт

Сегмент 3 0

20 Кбайт


Загрузка сегментированной программы

Каждый сегмент программы должен иметь своё имя. Например, если ЭВМ имеет 32-битную адресную структуру, то максимальная длина адреса в сегменте будет равна 32 разрядам. Если 16 разрядов отводится под номер сегмента, то 16 будет отводиться под адрес байта внутри сегмента, называемый смещением.

номер сегмента (s) смещение (i)

16 разрядов

16 разрядов

31 16 15 0

Форма имени сегмента

Тогда адресное пространство программы будет состоять 216 = 64 К сегментов.

Каждый сегмент содержит 216 = 64 Кбайтов (адреса от 0 до 65536).

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

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

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

Каждая строка таблицы сегментов содержит номер сегмента и адрес начала сегмента в основной памяти. Для каждого сегмента имеется одна строка таблицы. Для динамической трансляции адресов, каждая выполняемая программа содержит кроме таблицы сегментов и регистр начала таблицы сегментов (РНТС или STOR- segment table origin register). В этот регистр занесён адрес таблицы сегментов, выполняемой в данный момент программой.