Rambler's
Top100

Страничная адресация

Автор: lonesome TSH/Digital Daemons
Дата: .01.2003
Раздел: Разработка ОС

В защищенном режиме процессоров Intel возможна не только сегментная адресация. Существует еще одна возможность - страничная адресация. Эти два механизма не связаны друг с другом - т.е. одновременно могут использоваться оба способа.

Суть страничной адресации состоит в том, что формируемый процессором (с использованием сегментной адресации) линейный адрес, "привязывается" к другому физическому адресу.

Эти пертурбации с физическим адресом осуществляются с помощью каталога страниц. Фактически, получив линейный адрес, процессор узнает действительный физический адрес из каталога страниц.

Поскольку каталог страниц может быть своим для каждой задачи, то в многозадачной системе все задачи может иметь абсолютно одинаковое адресное пространство (причем намного превышающее физическое), но они будут "привязаны" к разным физическим адресам. Фактически, все популярные операционные системы для платформы Intel используют именно страничную адресацию, и каждый процесс в них имеет адресное пространство в 4 гигабайта - 00000000-FFFFFFFF. Очевидно что страничная адресация очень удобна для разработчиков пользовательских приложений - для программы они получают 4 гигабайта памяти и практически могут забыть про сегменты.

Страничная адресация включается установкой тридцать первого бита (бит PG) управляющего регистра CR0. Попытка установить этот бит в реальном режиме приводит к общей ошибке защиты. Перед установкой бита необходимо заполнить каталог страниц, и поместить его адрес в регистр CR3 (он же PDBR).

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

Rambler's Top100