Вычисление размеров адресов памяти для подкачки и смещения, а также размера таблицы страниц.

Этот вопрос в основном просто для того, чтобы прояснить мое понимание.

Скажем, у меня 32-разрядный компьютер с объемом виртуальной памяти 2 ^ 32 байта.

Используется подкачка памяти, каждая страница занимает 2 ^ 8 байтов.

Таким образом, размер адреса памяти составляет 24 бита. Поскольку (2 ^ 32/2 ^ 8 = 2 ^ 24 байта).

И смещение будет 8 бит? Я этого не совсем понимаю. Поскольку я знаю, что общий адрес равен 32, а 24 уже заняты страницами, остаток - это смещение 8.

Наконец, о размере страницы. Если каждый адрес физической памяти хранится в формате 32 бита (4 байта), размер таблицы будет 2 ^ 26 (2 ^ 24 * 2 ^ 2) < / сильный>. Это правильно?


person Kyle    schedule 13.02.2017    source источник
comment
Возможный дубликат преобразования виртуального адреса в физический адрес   -  person Tony Tannous    schedule 13.02.2017
comment
@TonyTannous, это немного помогает, но я хотел уточнить, понял ли я, как рассчитываются значения, и был ли прав.   -  person Kyle    schedule 13.02.2017


Ответы (1)


Размер таблицы страниц = количество записей*размер записи

В вашем случае каждая страница 2^8 bytes, то есть - вам нужно смещение 8 бит. Вы правильно поняли.

Остается 24 бита для Page. 2 ^ 24 разных страницы.

Размер таблицы страниц для процесса X: 2 ^ 24 * Entry-Size. который не предоставляется здесь вами.

Предположим, для каждой записи требуется 32 бита. Тогда 2 ^ 24 * 32 = 2 ^ 24 * 2 ^ 5 = 2 ^ 29 бит.

person Tony Tannous    schedule 13.02.2017