Бит D задает тип данных, размещенных в сегменте:
D = 0 – 16-битные данные, D = 1 – 32-битные данные.
AVL – бит, предоставляемый в распоряжение пользователя (available).
Бит P – бит присутствия: 0 – на диске, 1 – в оперативной памяти, биты DPL – уровень привилегий дескриптора (Descriptor Privilege Level), обеспечивающий защиту доступа к сегменту..
При доступе к сегменту запрашиваемый уровень привилегий RPL или текущий уровень привилегий CPL (соответствует уровню привилегий дескриптора кода выполняемой сейчас программы) должны быть больше DPL (в логическом смысле; для сравнения их числовых значений отношение должно быть меньше).
Бит S – бит режима сегмента: пользовательский или системный (User / Supervisor).
Биты типа говорят, является сегмент программой или данными и определяют режим доступа:
|
Биты |
11 |
10 |
9 |
|
Данные |
1 |
E |
W |
|
Код |
0 |
C |
R |
R – только чтение; W – только запись; E – бит расширения при загрузке сегмента (1 – при увеличении адресов, 0 – при уменьшении адресов); бит С – признак согласования сегментов (уровень привилегий, с которыми обращается к данному сегменту, всегда приравнивается к уровню данного сегмента – в моделях процессоров выше i386 он существует только для поддержки).
Бит А – бит обращения к сегменту, устанавливается при обращении к сегменту и через некоторое время сбрасывается операционной системой (обеспечивает дисциплины замещения сегментов).
Алгоритм преобразования виртуального адреса в физический адрес (рис. 6.12).
База Виртуальный
или
логический

+
Смещение адрес 
(ЛА)


+
* Индекс



Коэффициент
масштабирования (1,2,4,8)

ЛА селектор ЛА смещения

Сегментная трансляция
Линейный адрес

0
PG&PE
1

DIR PAGE offset
Страничная трансляция
Физический адрес ФА
Рис. 6.12
Схема выполнения сегментной трансляции (рис. 6.13)
I этап
Сегментная трансляция – это преобразование логического адреса (селектор сегмента и смещение сегмента из команды программы) в линейный адрес. На основании селектора происходит выборка дескриптора из локальной или глобальной таблицы дескрипторов и запись его в скрытую часть сегментного регистра. В результате формируется линейный адрес сегмента (ЛАС) по правилу ЛАС = БАС + смещение.
II этап
Страничная трансляция (Рис.6.14) – это преобразование линейного адреса в физический адрес. Если используется реальный режим или нет разбиения сегмента на страницы, то этот этап пропускается и ФА = ЛАС.
Каталог Страница Смещение Линейный адрес
(10) (10) (12)
PG PE TC1 TC2
CR0
+ + + ФА
dir page
CR3 База адреса каталога














Рис.6.14
CRi – i-й ( i =0..3) регистр управления, PG – бит признака страничной организации сегмента, PE (Protect Enable) – признак установки защищенного режима; (CR0. PG)&(CR0. PE) = 1 - признак страничной трансляции. ТС1 – таблица каталогов, ТС2 – таблица страниц
Размер ФАП = 1К каталогов* 1К страниц * 4К смещение = 1k x 1k x 4k= 4Gb.
Формат строки таблицы страниц:
|
31 12 |
11 |
10 7 |
6 |
5 |
4 3 |
2 |
1 |
0 |
|
Адрес страни-чного кадра |
AVL |
0 |
D |
A |
00 |
U/S |
R/W |
P |
AVL – бит, предоставляемый в распоряжение пользователя, бит P – бит присутствия страницы, бит D – бит мусора, бит А – бит обращения к странице, бит U/S (User / Supervisor) – бит режима использования страницы: пользовательский или системный, бит R/W (Read/Write) – бит доступа (по чтению/записи).
Обеспечивается только при CR0.PE =1(защищенный режим). Защита может осуществляться на уровне страниц и на уровне сегментов.
Защита на уровне сегментов и на уровне страниц обеспечивается либо по атрибутам дескриптора сегмента, либо по атрибутам строки таблицы страниц. При защите на уровне сегментов влияет соотношение уровней привилегий:
RPL – запрашиваемый уровень (при помещении селектора в сегментный регистр);
DPL – уровень привилегий дескриптора, фиксируется при первом обращении к данным дескриптора и является минимальным уровнем, при котором данный сегмент доступен.
CPL – текущий уровень привилегий, который соответствует уровню кодового сегмента текущей программы.
Виды защиты на уровне сегментов:
Контроль
типа не зависит от уровня привилегий,
определяется дескриптором
Контроль границ
Ограничение
адресуемой области памяти. 
Ограничение точек входа в процедуру зависят от RPL, DPL, CPL
Ограничение набора команд.
Контроль типа выполняется:
На этапе загрузки селектора в регистр сегмента (проверка типа сегмента, для которого осуществляется загрузка селектора)
На этапе обращения к сегменту.
Примеры: В CS может быть загружен только селектор дескриптора программного сегмента; в DS не может быть загружен селектор дескриптора, который не доступен для чтения; в SS не может быть загружен селектор дескриптора, который не доступен для записи.
При обращении:
Нельзя записать в кодовый сегмент.
Нельзя записать в сегмент данных, если бит записи равен нулю.
Нельзя читать кодовый сегмент, если бит чтения равен нулю.
Контроль границ. Предотвращает выход за пределы сегмента.
Ограничение адресуемой области памяти. Доступ к памяти возможен при условии
{RPL, CPL} DPL (численно).
Ограничение точек входа в процедуру.
Если CPL = DPL, то возможен вход в процедуру по Call, Jump.
Если CPL DPL (численно), то возможен только доступ по Call через специальный дескриптор, называемый «вентиль вызова».
Ограничение набора команд. Все команды по уровню доступа на выполнение делятся на 3 группы:
Свободные команды (непривилегированные) – выполняются в любом режиме.
Привилегированные команды – выполняются на уровне ядра.
Чувствительные команды, зависят от уровня привилегий, но могут выполняться в любом режиме супервизора (от 0 до 2). В основном это команды ввода-вывода.
Виды защиты на уровне страниц:
Контроль типа.
Ограничение адресной области памяти.
На уровне страниц защита зависит только от битов режима U/S и доступа R/W.
Выпускаемые накопители информации представляют собой гамму запоминающих устройств (ЗУ) с различным принципом действия, физическими и эксплуатационными характеристиками. ЗУ принято делить на виды и категории в связи с их принципами функционирования, эксплуатационными, физическими и программными характеристиками. Так, например, по принципам функционирования различают следующие виды устройств: