Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otveti MPS.docx
Скачиваний:
6
Добавлен:
25.09.2019
Размер:
63.22 Кб
Скачать
  1. Страничная организация памяти;

РС – регистр страниц Современные МП ВС используют сегментно-страничную организацию памяти, преобразуют логические адреса (т. е. адреса, которые видят программисты) физические адре¬са (реальные адреса физической памяти) за два шага: 1) трансляция сегмента, при которой логический адрес, состоящий из селектора сег¬мента и смещения (относительною адреса внутри сегмента), преобразуется в линейный адрес1; ' Ряд микропроцессорных систем использует только страничную организацию памяти, в них трансляция виртуального адреса происходит за один шаг. 2) страничная трансляция, при которой полученный на первом шаге линейный адрес преобразуется в физический адрес. Этот шаг необязательный, он используется по усмот¬рению проектировщиков программного обеспечения (ПО). Трансляция происходит незаметно для прикладного программиста. На рис. 3.12 представлены два шага трансляции на высоком уровне абстракции. Этот рисунок и дальней¬шее содержание этой главы представляют упрощенный взгляд на механизм адресации. На самом деле механизм адресации включает также механизмы защиты памяти. При выполнении трансляции сегментов этого шага трансляции процессор использует следующие структуры данных: • дескрипторы; • таблицы дескрипторов; • селекторы; • регистры сегментов.

  1. Дескрипторы.

Дескриптор сегмента обеспечивает процессор данными, которые не¬обходимы для преобразования логического адреса в линейный. Дескрипторы создаются компиляторами, редакторами связей, загрузчиками или другими системными программа¬ми, но не прикладными программами. Дескрипторы всех типов имеют один из этих форматов. Дескрипторы сегментов содер¬жат следующие поля. База: задает расположение сегмента в 4-Гбайтном линейном адресном пространстве. Процессор объединяет три фрагмента поля Ваза из формата дескриптора для образова¬ния единого адреса. Дескрипторы, используемые дпя кодовых сегментов прикладных программ и сегментов данных 31 23 15 7 0 База 31-24 G X 0 AVL Предел 19-16 Р DPL 1 Тип А База 23-16 База сегмента 15-0 Предел сегмента 15-0 Дескрипторы, используемые для специальных системных сегментов место «1» стоит «0» Рис. 3.14. Общий формат дескриптора сегмента (А -доступность; AVL - пригоден для использова¬ния прикладными программами; DPL -уровень привилегий дескриптора; О -дробность; Р - Присут¬ствие сегмента) Дескрипторы, используемые для специальных системных сегментов место «1» стоит «0» Рис. 3.15. Формат неприсутствующего дескриптора Предел: задает размер сегмента. В результате объединения процессором двух частей поля предела дескриптора получается 20-разрядное значение. Процессор интерпретирует поле предела двояко, в зависимости от состояния разряда дробности О: • в байтах, для задания границы до 1 Мбайта; • в 4-Кбайтных единицах для задания предела до 4 Гбайт. При загрузке предел сдвигает¬ся влево на 12 разрядов, и младшие 12 разрядов устанавливаются в«1». Разряд дробности (О): указывает единицы, в которых интерпретируется предел. Когда разряд нулевой (О = 0), предел интерпретируется в байтах, когда установлен (С = 1)-предеп интерпретируется в единицах по 4 Кбайта. Тип: устанавпивает различия между разными видами дескрипторов. DРL. (уровень привилегий дескриптора): используется механизмом защиты. Разряд присутствия сегмента (Р): если этот разряд нулевой, дескриптор не приго¬ден для преобразования адресов; процессор вырабатывает исключение в то время, когда селектор для этого дескриптора загружается в сегментный регистр. Операционная система может использовать поля, помеченные как «пригодны». Операционная система, которая использует идею сегментированной виртуальной памяти, устанавливает разряд Р в «0» в одном из двух случаев: • когда линейное адресное пространство, занимаемое сегментом, не преобразуется ме¬ханизмом страничной организации; • когда сегмента нет в основной памяти. Разряд доступа (А): процессор устанавливает этот разряд тогда, когда осуществляет¬ся обращение к сегменту, т. е. когда селектор для этого дескриптора загружается в сегмен¬тный регистр или когда селектор этого дескриптора используется командой проверки се¬лектора. Таблицы дескрипторов. Дескрипторы сегментов хранятся в таблицах двух видов: 1) глобальной таблице дескрипторов (ОРТ); 2) локальной таблице дескрипторов (ЮТ). Таблица дескрипторов - это просто массив из 8 байтовых записей, которые содержат дескрипторы. как показано на рис. 3.16. Таблица дескрипторов имеет переменную длину и может содержать до 8192 (213) дескрипторов. Однако первая запись GDT (ИНДЕКС = 0) не используется для размещения дескриптора. Процессор размещает GDT и текущую ЮТ в памяти посредством регистров GDTR и LDTR. Эти регистры хранят базовые адреса таблиц в линейном адресном пространстве, а также пределы сегментов таблиц. Команды LGDT и SGDT обеспечивают доступ к регистру GDTR, команды же LLDT и SLDT -доступ к LDTR.

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