Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Сегментация



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

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

tiny – сверхмалая - код программы и ее данные размещаются внутри одного и того же сегмента размером 64К байт, код и данные имеют ближний тип;

small – малая - код программы размещается внутри одного сегмента размером 64К байт, а данные - в отдельном сегменте данных размером тоже 64К байт, и код, и данные должны быть ближнего типа;

medium – средняя - код программы может превышать 64К байт, но данные помещаются в один сегмент размером 64К байт, код имеет дальний тип, а данные – ближний;

compact – компактная - код программы должен помещаться в один сегмент размером 64К байт, а данные могут превышать по размеру 64К байт, код имеет ближний тип, а данные – дальний;

large – большая - и код, и данные программы могут превышать 64К байт, но размер переменной не может превышать 64К байт, код и данные имеют дальний тип;

huge – сверхбольшая - код и данные программы могут превышать по размеру 64К байт, размер переменных также может превышать 64К байт, код и данные имеют дальний тип;

Большая и сверхбольшая модели идентичны. Модель huge введена для совместимости с языками высокого уровня.

flat – линейная – используется при программировании в защищенном режиме, размер сегмента – 4Г байт.

Линейная память: адресное пространство, состоящее из одного массива длиной до 4Г байт, которое процессор с помощью механизма трансляции адресов отображает в пространство физических адресов. С учетом аппаратной поддержки сегментации имеем совмещенные сегменты размером 4Г байт. Указатель является 32-разрядным числом, значение которого может изменяться от 0 до 232 - 1. Перемещение модулей, скомпилированных отдельно друг от друга, может быть выполнено соответствующим системным программным обеспечением. Полный указатель в этом адресном пространстве состоит из двух частей: селектора сегмента - 16-разрядного поля, идентифицирующего сегмент, и относительного 32-разрядного адреса, указывающего на байт внутри сегмента.





Дата публикования: 2015-10-09; Прочитано: 380 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...