ФЭНДОМ


Защищённый режим (protected mode) впервые появился в 16-разрядном микропроцессоре 80286. Переход в него выполнялся путём установки младшего бита 16-разрядного слова состояния машины (MSW), для загрузки которого была введена привилегированная инструкция LMSW, а для чтения его значения — инструкция SMSW. Обратный переход — из защищённого режима в реальный — не был предусмотрен; чтобы его осуществить, необходимо было выполнить сброс процессора.

Защищённый режим микропроцессора 80286 обеспечивал защиту памяти на основе сегментов, для чего были введены таблицы глобальных (GDT) и локальных (LDT) дескрипторов. Кроме того, была существенно изменена система прерываний, что вызвало появление таблицы дескрипторов прерываний (IDT); предусмотрели и аппаратную многозадачность, основанную на сегментах состояния задач (TSS). Наконец, процессор мог работать на одном из четырёх уровней привилегий, что предотвращало выполнение ряда потенциально опасных инструкций прикладными программами. Однако защищённый режим был несовместим с реальным режимом, кроме того, отсутствовала страничная организация памяти. Эти недостатки привели к тому, что широкого применения защищённый режим микропроцессора 80286 не получил: в подавляющем большинстве случаев его использовали как быстрый процессор 8086, имеющий несколько дополнительных полезных инструкций.

Действительно востребованным стал защищённый режим первого 32-разрядного микропроцессора Intel — 80386. Он был совместим с защищённым режимом 80286, однако существенно расширил его возможности, позволяя выполнять не только 16-разрядные, но и 32-разрядные программы. В защищённом режиме микропроцессора 80386 была предусмотрена страничная организация памяти, что существенно облегчило реализацию механизма виртуальной памяти. Наконец, в качестве подрежима защищённого режима был введён режим виртуального процессора 8086, позволявший с соответствующей программной поддержкой без переделок выполнять почти любые программы, написанные для реального режима.

С появлением микропроцессора 80386 MSW было расширено до 32 битов и переименовано в управляющий регистр CR0. Инструкции LMSW и SMSW были оставлены для совместимости с кодом, написанным для микропроцессора 80286, однако новые программы для чтения и записи содержимого CR0, а также других управляющих регистров, появившихся в этом микропроцессоре, должны были использовать специально добавленные формы инструкции MOV. Кроме того, микропроцессор 80386, в отличие от своего предшественника, умел программно переходить не только из реального режима в защищённый, но и обратно.

Защищённый режим микропроцессора 80386 для управления прерываниями, сегментной организации памяти и аппаратной многозадачности использует те же структуры данных, что и защищённый режим микропроцессора 80286, однако они расширены для работы в 32-разрядном режиме. Появление страничного механизма вызвало необходимость ввести и соответствующие структуры данных — изначально ими были каталог страниц и таблицы страниц. Позднее появились дополнительные структуры, которые подробно описываются в разделе Управление памятью.

Изначально в защищённый режим процессор переходит из реального режима. Впоследствии он может возвращаться в защищённый режим из режима управления системой и из режима IA-32e, а также из режима виртуального процессора 8086. Из защищённого режима программно можно перейти в реальный режим, режим виртуального процессора 8086 и режим IA-32e, а при поступлении сигнала SMI — в режим управления системой.