TURBO PASCAL |
Новости
|
Что такое защищенный режим?Процессор 80286 и более поздние процессоры поддерживают два режима операций: защищенный режим и реальный режим. Реальный ре- жим совместим с работой процессора 8086 и позволяет прикладной программе адресоваться к памяти объемом до одного мегабайта. За- щищенный режим расширяет диапазон адресации до 16 мегабайт. Ос- новное отличие между реальным и защищенным режимом заключается в способе преобразования процессором логических адресов в физичес- кие. Логические адреса - это адреса, используемые в прикладной программе. Как в реальном, также и в защищенном режиме логический адрес - это 32-разрядное значение, состоящее из 16-битового се- лектора (адреса сегмента) и 16-битового смещения. Физические ад- реса - это адреса, которые процессор использует для обмена данны- ми с компонентами системной памяти. В реальном режиме физический адрес представляет собой 20-битовое значение, а в защищенном ре- жиме - 24-битовое. Когда процессор обращается к памяти (для выборки инструкции или записи переменной), он генерирует из логического адреса физи- ческий адрес. В реальном режиме генерация физического адреса сос- тоит из сдвига селектора (адреса сегмента) на 4 бита влево (это означает умножение на 16) и прибавления смещения. Полученный в результате 20-разрядный адрес используется затем для доступа к памяти. 16Мб┌────────────────┐ │ │ ┌────────┐ │ │ │Смещение├─┐ │ │ └────────┘ │ │ │ │ ├────────────────┤┐ └──┼─────>▒▒▒▒▒▒▒▒▒▒│├ сегмент 64К ┌─>├────────────────┤┘ │ │ │ │ │ Пространство │ ┌────────┐ ┌──────┐ │ │ адресов │ │Селектор├─┤ x 16 ├─────┘ │ │ └────────┘ └──────┘ │ │ 0└────────────────┘ Рис. 17.1 Генерация физического адреса в реальном режиме. Чтобы получить физический адрес в защищенном режиме, селек- торная часть логического адреса используется в качестве индекса таблицы дескрипторов. Запись в таблице дескрипторов содержит 24-битовый базовый адрес, к которому затем для образования физи- ческого адреса прибавляется смещение логического адреса. 16Мб┌────────────────┐ │ │ ┌────────┐ │ │ │Смещение├─┐ │ │ └────────┘ │ │ │ │ ├────────────────┤┐ Таблица дескрипторов └──┼─────>▒▒▒▒▒▒▒▒▒▒│├ сегмент 64К ┌──────┐ ┌─>├────────────────┤┘ ├──────┤ │ │ │ ├──────┤ │ │ Пространство │ ├──────┤ │ │ адресов │ ┌─>├──────┤───┘ │ │ │ ├──────┤ │ │ │ ├──────┤ 0└────────────────┘ │ ├──────┤ │ ├──────┤ │ ├──────┤ │ ├──────┤ │ ├──────┤ │ ├──────┤ │ ├──────┤ │ ├──────┤ ┌────────┐ │ ├──────┤ │Селектор├─┘ └──────┘ └────────┘ Рис. 17.2 Генерация физического адреса в защищенном режиме. Каждая запись в таблице дескрипторов называется дескриптором и определяет сегмент в памяти. Запись таблицы дескрипторов зани- мает 8 байт, а записанная в дескрипторе информация включает в се- бя базовый адрес, предельное значение и флаги полномочий доступа к сегменту. Записи предельного значения сегмента и полномочий доступа в дескрипторе определяют размер и тип сегмента. Сегменты могут иметь размер от 1 до 65536 байт и могут быть сегментами кода или сегментами данных. Сегменты кода могут содержать выполняемые ма- шинные инструкции и доступные только по чтению данные. Сегменты данных могут содержать данные, доступные по чтению и записи. За- писывать данные в сегменты кода или выполнять инструкции в сег- ментах данных невозможно. Любая попытка сделать это или попытка доступа к данным вне границ сегмента вызывает общий сбой по на- рушению защиты (сокращенно сбой GP). Поэтому режим и называется защищенным. По данному адресу в реальном режиме прикладная программа мо- жет определить физический адрес. В защищенном режиме это обычно не так, поскольку селекторная часть логического адреса является индексом в таблице дескрипторов, и сам селектор не имеет прямого отношения к вычислению физического адреса. Это дает то преиму- щество, что управление виртуальной памятью можно реализовать, не влияя на прикладную программу. Например, путем простого обновле- ния поля базового адреса дескриптора сегмента, операционная сис- тема может перемещать сегмент в физической памяти без влияния на использующую сегмент прикладную программу. Прикладная программа ссылается только на селектор сегмента, и на селектор не влияют изменения в дескрипторе. Прикладная программа редко имеет дело с дескрипторами. При необходимости дескрипторы создаются и уничтожаются операционной системой и администратором памяти, а прикладная программа знает о соответствующих селекторах. Селекторы аналогичны описателям фай- лов - с точки зрения прикладной программы это то, что обслужива- ется операционной системой, но в операционной системе они работа- ют как индексы содержащих дополнительную информацию таблиц. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |