Расчет размера таблицы страниц

Рассмотрим машину с 64 МБ физической памяти и 32-битным виртуальным адресным пространством. Если размер страницы 4 КБ, каков примерный размер таблицы страниц?

Мое решение:

Number of pages in physical memory = (size of physical memory)/(size of page)
                                   = 64 * 2^10 / 4
                                   = 2^14
Number of pages in virtual memory = (size of virtual memory)/(size of page)
           size of virtual memory = 2^32 bits
                                  = 2^29 bytes
                                  = 2^19 kBytes
Number of pages in virtual memory = 2^19/4 = 2^17
=> Number of entries in page table = 2^17
Size of each entry = 17+14 =31 bits
Size of page table = 31 * 2^17 bits 
                   = 31 * 2^14 bytes
                   = 31 * 2^4 KB
                   = 31*16
                   = 496 KB

Но ответ 8 МБ. Почему?


person manish    schedule 07.06.2014    source источник


Ответы (2)


8 МБ не может быть ответом,
физическое адресное пространство = 64 МБ = 2^26 Б
виртуальный адрес = 32 бита, ∴ виртуальное адресное пространство< /strong> = 2^32B
Размер страницы = 4 КБ = 2^12B
Количество страниц = 2^32/2^12 = 2^20 страницы.

Количество кадров = 2^26/2^12 = 2^14 кадров.

Размер таблицы страниц = 2^20×14 бит ≈ 2^20×16 бит ≈ 2^20×2B = 2 МБ.

person Siddharth Thevaril    schedule 23.01.2015

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

  1. Он не определяет размер записей таблицы страниц.
  2. Он не указывает количество страниц, сопоставленных с адресным пространством процесса.
  3. В нем не указывается разделение между процессом и системным адресом. Какая часть из 32 бит является частью адресного пространства процесса.
  4. Он не указывает, является ли это таблицей процесса или системной.
person user3344003    schedule 08.06.2014