Разрывное распределение памяти

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

1. Имя сегмента или страницы (номер).

2. Смещение ячейки памяти (внутри страницы или сегмента).

Сегментная организация памяти.

Впервые этот подход был реализован на OS/2 (IBM).

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

Дескриптор – описатель. Любая программа состоит из сегментов данных и сегментов кода. Сегменты данных в большинстве случаев можно носить изменения, а в сегменты кода в большинстве случаев вносить изменения нельзя. Физический адрес памяти формируется путём суммирования базового адреса сегмента который содержится в таблице дескрипторов сегмента и смещения являющегося частью виртуального адреса с целью защиты памяти при каждом вычислении физического адреса производится проверка смещения на предмет его нахождения в границах сегмента. Если смещение уходит за пределы размера сегмента физический адрес не вычисляется (генерируется сообщение об ошибке). Имя или номер сегмента являющееся частью виртуального адреса необходимо для нахождения соответствующей информации (строки, записи, в таблице дескрипторов сегментов). Таблицы дескрипторов содержит ряд полей основными из которых являются:

1. Адрес начала сегмента (АНС)

2. Размер сегмента (РС)

3. Права доступа к сегменту (чтение записи или только чтение)

4. Флаги (Представляют собой последовательность бит каждый из которых имеет самостоятельное значение).

Пример: Бит присутствия. Определяет где в данный момент расположено содержание сегмента в оперативной памяти или во внешней памяти. Если сегмент расположен во внешней памяти, то поля АНС и РС содержат дисковый адрес сегмента. Также определённый разряд флагов определяет тип сегмента. Сегмент данных или сегмент кода.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: