Должны ли записи таблицы страниц на каждом уровне в системе двухуровневого пейджинга иметь одинаковый размер? - PullRequest
1 голос
/ 07 февраля 2011

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

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

Должны ли оба номера страницы быть 10 битами?Например, может ли это быть так:

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

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

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

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


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

1 Ответ

1 голос
/ 07 февраля 2011

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

...