Я читаю "Понимание ядра Linux".
Пейджинг для 64-разрядных архитектур
Как мы видели в предыдущем разделов, двухуровневый пейджинг используется 32-разрядными микропроцессорами. Однако двухуровневый пейджинг не является подходит для компьютеров, 64-битная архитектура. Позвольте использовать мысленный эксперимент, чтобы объяснить, почему:
Начните с принятия стандартного размера страницы из 4 КБ. Поскольку 1 КБ охватывает диапазон адресов 2 10 4 КБ охватывает 2 12адресов, поэтому поле "Смещение" равно 12 биты. Это оставляет до 52 бит линейный адрес, подлежащий распределению между таблицей и справочником поля. Если мы сейчас решили использовать только 48 из 64 бит для адресации (это ограничение оставляет нас с удобное адресное пространство на 256 ТБ!), остальные 48-12 = 36 бит будут должны быть разделены между таблицей и Поля каталога. Если мы сейчас примем решение зарезервировать 18 бит для каждого из этих двух полей, как Каталог страниц, так и Таблицы страниц каждого процесса должны включают 2 18 записей, которые больше, чем 256 000 записей.
-
"Если мы теперь решили использовать только 48 из 64 бит для адресации". Зачем? и почему только 48 бит? Почему не какой-то другой номер?
-
Хорошо, я просто обычный пользователь ПК и программист. Его просто трудно поверить в меня, что 32-битная адресация, то есть 4 ГБ (более 2 ГБ /3 ГБ, чтобы быть более правильной) адресное пространство для каждого процесса является пределом. Если вы действительно столкнулись с этим ограничением. Просьба привести пример.
-
Что это за ограничение для окон?
-
Я знаю, что виртуальная память!= контакты физической памяти и процессора не имеют ничего общего с виртуальной памятью. Это совершенно другой вопрос. Как узнать количество адресных контактов (= размер адресной шины) для процессора. http://ark.intel.com спецификации процессора не включают эту спецификацию.
Ответ:
См. Paul Betts ответ для разумного ответа на первый вопрос.