Разделы:


Best links:

Максимальный режим работы цп

Максимальный режим работы ЦП служит для реализации встроенного в него механизма защиты программ и данных друг от друга, что является необходимым условием многозадачной обработки. Основой защищённого режима являются уровни привилегий. Уровень привилегий - это степень использования ресурсов процессора. Всего таких уровней четыре и они имеют номера от 0 до 3. Уровень номер 0 - самый верхний - программе на этом уровне "можно всё". Уровень 1 – следующий в иерархии и запреты, установленные на уровне 0 действуют для уровня 1. Наконец, 3-ий уровень - имеет самый низкий приоритет. Оптимальная схема работы программ по уровням привилегий будет следующая:

Сам по себе уровень привилегий ещё ничего не значит, его нельзя "установить в процессоре". Уровень привилегий применяется как одно их свойств при описании различных объектов, например, программного сегмента и действует при работе только с этим объектом. Уровень привилегий обозначается как "PL" (от Privilege Level) и применяется в сочетаниях, например, IOPL – Input-Output Privilege Level - уровень привилегий ввода-вывода.

Первое, с чем сталкивается программа при переходе в защищённый режим - это совершенно другая система адресации памяти. Напомним, что в режиме реальных адресов - для обращения к памяти используется пара 16-разрядных объектов - сегментный регистр и смещение.

Адресация памяти в защищенном режиме также производится через сегмент и смещение в сегменте, для чего используется пара регистров, но для описания сегмента используется больше информации, а именно:

       Для того, чтобы хранить эту информацию, используется специальная область памяти. Сегмент по-прежнему указывается в сегментном регистре, но теперь в нём хранится номер сегмента из списка определённых сегментов. Этот номер называется селектор. В качестве смещения используется 16- или 32-разрядный регистр. При обращении к памяти, процессор проверяет возможность доступа к сегменту по уровню привилегий, проверяет, не превысил ли адрес предел сегмента и можно ли обращаться к этому сегменту в данном случае (например, запрещена передача управления в сегмент, описывающий данные или стек). Если в результате проверки будет обнаружено нарушение какого-либо условия, то процессор сгенерирует исключение и тем самым обеспечит защиту.

предыдущая темаследующая