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