Защищенный режим (режим защищенного виртуального адреса) - режим работы процессора. Разработанный фирмой Digital Equipment (DEC) для 32-разрядных компьютеров VAX-11, а также фирмой Intel для своих процессоров, начиная с 32-разрядных процессоров 80386. Хотя защищенный режим частично была реализована уже в процессоре 80286, но там существенно отличался способ работы с памятью, ибо процессоры еще были 16-битные и не была реализована страничная организация памяти. Используется в процессорах других производителей. Этот режим позволил создать многозадачные операционные системы, такие как Microsoft Windows, Unix и т.д..
Особенности процессора 80286
Процессор Intel 80286
В процессоре i286 было реализовано два режима работы - защищенный режим и реальный режим. В защищенном режиме процессор мог адресовать до 1 ГБ виртуальной памяти (при этом объем реальной памяти составлял не более 16 МБ) благодаря изменению механизма адресации памяти. Переключения из реального режима в защищенный происходит программно и относительно просто, однако для обратного перехода требуется аппаратный сброс процессора. Для отслеживания текущего режима работы процессора используется регистр слово состояния машины (MSW). Программы реального режима без модификаций в защищенном режиме использоваться не могут, равно как и программы BIOS машины.
Суть защищенного режима заключается в следующем. Программист и разрабатываемые им программы используют логическое адресное пространство (виртуальное адресное пространство), размер которого может составлять 1024 МБ. Логическая адрес превращается в физический адрес автоматически с помощью схемы управления памятью (MMU). Благодаря защищенному режиму в памяти можно хранить только ту часть программы, которая необходима в определенный момент, остальные могут храниться во внешней памяти (например, на жестком диске). В случае обращения к той части программы, которой нет в памяти в данный момент,операционная система может приостановить программу, загрузить нужную секцию кода из внешней памяти и возобновить выполнение программы. Соответственно, становятся доступными программы, размер которых превышает объем доступной памяти. Другими словами, пользователю кажется, что он работает с большим объемом памяти, чем в действительности. Однако реализация системы виртуальной памяти была еще далека от совершенства. Для использования защищенного режима необходима многозадачная операционная система, например Microsoft Windows 3.0, IBM OS / 2 или UNIX.
Физический адрес формируется следующим образом. В сегментных регистрах хранится селектор, содержащий индекс дескриптора в таблице дескрипторов (13 бит), 1 бит, определяющий, к какой таблице дескрипторов будет осуществляться обращение (к локальной или к глобальной) и 2 бита запрашиваемого уровня привилегий. Далее происходит обращение к соответствующей таблице дескрипторов и соответствующему дескриптору, который содержал начальную, 24-битную адрес сегмента, размер сегмента и права доступа. После чего рассчитывается необходимая физический адрес, посредством составления адреса сегмента и смещения, который хранится в 16-разрядном указательном регистре.
Особенности процессоров 80386-80486
Процессор Intel 80386
С появлением 32-разрядных процессоров 80386 фирмы Intel процессоры могут работать в трех режимах: реальном, защищенном и виртуального процессора 8086. В защищенном режиме используются полные возможности 32-разрядного процессора - обеспечивается прямой доступ к 4 ГБ физического адресного пространства и многозадачный режим с параллельным выполнением нескольких программ ( процессов ). Собственно говоря, многозадачный режим организует операционная система, однако микропроцессор предоставляет необходимый для этого режима мощный и надежный механизм защиты задач друг от друга с помощью четырехуровневой системы привилегий. Также в этом режиме доступна страничная организация памяти, которая увеличивает уровень защиты задач друг от друга и эффективность их выполнения. В процессоре i386 компания Intel учла необходимость лучшей поддержки реального режима, так как программное обеспечение времени его появления не было способно полностью работать в защищенном режиме. Поэтому, например, в i386 возможно переключение из защищенного режима обратно в реальный (при разработке 80286 считалось, что это не потребуется, поэтому на компьютерах с процессором 80286 возврата в реальный режим осуществлялось схемно - за сброса процессора). При включении микропроцессора в нем автоматически устанавливается режим реального адреса. Переход к защищенного режима осуществляется программно с помощью выполнения соответствующей последовательности команд. Программы, предназначенные для защищенного режима, должны быть написаны особым образом. Это означает, что реальный и защищенный режимы не совместимы.
Страничная организация памяти
Отношение между виртуальной и реальной памятью
Основная мысль сводится к формированию таблиц описания памяти, которые определяют состояние ее отдельных сегментов / страниц подобное. В случае недостатка памяти операционная система может отгрузить часть данных из оперативной памяти на диск, а в таблице описаний внести указание на отсутствие этих данных в памяти. При попытке обращения к отсутствующим данных процессор сформирует исключение (разновидность прерывания) и отдаст управление операционной системе, которая вернет данные в память, а затем вернет управление программе. Таким образом для приложений процесс подкачки данных с дисков происходит незаметно.