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

Я нашел этот пример.

Рассмотрим систему с 32-разрядным логическим адресным пространством. Если страница размер в такой системе составляет 4 КБ (2 ^ 12), тогда таблица страниц может состоять из до 1 миллиона записей (2 ^ 32/2 ^ 12). При условии, что каждая запись состоит из 4 байтов, для каждого процесса может потребоваться до 4 МБ физического адресного пространства только для таблицы страниц.

В чем смысл каждая запись состоит из 4 байтов и почему для каждого процесса может потребоваться до 4 МБ физического адресного пространства для таблицы страниц?

Ответ 1

Таблица страниц - это таблица преобразований из виртуальных в физические адреса, которые ОС использует для искусственного увеличения общего объема основной памяти, доступной в системе.

Физическая память - это фактические биты, расположенные по адресам в памяти (DRAM), в то время как виртуальная память - это то, где ОС "лежит" процессам, сообщая им, где она находится, для того, чтобы сделать такие вещи, как разрешить 2 ^ 64 бит адресного пространства несмотря на то, что обычно используется больше 2 ^ 34 бит (2 ^ 32 бита - 4 гигабайта, поэтому 2 ^ 34 - 16 ГБ.) Большинство размеров таблиц страниц по умолчанию составляют 4096 КБ для каждого процесса, но количество записей в таблице страниц может увеличиться, если процессу требуется больше места для процесса. Размеры таблиц страниц также могут быть изначально выделены меньшими или большими объемами или памятью, просто 4 КБ, как правило, - лучший размер для большинства процессов.

Обратите внимание, что таблица страниц - это таблица записей страниц. Оба могут иметь разные размеры, но размеры таблицы страниц обычно составляют 4096 КБ или 4 МБ, и размер таблицы страниц увеличивается путем добавления большего количества записей.

Ответ 2

1) Поскольку 4 байта (32 бита) - это именно то, что нужно для хранения любого адреса в 32-разрядном адресном пространстве.

2) Поскольку 1 миллион записей по 4 байта составляет 4 МБ.

Ответ 3

Что касается того, почему PTE (запись таблицы страниц) составляет 4 байта:

Несколько ответов говорят об этом, потому что адресное пространство составляет 32 бита, а PTE требуется 32 бита для хранения адреса.

Но PTE не содержит полный адрес байта, только номер физической страницы. Остальные биты содержат флаги или остаются неиспользованными. Это не должно быть 4 байта точно.

Ответ 4

  • Ваше первое сомнение находится в строке: "Каждая запись в записи таблицы страниц, также называемая PTE, состоит из 4 байтов". Чтобы понять это, сначала обсудите, что содержит таблица страниц? "," Ответ "будет PTE. Таким образом, это 4 байта - это размер каждого PTE, который состоит из виртуального адреса, смещения (и, возможно, 1-2 других поля, если они необходимы/по желанию)

  • Итак, теперь вы знаете, что содержит таблица страниц, вы можете легко вычислить пространство памяти, которое потребуется, то есть: Total no. от PTE, умноженного на размер PTE. Который будет: 1m * 4 байта = 4MB Надеюсь, это очистит ваши сомнения.:)

Ответ 5

Итак, запись относится к записи таблицы страниц (PTE). Данные, хранящиеся в каждой записи, являются адресом физической памяти (PFN). Основное предположение здесь - физическая память, также использующая 32-разрядное адресное пространство. Следовательно, PTE будет не менее 4 байтов (4 * 8 = 32 бит).

В 32-разрядной системе с размером страницы памяти 4 КБ (2 ^ 2 * 2 ^ 10 В) максимальное количество страниц, которые может иметь процесс, будет 2 ^ (32-12) = 1М. Каждый процесс считает, что он имеет доступ ко всей физической памяти. Чтобы перевести все адреса виртуальной памяти 1М на адреса физической памяти, процессу может потребоваться хранить 1 М PTE, то есть 4 МБ.

Ответ 6

Элемент таблицы страниц - это номер бита, необходимый для получения номера кадра. например, если у вас есть физическая память с 2 ^ 32 кадрами, тогда вам понадобится 32 бита для ее представления. Эти 32 бита хранятся в таблице страниц в 4 байтах (32/8).

Теперь, поскольку количество страниц составляет 1 миллион, то есть общий размер таблицы страниц = запись в таблице страниц * количество страниц = 4b * 1million = 4mb.

следовательно, 4mb потребуется для хранения таблицы хранения в основной памяти (физической памяти).

Ответ 7

Честно говоря, я немного новичок в этом, но, говоря кратко, похоже, что 4 МБ происходит из-за того, что существует 1 миллион записей (каждый PTE хранит физический номер страницы, если он существует); следовательно, 1 миллион PTE, что составляет 2 ^ 20 = 1 МБ. 1MB * 4 байта = 4MB, поэтому каждому процессу потребуется это для своих таблиц страниц.