Что такое таблицы страниц, страницы и запись в таблице страниц?

Я действительно запутался в этих трех вещах, и я пытался понять это в течение двух хороших часов, но безуспешно.

Q. Если у меня есть 47-битное виртуальное адресное пространство с размером страницы 16 КБ, и эта запись в таблице страниц занимает 8 байтов. Сколько уровней таблиц страниц потребуется для отображения виртуального адресного пространства, если каждая таблица страниц должна соответствовать одной странице?

Я знаю, что такое таблица страниц, но в чем именно разница между записью таблицы страниц и страницей? В ключе ответа он начинается с этого:

Одностраничная таблица страниц содержит 2^11 PTE (x8 байт), указывающих на 2^11 страниц (адресация 2^25 байт). Может кто-нибудь объяснить мне, откуда взялись 2 ^ 11 страниц?

Более или менее я запутался в том, что означает страница и в чем разница с записью в таблице страниц.


person Belphegor    schedule 26.02.2016    source источник


Ответы (1)


Логическое адресное пространство в массиве СТРАНИЦ. В вашем случае страница имеет размер 16 КБ или 2 ^ 14 байт.

ТАБЛИЦА СТРАНИЦ содержит сопоставления страниц с физическими ФРЕЙМАМИ СТРАНИЦ, где размер фрейма страницы совпадает с размером страницы.

В вашем ответе (но не в вопросе) указано, что запись в таблице страниц имеет размер 8 байт (2 ^ 3). Предполагая, что это правильно, вы можете разместить 2 ^ 14 / 2 ^ 3 = 2 ^ 11 записей таблицы страниц на одной странице.

Если у вас есть 2 ^ 47-битное адресное пространство, вам потребуется 2 ^ 47 / 2 ^ 14 = 2 ^ 33 целых таблиц страниц, чтобы охватить все адресное пространство. Вам потребуется 2 ^ 33 / 2 ^ 11 = 2 ^ 22 страниц записей таблицы страниц.

Этот вопрос предполагает использование вложенных таблиц страниц.

(2^11)^2 = 2^22

Затем вам понадобятся два уровня таблицы страниц.

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

person user3344003    schedule 28.02.2016