2014-12-30 3 views
3

Что означает это утверждение в отношении операционной системы?Как размер страницы и количество записей, рассчитанных для таблицы страниц?

С адресного пространства 2^32 и 4К (2^12) размеров страниц, это оставить 2^20 записей в таблице страниц. При 4 байтах на запись это составляет 4 МБ страничной таблицы, которая слишком велика для разумного сохранения в непрерывной памяти . (И для замены и выхода из памяти с каждым переключателем процесса.) Обратите внимание, что с страницами 4K это займет 1024 страницы, чтобы удерживать таблицу страниц !

Пожалуйста, объясните, как они вычисляют 1024 страницы в конце? Что такое 4 байта на запись в этом отношении? В чем смысл размера страницы 4K? 4K означает 4 * 1024 байта? Рассматривают ли они 4 байта (на слово) ИЛИ делает 4 байта означает, что у него есть 4 * 1024 слова, каждое слово имеет некоторый размер, скажем, 4 байта?

+0

Является ли мое заявление неправильным? – hellodear

+0

Нет, тот, который вы указали. – user3344003

ответ

5

Пожалуйста, объясните мне, как они вычисляют 1024 страницы в конце?

Помните, что мы имеем дело с силами двух, так

4 MB = 4,194,304 байт

4 КБ = 4096 байт

4 MB/4 KB = 4,194,304 Bytes/4096 Bytes = Bytes

Что такое 4 байт за запись в этом отношении?

Вам необходимо 32 бита для ссылки на все 2^32 адресные пространства. С 8 бит на байт, 32 bits = Байт.

Например, первый адрес - 0, а последний - 4294967295 или (2^32 - 1).

Entry | Page Memory Location 
------------------------------------------ 
    1 |   0 
    2 |  4096 
    3 |  8192 
    ... |  ... 
2^20 | 4294963200 -> (2^32 - 1) - 4096 

Каждая запись в таблице указывает на 1 страницу где-то в памяти. В этом примере можно сказать, что оно начинается с нуля. Будет 2^20 записей, и они будут охватывать весь диапазон адресов памяти (2^32). Поскольку каждая запись составляет 4096 байт, вам нужно всего 2^20 записей, чтобы охватить все страницы.

4K означает 4 * 1024 байта?

Да, это относится к каждой странице, содержащей 4096 байт (4 * 1024).

Рассматриваются ли 4 байта (на слово), или 4 байта означает, что у него есть 4 * 1024 слова, каждое слово которого имеет размер 4 байта?

Он может быть меньше на 32-битных процессорах, но обычно слово составляет 32 бита или 4 байта.

Дополнения Комментарии

Когда я говорю, размер страницы 4K, то это означает, что он имеет 1024 записей с 4 байта каждый или 1024 * 4 записей с 1 байт каждого или что-то еще?

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

Кто-то говорил, что объяснение неверно. Правильный вариант: с адресным пространством 2^32 и размером страницы 4K (2^12), это оставляет 2^20 страниц в таблице. При 4 байтах на запись это составляет 4 ГБ страничной таблицы, которая слишком велика для разумного хранения в непрерывной памяти. (И для замены и выхода из памяти с каждым переключателем процесса.) Обратите внимание, что при размерах страниц 4K это займет 1024 k страниц (= 1M страниц), чтобы удерживать общую таблицу! Правильно или неправильно?

Он неверен. Если в таблице страниц содержались данные с каждой страницы, он был бы прав. С 4096 байтовыми страницами и 2^20 записями, которые равнялись бы 4 294 967 296 байт (4 ГБ), но записи занимали всего 4 байта. Таким образом, вы несколько, что с 2^20 записей, чтобы получить 4,194,304 байт (4 МБ).

+0

, когда я говорю, размер страницы 4K, значит, он имеет 1024 записи с 4 байтами каждый или 1024 * 4 записи с 1 байтом каждый или что еще? Я чертовски смущен этим. Спасибо за быстрый ответ. – hellodear

+0

Обновленный ответ, чтобы ответить на ваш комментарий – jmstoker

+0

Я поправьте свой ответ о 4 байтах за запись. – jmstoker

2

документация предполагает следующие значения:

2^32 = number of bytes in address space 
2^12 = 4K = 4*1024 = number of bytes in one page 
2^20 = 1M = 1024*1024 = number of pages 
4 = number of bytes in the page table to describe one page 
4M = 4*1024*1024 = total number of bytes in the page table 
1024 = (4*1024*1024)/(4*1024) = number of pages in the page table 

Так 4 байта 4 байта (размер записи в таблице страниц для одной страницы, не размера самой страницы!). Да, 4K означает 4 * 1024 байта, не 4 * 1024 слов.

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

+0

4K Размер страницы означает 1024 записи с 4 байтами каждой записи. Это правильно? @David K ​​ – hellodear

+1

Для одной страницы таблицы страниц да, это 1024 записи по 4 байта каждый. Для страницы в целом это составляет 4096 байт, независимо от того, какое приложение/ОС выбрало для размещения на этой странице. –

+0

Вы можете пролить свет на последнюю строку? Для страницы в целом это 4096 .. «что бы надеть эту страницу»? Благодарю. – hellodear

Смежные вопросы