Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС 2015 - МПС.docx
Скачиваний:
176
Добавлен:
13.03.2016
Размер:
1.28 Mб
Скачать
  1. Сегментация памяти в реальном и защищенном режимах микропроцессоров архитектуры ia-32.

Сегментация — механизм адресации, обеспечивающий существование нескольких независимых адресных пространств как в пределах одной задачи, так и в системе в целом для защиты задач от взаимного влияния. В основе механизма сегментации лежит понятие сегмента, который представляет собой независимый поддерживаемый на аппаратном уровне блок памяти. Для процессоров Intel, начиная с i8086, принят особый подход к управлению памятью. Каждая программа в общем случае может состоять из любого количества сегментов, но непосредственный доступ она имеет только к трем основным сегментам (кода, данных и стека), а также к дополнительным сегментам данных числом от одного до трех. Программа заранее не знает, по каким физическим адресам будут размещены ее сегменты. Этим занимается операционная система. Операционная система размещает сегменты программы в оперативной памяти по определенным физическим адресам, после чего помещает значения этих адресов в определенные места. Куда именно, зависит от режима работы процессора. Так, в реальном режиме эти адреса заносятся непосредственно в соответствующие сегментные регистры, а в защищенном режиме они попадают в элементы специальной системной таблицы дескрипторов. Внутри сегмента программа обращается к адресам относительно начала сегмента линейно, то есть начиная с 0 и заканчивая адресом, равным размеру сегмента. Этот относительный адрес, или смещение, который процессор использует для доступа к данным внутри сегмента, называется эффективным. Отличия моделей сегментированной организации памяти в различных режимах хорошо прослеживаются на схеме (рис. 1.3). Различают три основных модели:

  • сегментированная модель памяти реального режима;

  • сегментированная модель памяти защищенного режима;

  • сплошная модель памяти защищенного режима.

Сегментация памяти обеспечивается при любом режиме работы процессора. Сегментация реализуется путем разбиения адресного пространства на отдельные блоки — сегменты, доступ к которым производится в соответствии с определенными правилами. Сегментированная память представляет собой набор блоков, характеризуемых определенными атрибутами — такими, как расположение, размер, тип (стек, программа, данные), характеристика защиты. В системе на основе процессора Р6 каждой задаче доступны до 8192 сегментов величиной до 4 Гбайт каждый. Таким образом обеспечивается возможность использования до 64 Тбайт виртуальной памяти. Для обращения к ячейке сегментированной памяти используется составной (логический) адрес, который состоит из селектора, задающего базовый адрес сегмента (начало), и относительного адреса ячейки (байта, слова) в сегменте. Арифметическое сложение базового и относительного адреса дает физический (линейный) адрес байта или слова (одинарного, двойного или счетверенного). Правила определения базового адреса сегмента зависят от режима работы микропроцессора — реальный или защищенный.

    1. Сегментная организация памяти в реальном режиме

  • Вся память делится на сегменты

  • Адреса сегментов хранятся в сегментных регистрах, деленные на 16

  • Виртуальный адрес ячейки представляет собой комбинацию сегмент:смещение

  • Физический адрес ячейки вычисляется как сегмент*16+смещение

    1. Сегментная организация памяти в защищенном режиме

  • Используются 32-х разрядные адреса начал сегментов (базы) и смещения

  • Для хранения баз сегментов используются таблицы дескрипторов сегментов

  • Выбор дескриптора осуществляется по его номеру (селектору) хранящемуся в сегментном регистре

  • Линейный адрес формируется как база+смещение

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]