Как найти биты в виртуальном и физическом адресе?

Вопрос в том:

Рассмотрим виртуальное адресное пространство из 256 страниц размером 4 КБ, отображенное на физическую память из 128 кадров. Сколько всего бит требуется в виртуальном адресе? Сколько всего бит требуется в физическом адресе?

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

Может ли кто-нибудь объяснить шаги, необходимые для решения этой проблемы?


person user3233721    schedule 29.04.2015    source источник
comment
Это больше касается компьютерной архитектуры или базовых компьютерных наук, а не программирования. cs.stackexchange.com, вероятно, будет лучшим местом для этого, возможно, вы даже сможете найти ответ уже там.   -  person Barmar    schedule 29.04.2015
comment
Я бы не назвал это базовой компьютерной наукой, но спасибо, что указали мне на лучший сайт, где можно задать вопрос. Если это было так просто, почему бы вам просто не помочь мне и не ответить на него, хотя бы немного? Я не ищу прямого ответа, просто помогите решить его. Если бы теги, такие как размер страницы и виртуальное адресное пространство, не были включены, я бы согласился с тем, что это не тот сайт. но они там   -  person user3233721    schedule 29.04.2015
comment
Я не имел в виду простой.   -  person Barmar    schedule 29.04.2015
comment
SO имеет долгую историю, предшествующую созданию более конкретных сайтов SE. Раньше он использовался для более общего обсуждения, поэтому таких тегов много. Также во многих случаях эти теги имеют отношение к написанию компьютерных программ.   -  person Barmar    schedule 29.04.2015


Ответы (2)


Я укушу, как бы я не ненавидел эти теоретические проблемы с практическим использованием:

В виртуальном адресном пространстве 256 страниц. Это означает, что для идентификации страницы требуется 8 бит.

Размер страницы 4096 байт. Для представления такого количества байтов требуется 12 байтов.

Следовательно, вам нужно 20 (8+12) бит для виртуального адреса.

Есть 128 страниц фреймов. Для этого требуется 7 бит.

Следовательно, вам нужно 19 (7+12) бит для физического адреса.

person user3344003    schedule 30.04.2015

Есть также биты смещения, когда речь идет о физической памяти. Таким образом, если предположить, что смещение может уместиться в 8 бит, это будет действительно 7 + 12, но вы должны принять во внимание еще 8 бит. Вообще говоря, смещение равно [логический_адрес]мод[размер_страницы].

person Dionisis Kordonouris    schedule 26.04.2020