2011-02-07 3 views
1

Предположим, что у вас есть двухуровневая система подкачки с 32-битным логическим адресом, а смещение страницы было предопределено как 12 бит. Это оставляет 20 бит для номеров страниц. Все примеры, которые я могу найти в Интернете и в учебниках, показывают номера страниц, которые затем разбиваются на 2 блока по 10, так что виртуальный адрес выглядит примерно так:Должны ли записи таблицы страниц на каждом уровне в двухуровневой пейджинговой системе быть одного размера?

[p1: 10-bit | p2: 10-бит | смещение: 12 бит]

Должны ли оба номера страниц быть 10 бит? Например, может ли это быть следующим образом:

[p1: 8-бит | p2: 12-бит | Смещение: 12-бит]

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

[P1: 9 бит | p2: 11 бит | смещение: 12 бит]

Я понимаю, что они разделяют их равномерно, делают все чисто и упорядоченно. Я просто пытаюсь понять, что это технически возможно, и если есть какие-то недостатки/преимущества, чтобы делать это по-другому.


* Полное раскрытие: Этот вопрос сам по себе не является проблемой, домашнее задание, но вопрос, который возник при попытке решить проблему домашнего задания. Не пытайтесь заставить кого-нибудь заниматься моей работой. Просто пытаюсь понять, что возможно, и если есть какие-либо преимущества/недостатки в том, чтобы делать это так или иначе.

ответ

1

Нет причин, по которым они должны быть того же размера, кроме как для упрощения реализации. Фактически, в некоторых системах (например, x86) поле p2, которое вы показываете, может быть частью offset для некоторых страниц, а не для других, чтобы разрешить несколько размеров страниц.

+0

Хорошо спасибо. Я подумал, что это, вероятно, так, но не нашел примеров, показывающих обратное. Просто хотел убедиться, что я не пытался решить проблему под ложным положением. –