Некоторые понятия защищенного режима
Защищенный режим является основным и наиболее естественным режимом работы 32-разрядных процессоров. Этот режим был в полной мере реализован в процессорах серии i386
и с тех пор существенных изменений не претерпел. Защищенный режим 32-разрядных
процессоров реализует поддержку следующих механизмов: -
Организация памяти, при которой используются два механизма преобразования памяти:
сегментация и разбиение на страницы.
- Четырехуровневая система
защиты пространства памяти и ввода/вывода.
- Переключение
задач.
Сегмент - это блок пространства памяти определенного
назначения, внутри которого применяется линейная адресация. Максимальный размер
сегмента при 32-разрядной адресации составляет 4 Гб (232 байт). Максимальное
число таких сегментов равно 213 (8192). Сегмент может иметь произвольную
длину в допустимых границах. Каждый сегмент характеризуется 8-байтной структурой
данных - дескриптором сегмента, в котором, в числе прочего, указаны: -
Права доступа, которые определяют возможность чтения, записи и исполнения сегмента.
- Уровень
привилегий (относится к четырехуровневой системе защиты).
На сегментации
основана защита памяти. При этом не допускается: - использовать
сегменты не по назначению (нарушение прав доступа);
- обращаться
к сегменту, не имея достаточных привилегий;
- адресоваться
к элементам, выходящим за границы сегмента.
Страничная
организация памяти позволяет использовать большее пространство памяти. При этом
базовым объектом памяти служит блок фиксированного размера 4 Кб. Физический
адрес памяти, получаемый на выходе сегментного и страничного преобразования памяти,
является 32-разрядным, позволяя адресовать, таким образом, до 4 Гб реально доступной
физической памяти. Четырехуровневая система привилегий предназначена для управления
использованием привилегированных инструкций, а также для защиты пространства памяти
и ввода/вывода. Уровни привилегий нумеруются от 0 до 3, нулевой уровень соответствует
максимальным (неограниченным) возможностям доступа и отводится для ядра ОС, Уровень
3 имеет самые ограниченные права и обычно предоставляется прикладным задачам.
Систему защиты обычно изображают в виде колец, соответствующих уровням привилегий,
а сами уровни привилегий иногда называют кольцами защиты. В зависимости от
уровня привилегий осуществляется защита по доступу к привилегированным командам,
по доступу к данным с более высоким уровнем привилегий и по передаче управления
коду с уровнем привилегий, отличным от текущего. Защищенный режим предоставляет
средства переключения задач. Состояние каждой задачи (значения всех связанных
с ней регистров процессора) может быть сохранено в специальном сегменте состояния
задачи. Там же хранится карта разрешения ввода/вывода, указывающая для каждого
из 64К адресов портов ввода/вывода возможность обращения к нему. ОС NT использует
два кольца защиты - 0 и 3, имея соответственно режим работы в 0 кольце - kernel
mode, в 3 кольце — user mode. |