Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТОС_2013 / ТОС_6_2_проц_слайды1.doc
Скачиваний:
8
Добавлен:
03.03.2016
Размер:
1.17 Mб
Скачать

Страничный механизм

При реализации виртуальной памяти, основанной только на сегментации весь сегмент целиком может либо присутствовать в оперативной памяти либо отсутствовать (точнее, находиться во вторичной памяти или в испол няемом файле процесса). Поскольку размер сегмента может быть доста точно велик, одновременное выполнение нескольких больших процесса вызовет серьезную конкуренцию за ресурсы памяти, что в свою очередь приведет к интенсивному обмену данными между оперативной и вторич ной памятью. К тому же обмен областями переменного размера, каковым являются сегменты, достаточно сложен и, хотя фрагментация памяти пpи этом будет невелика, приведет к низкой эффективности ее использования оставляя большое количество неиспользуемого пространства.

Страничный механизм обеспечивает гораздо большую гибкость.

В этом случае все виртуальное адресное пространство (4 Гбайт для процессоров Intel) разделено на блоки одинакового размера, называемые страницами.

Большинство процессоров Intel работает со страницами размером 4 Кбайт.

страница может либо присутствовать в ОП, либо находиться в области свопинга или исполняемом файле процесса.

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

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

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

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

В этом случае линейный адрес рассматривается процессором как состоящий из трех частей, показанных на рис. 3.7.

Первое поле адреса, с 22 по 31 бит (10бит), указывает на элемент каталога таблиц страниц (Page Directory Entry, PDE). Каталог таблиц страниц имеет длину, равную одной странице, и содержит до 1024 указателей на таблицы страниц (page table). Таким образом, первое поле адресует определенную таблицу страниц. Второе поле, занимающее с 12 по 21 бит, указывает на элемент таблицы страниц (Page Table Entry, РТЕ).

Таблицы страниц также имеют длину 4 Кбайт, а элементы таблицы адресуют в совокупности 1024 страниц.

Другими словами, второе поле адресует определенную страницу.

Смещение на странице определяется третьим полем, занимающим младшие 12 бит линейного адреса. Таким образом, с помощью одного каталога таблиц процесс может адресовать 1024x1024x4096 = 4 Гбайт Физической памяти.

На рис. 3.7 показано, как блок страничной адресации процессора транс­лирует линейный адрес в физический.

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

Каждый элемент таблицы страниц содержит несколько полей (табл. 3.2 описывающих различные характеристики страницы.

Таблица 3.2. Поля РТЕ

Р

Признак присутствия в оперативной памяти. Доступ к странице, отсутст вующей в памяти (Р=0) вызывает страничную ошибку, особую ситуацию о чем процессор информирует ядро, которое обрабатывает ее соответст вующим образом.

R/W

Права только на чтение страницы (R/W=0) или на чтение и запись (R/W=1).

U/S

Привилегии доступа. Если U/S = 0, только привилегированные задачи (ядро) имеют доступ к адресам страницы. В противном случае, доступ к странице имеют все задачи.

Адрес

Физический адрес начала страницы (адрес базы).