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