Читайте также:
|
|
Начиная с АТ-386 в защищенном режиме используется сегментно-страничная организация.
Для управления сегментами в защищенном режиме используется таблица сегментов. В регистры сегментов SC, DS, SS и ES засылаются не адрес сегмента (в виде параграфа), а номер селектора. ОС типа WINDOWS, OS/2, UNIX для каждой задачи выделяют необходимое количество сегментов и помещают их адреса в LDT (локальная таблица дескрипторов). Сама ОС использует GDT. Далее схема работы совпадает с рассматриваемой с некоторыми изменениями. Так, в качестве регистра сегментов в ПЭВМ используются регистры дескрипторных таблиц GDTR для GDT, LDTR для LDT и IDTR для таблицы дескрипторов прерываний. Значения этих регистров меняются при переключении между задачами. Операнды в командах содержат только смещения в пределах сегментов. Номера сегментов находятся в сегментных регистрах и называются селекторами. Запись селекторов производится командой загрузки селекторных регистров из программы или ОС.
Селектор включает три поля:
- индекс по соответствующей таблицы дескрипторов;
- индикатор типа таблицы (локальная или глобальная должны использоваться; таблица прерываний используется командами прерывания и аппаратной системой прерываний);
- поле RPL (Requestsd Privilege Level).
В реальном режиме в сегментом регистре находится адрес параграфа ОП (адрес с точностью до 16 байтов). В каждой из таблиц дескрипторов находится базовый адрес (24 бита для 286, 32 бита для 386 и 486), длина сегмента, DRL с кодом кольца защиты данного сегмента и еще ряд данных.
Виртуальный адрес не формируется транслятором, как в супер-ЭВМ, а представляет собой линейный адрес, сформированный механизмом сегментной организации. Этот линейный адрес и является виртуальным адресом.
Каждая страница - это блок памяти размером 4 Кбайта (страничные кадры). В виртуальной памяти по мере необходимости осуществляется своппинг страниц. Секция на диске по 4 Кбайта для хранения страниц называется страничными слотами. Разрешением и запрещением страничной организации управляет бит в слове состояния (32-й бит в регистре управления CR3, названый PG). Допускается работать только со страницами без сегментов, поместив все в один большой сегмент. Когда не используется страничная организация, линейные и физические адреса совпадают.
Линейный адрес при страничной организации рассматривается, как совокупность трех полей (табл. 5.4).
Таблица 5.4
10 бит | 10 бит | 12 бит |
TABLE (DIR) | PAGE | BYTE (OFFSET) |
TABLE и BYTE - названия полей. В скобках указаны альтернативные названия полей. Полю TABLE соответствует s в теории сегментно-страничной организации.
Сегмент, определенный селектором, при страничной организации разбивается на отдельные разделы. Каждый такой раздел соответствует понятию сегмента в сегментно-страничной организации. Количество разделов может быть равна 210 = 1024.
Страницы определяются внутри раздела и их может быть 210=1024. Размер страницы 212 =4*210=4 Кбайта. Страницы, содержащие сегмент программы или данных, могут быть рассеяны по разным частям памяти. Их размещение определяется содержанием каталога разделов (соответствует таблице сегментов) и таблиц страниц. Базовый адрес каталога разделов размещается в регистре CR3. Каталог разделов занимает одну страницу памяти, где для каждой из 1024 разделов содержатся 32-разрядные указатели входа в таблицу страниц этого раздела. Каждая из таблиц страниц также занимает 1 страницу по 4 байта на указатель для каждой из 1024 страниц.
Ассоциативную память в ПЭВМ называют буфером ассоциативной трансляции (TLB) (в IBM - 370 и в ЕС ЭВМ РЯД 2 ее называли буфером быстрой переадресации). Для TLB принята дисциплина обслуживания LRU- замещение наиболее долго неиспользуемой строки. В TLB может храниться не более 32 указателей.
Дата добавления: 2015-10-02; просмотров: 46 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Стратегии свопинга страниц | | | Абсолютный загрузчик |