Дескриптор сегмента

Дескриптор сегмента

Дескриптор сегмента (в архитектуре x86) — служебная структура в памяти, которая определяет сегмент. Длина дескриптора равна 8 байт .

Структура сегментного дескриптора

Байт прав доступа (AR, англ. Access Rights, биты 8-15 на рисунке):

  • Бит P определяет доступность сегмента (0 — сегмента нет, 1 — есть). При обращении к сегменту со сброшенным битом P происходит исключение #NP, обработчик которого может загрузить/создать сегмент.
  • Номер привилегий DPL содержит 2-битный номер (0-3), определяющий, к какому уровню (кольцу) защиты относится этот сегмент.
  • Тип сегмента (биты 8-12 на рисунке). Старший бит (S) определяет сегмент как системный (S=0) или пользовательский (S=1). Значение прочих бит для системных и пользовательских сегментов описано в таблице:
Типы системных сегментов
Биты AR Описание
3 2 1 0
0 0 0 0 0 Зарезервировано
1 0 0 0 1 Свободный 16-битный TSS
2 0 0 1 0 LDT
3 0 0 1 1 Занятый 16-битный TSS
4 0 1 0 0 16-битный шлюз вызова
5 0 1 0 1 Шлюз задачи
6 0 1 1 0 16-битный шлюз прерывания
7 0 1 1 1 16-битный шлюз ловушки
8 1 0 0 0 Зарезервировано
9 1 0 0 1 Свободный 32-битный TSS
A 1 0 1 0 Зарезервировано
B 1 0 1 1 Занятый 32-битный TSS
C 1 1 0 0 32-битный шлюз вызова
D 1 1 0 1 Зарезервировано
E 1 1 1 0 32-битный шлюз прерывания
F 1 1 1 1 32-битный шлюз ловушки
Типы пользовательских сегментов
Биты AR Описание
3 2 1
0 0 0 0 Сегмент данных только для чтения
2 0 0 1 Сегмент данных для чтения/записи
4 0 1 0 Сегмент данных только для чтения, растёт вниз
6 0 1 1 Сегмент данных для чтения/записи, растёт вниз
8 1 0 0 Сегмент кода только для выполнения
A 1 0 1 Сегмент кода для выполнения/чтения
C 1 1 0 Подчинённый сегмент кода только для выполнения
E 1 1 1 Подчинённый сегмент кода для выполнения/чтения

Младший бит байта AR пользовательских сегментов (A, англ. Accessed, бит 8 на рисунке) можно использовать для сбора статистики о сегменте. При первом же обращении к сегменту (чтение, запись, выполнение) он устанавливается процессором в 1.

  • Флаг гранулярности G определяет лимит сегмента: при G=0 лимит равен значению соответствующего поля в дескрипторе, а при G=1 лимит равен полю дескриптора, умноженному на (212 = 4096). Таким образом при G=0 максимальный размер сегмента 1 МБайт, а при G=1 4 ГБайт.
  • Флаг разрядности DB (бит 22 на рисунке) актуален для пользовательских сегментов кода и стека. Определяет разрядность в 16 бит при нулевом и 32 бит при единичном значении.
  • Зарезервированный флаг (серое поле) должен всегда равняться нулю.
  • Пользовательский флаг AVL (A, бит 20 на рисунке) отдан операционной системе. Его состояние никак не влияет на работу с сегментом.

См. также

Примечания

  1. Разорванность полей дескриптора объясняется эволюционированием процессоров.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Дескриптор сегмента" в других словарях:

  • дескриптор сегмента — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN segment descriptor …   Справочник технического переводчика

  • Дескриптор шлюза — Дескриптор шлюза  служебная структура данных, служащая для различных переходов. Используется только в защищённом режиме. В реальном режиме некоторым аналогом может служить дальний адрес. Длина дескриптора стандартна и равна восьми байтам.… …   Википедия

  • Дескриптор — (англ. Descriptor): Дескриптор HTML  элемент языка разметки гипертекста HTML. В разговорной речи дескрипторы называют тегами. Дескриптор развертывания XML файлы, которые описывают, как развернуть модули. Файловый дескриптор  число… …   Википедия

  • Сегментная защита памяти — В этой статье отсутствует вступление. Пожалуйста, допишите вводную секцию, кратко раскрывающую тему статьи. Сегментная защита памяти  один из вариантов реализации защиты памяти в процессорах архитектуры x86. Может применяться в защищенном… …   Википедия

  • Регистр процессора — Эта статья включает описание термина «IP»; см. также другие значения. Регистр процессора  блок ячеек памяти, образующий сверхбыструю оперативную память (СОЗУ) внутри процессора; используется самим процессором и большой частью недоступен… …   Википедия

  • Сегментная адресация памяти — Эта статья или раздел описывает ситуацию применительно лишь к частным случаям. Необходимо переработать изложение или добавить информацию, чтобы статья описывала более общий случай …   Википедия

  • Program Segment Prefix — (рус. Префикс программного сегмента, PSP) структура данных, которая используется в операционных системах семейства DOS и CP/M для сохранения состояния компьютерных программ. PSP в DOS имеет следующую структуру: Offset (Смещение) Size (Размер)… …   Википедия

  • TSS — (англ. Task State Segment сегмент состояния задачи)  специальная структура в архитектуре x86, содержащая информацию о задаче (процессе). Используется ОС для диспетчеризации задач. В TSS содержится информация о: Состоянии регистров… …   Википедия

  • Intel 80286 — <<   Intel 80286   >> Центральный процессор Микропроцессор Intel 80286 (8 МГц) Производство: с 1 февраля 1 …   Википедия

  • 80286 — <<   Intel 80286   >> Центральный процессор Микропроцесс …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»