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. Операционная система может предусматривать для каждой задачи свое линейное адресное пространство.
В защищенном режиме процессор обеспечивает определенные механизмы защиты на основе сегментации и на основе страничного преобразования. Механизмы защиты позволяют ограничивать доступ к определенным сегментам или страницам при помощи уровней привилегий.
Механизм защиты обеспечивает соответствие любой ссылки на ячейки памяти определенным условиям. Все проверки выполняются до начала цикла обращения к памяти. Нарушение любого условия приводит к генерации исключения. Проверки выполняются параллельно с формированием адреса и поэтому не ухудшают производительность процессора.
В защищенном режиме нет способа отключить механизм защиты. Контроль пределов и типов сегментов обеспечивает целостность сегментов кода и данных. Программа не имеет права обратиться к виртуальной памяти, выходящей за предел того или иного сегмента. Программа не имеет права обратиться к сегменту данных как к коду, и наоборот.