3.5.1. Реальный режим

3.5.2. Режим системного управления

3.5.3. Защищенный режим

3.5.1. Реальный режим

В реальном режиме (Real Mode) МП работает как очень быстрый 8086 с возможностью использования 32-битных расширений.

Имеется две фиксированные области в памяти, которые резервируются в режиме реальной адресации:

- область инициализации системы,

- область таблицы прерываний.

3.5.2. Режим системного управления

В новых поколениях МП Intel появился еще один режим работы с памятью – режим системного управления (System Management Mode) с его помощью прозрачно даже для операционной системы на уровне BIOS реализуются функции энергосбережения.

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

3.5.3. Защищенный режим

Основным режимом работы МП является защищенный режим (Protected Mode). Ключевые особенности защищенного режима:

- виртуальное адресное пространство;

- защита;

- многозадачность.

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

Размер виртуального адресного пространства программы может превышать емкость физической памяти и достигать 64 Тбайт.

Преобразование логического адреса в физический происходит в два этапа:

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

- затем блок страничного преобразования выполняет разбиение на страницы, преобразуя линейный адрес в физический.

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

Механизм сегментации обеспечивает превосходную защиту, но он не очень удобен для реализации виртуальной памяти (подкачки). В дескрипторе сегмента есть бит присутствия, по нему процессор определяет, находится ли данный сегмент в физической памяти или на внешнем запоминающем устройстве(на винчестере). В последнем случае генерируется исключение, обработчик которого может подгрузить сегмент с жесткого диска в память.

Неудобство заключается в том, что различные сегменты могут иметь различную длину. Этого можно избежать, если механизм подкачки реализовывать на основе страничного преобразования. Особенностью этого преобразования является то, что процессор в этом случае оперирует с блоками физической памяти равной длины (4 Кбайт) – страницами.

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

Среда задачи состоит из содержимого регистров МП и всего кода с данными в пространстве памяти. МП способен быстро переключаться из одной среды выполнения в другую, имитируя параллельную работу нескольких задач.

Задачу составляют два компонента:

- адресное пространство задачи; в нее входят доступные ей сегменты кода, данных и стека. Если используется механизм привилегий, то каждой задаче должны быть предоставлены сегменты стека для всех используемых уровней привилегий.

- сегмент состояния задачи (Task State Segment – TSS). Сегмент состояния задачи хранит состояние регистров (контекст) процессора:

- состояние сегментных регистров (селекторы сегментов, формирующие адресное пространство задачи);

- состояние регистров общего назначения;

- состояние регистра флагов (EFLAGS);

- указатель очередной команды (EIP);

- значение регистра CR3 (PDBR);

- значение регистра LDTR.

Каждая задача идентифицируется селектором соответствующего ей TSS. Операционная система может предусматривать для каждой задачи свое линейное адресное пространство.

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

Механизм защиты обеспечивает соответствие любой ссылки на ячейки памяти определенным условиям. Все проверки выполняются до начала цикла обращения к памяти. Нарушение любого условия приводит к генерации исключения. Проверки выполняются параллельно с формированием адреса и поэтому не ухудшают производительность процессора.

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