Как рассчитать размер таблицы страниц 2 уровня? - PullRequest
0 голосов
/ 21 мая 2018

Дано: 32-битный виртуальный адрес, 4 КБ на страницу, 4B - размер записи таблицы страниц, 1 - ГиБ размер адресного пространства

Для процесса, использующего адресное пространство 1 ГБ, определить размер 1-таблица уровней и двухуровневая таблица страниц, когда в каталоге таблиц страниц содержится 1024 записи.Для двухуровневой таблицы страниц - Каков максимальный и минимальный размер таблицы страниц?

Итак ... Я знаю, что смещение страницы составляет 12 бит, а номер страницы - 20 бит.Таким образом, мы получили 2 ^ 20 записей, поэтому общий размер таблицы страниц должен быть 4,2 МБ для одноуровневой таблицы страниц.

Но как рассчитать размер двухуровневой таблицы страниц?какие-нибудь советы?

1 Ответ

0 голосов
/ 21 мая 2018

Случай с двумя уровнями может быть рассмотрен следующим образом:

  1. На первом уровне будет одна страница.
  2. На втором уровне будет достаточно страниц для требуемого адресного пространства.

Теперь каждая страница уровня 2 может отображать 2 ^ 10 * 2 ^ 12 байтов, поскольку она имеет 2 ^ 10 записей, и каждая из этих точек указывает на страницу размером 2 ^ 12 байтов.Это дает 2 ^ 22 байта.

Теперь ваше целевое адресное пространство составляет 2 ^ 30 (1 ГБ), поэтому вам нужно 2 ^ 30/2 ^ 22 или 2 ^ 8 уровня 2 страницы.Кроме того, вам нужен один уровень на одной странице.

Общее количество используемых страниц: 1 + 2 ^ 8 или 257 страниц или 1028 КБ

...