Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Возможности микропроцессоров Intel в защищенном режиме (ликбез).

Возможности микропроцессоров Intel в защищенном режиме(ликбез).

Наиболее полно возможности микропроцессоров реализуются при работе в защищенном режиме. Это основной режим работы процессоров (64 Гбайт ОЗУ, 64 Тбайт виртуальной ОЗУ, память доступна сегментами, размер которых задается программно до 4 Гбайт, реализованы мощные средства защиты для эффективной реализации мультипрограммных режимов операционных систем). Обеспечивается защита пользовательских программ друг от друга и от операционной системы, предотвращающая несанкционированное вмешательство в их работу. В защищенном режиме запрещено:

- программе обращаться за пределы своего сегмента;

- использовать в прикладных программах команды IN, OUT, HLT;

- процессору обращаться в сегмент у которого уровень привилегий более высокий чем у процессора;

- и т. д..

В защищенном режиме используется, защита памяти, сегментация памяти, страничная организация памяти, многозадачность. Помимо сегментации памяти в защищенном режиме может быть реализована ее страничная организация. Этот режим позволяет использовать дополнительные команды, введенные для поддержки многозадачных операционных систем, и позволяет более экономно использовать оперативную память в мультипрограммном режиме.

Переключение процессора в защищенный режим осуществляется программным путем записью единицы в бит PE (0-й разряд регистра процессора CR0 (MSW) с помощью команды MOV или LMSW. Обратный переход в реальный режим возможен только с помощью команды MOV записью в бит PE нуля. Перед переключением процессора в защищенный режим необходимо, в реальном режиме, в оперативной памяти создать GDT, LDT, IDT, загрузить в регистры процессора необходимую для работы в защищенном режиме управляющую информацию, так как без этого переключение процессора в защищенный режим не имеет смысла.

Виртуальная память организуется и поддерживается операционной системой, которая использует для этого возможности защищенного режима процессоров. Виртуальная память состоит из сегментов памяти, большая часть из которых размещены на жестких дисках, а другая часть сегментов располагается в оперативной динамической памяти на системной плате. Обращение процессора в сегмент виртуальной памяти, который находится на жестком диске и не доступен напрямую процессору, является для процессора событием вызывающем в нем внутреннее прерывание. Через прерывание процессор переходит на выполнение системной программы, которая выполняет «подкачку» нужного сегмента виртуальной памяти с жесткого диска в динамическую оперативную память, и «выгрузку» ненужного сегмента на жесткий диск.

При работе микропроцессора в защищенном режиме каждый из сегментов - команд, данных, стека - характеризуется соответствующими атрибутами, которые определяют локализацию данного сегмента в общем пространстве адресуемой памяти и правила обращения к нему. Атрибуты сегмента представлены в виде 8-байтной структуры данных, называемой дескриптором. Дескрипторы сегментов хранятся в памяти в виде массивов данных, в форме таблиц. Микропроцессоры использует три типа таблиц дескрипторов: GDT - глобальная таблица дескрипторов; LDT - локальная таблица дескрипторов; IDT - таблица дескрипторов прерываний (рис.1)

 

Рис. 1. Виртуальная память.

Дескрипторы GDT определяют сегменты системной области виртуальной памяти в которых располагаются программы операционной системы и их данные. Таблица GDT содержит любые типы дескрипторов, кроме используемых при обработке прерываний. В GDT заносятся дескрипторы сегментов, которые могут использоваться системой при выполнении различных задач.

Дескрипторы LDT определяют сегменты прикладной области виртуальной памяти в которых располагаются прикладные программы и их данные. Обычно в дескрипторе содержится базовый (начальный) адрес сегмента, размер сегмента и байт, содержащий «права доступа» к данному сегменту.

Процессор, инициируя на системном интерфейсе операцию обращения в сегмент виртуальной памяти, находит дескриптор, определяющий этот сегмент, с помощью «селектора» содержащегося в соответствующем сегментном регистре CS, DS, SS, ES, FS, GS, или в регистрах TR, LDTR. Селектор представляет собой 16-разрядный указатель, который имеет три поля (рис. 2). Поле RPL (биты 0-1) определяет уровень привилегий запроса (requestprivilegelevel). Это двухразрядный код, указывающий допустимый уровень защиты сегмента, который может быть выбран с помощью данного селектора. Поле TI (бит 2) служит индикатором таблицы. Его значение указывает выбираемую таблицу: GDT при ТI=0, LDT при TI-1, то есть указывает на обращение в сегменты системной области виртуальной памяти, или в сегменты прикладной области виртуальной памяти. Поле INDEX (биты 3-15) служит индексом для выбора одного из 8192 дескрипторов, содержащихся в таблице. Физический адрес для чтения дескриптора формируется на сумматоре адреса процессора путем сложения базового адреса сегмента соответствующей дескрипторной таблицы и индекса, взятого из разрядов с 3-15 соответствующего селектора.

 

Рис. 2. Регистры процессора (в защищенном режиме).


Лицензия