Определение номеров страниц и смещений для заданных адресов

Рассмотрим компьютерную систему с 32-битным логическим адресом и размером страницы 4 КБ. Система поддерживает до 512 МБ физической памяти.

Сколько записей в обычной одноуровневой таблице страниц?

Conventional single-level page table: 2^32 / 2^12 (4000)  = 2^20 = 1,048,576

Почему мне пришлось divide 2^32 / 2^12 получить ответ?

Сколько записей в перевернутой таблице страниц?

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

Inverted page table: 2^29 (512mb)/ 2^12 (4000) = 2^17 = 131,072

Почему мне пришлось divide 512mb / page size получить инвертированные записи таблицы страниц?

Какие номера страниц и смещения для следующих адресных ссылок: а) 30000, б) 256, в) 0xbcf034

a) 30000 в шестнадцатеричном формате: x7530 Номер страницы: x7 = 7, смещение: x530 = 1328

б) 256 в шестнадцатеричном формате x100 № страницы: x0 = 0 смещение: x100 = 256

c) 0xbcf034 Номер страницы: xbcf = 3023 смещение: x034 = 22

Как определить эти номера страниц и смещения на основе шестнадцатеричных адресов?

Я знаю ответы, но я хочу понять, ПОЧЕМУ и КАК. Может кто-нибудь объяснить подробно :)


person user2562409    schedule 15.07.2013    source источник
comment
В перевернутой таблице страниц отображаются все кадры, а не страницы. Поэтому записи в перевернутой таблице страниц состоят из общего количества КАДРОВ, это то, что вы вычисляете.   -  person Sanketssj5    schedule 21.12.2015
comment
PS: 4К это не 4000 :-)   -  person Nishant    schedule 04.04.2018


Ответы (4)


Почему мне пришлось разделить 2^32 / 2^12, чтобы получить ответ?

2^32 ==> Общий размер виртуальной памяти

4KB=2^12 ==> Размер одной страницы

2^32 / 2^12 =2^20 ==> Общее количество страниц виртуальной памяти

Таким образом, таблица страниц будет иметь 2 ^ 20 = 1 миллион записей.

Сколько записей в перевернутой таблице страниц?

2^29=512 МБ ==> Общая физическая память

2^12 = размер страницы = размер кадра

2^29 / 2^12 =2^17 ==> Общее количество кадров в физической памяти

Таким образом, в перевернутой таблице страниц будет 2 ^ 17 = 128 КБ записей.

На этом рис. может развеять ваши оставшиеся сомнения:

введите описание изображения здесь

person Rupsingh    schedule 07.06.2016
comment
Как насчет: сколько записей в двухуровневой иерархической таблице страниц? - person Hashmatullah Noorzai; 14.03.2018

Учитывая размер страницы и ссылки на адреса:
лучший способ рассчитать номер страницы и смещение,
Предположим, размер страницы составляет 1 КБ, а ссылка на адрес - 256.


Page number = (address reference / page size) = 256/1024 = 0

Offset = (address reference % page size) = (256 % 2014) = 256 


Примените ту же процедуру для остальных ссылок на адреса.

person moovon    schedule 24.04.2016

2 ^ 12 => 4096 2 ^ 32/2 ^ 12 => 2 ^ 32/4096 => сколько страниц по 4 КБ => сколько записей в таблице страниц нам нужно.

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

С приведенной выше подсказкой задайте вопрос и дайте нам знать, что вы придумали. Как только вы узнаете немного больше в своем курсе по ОС, вы обнаружите, что в каждом дизайне таблицы страниц есть свои плюсы и минусы.

person lsk    schedule 15.07.2013
comment
Зачем вам нужно знать записи таблицы физических страниц для инвертированной таблицы страниц? ПС - спс - person user2562409; 15.07.2013
comment
Для этого вам нужно изучить теорию перевернутых таблиц страниц... Быстрый ответ заключается в том, что размеры перевернутых таблиц страниц пропорциональны количеству физических страниц в системе. Обычная (или логическая) таблица страниц имеет размер для всего виртуального адресного пространства процесса, т. е. размер по количеству виртуальных страниц в процессе. т. е. инвертированная таблица страниц: одна запись для одной физической страницы; Логическая или виртуальная таблица страниц: одна запись для одной виртуальной страницы. Надеюсь, поможет. - person lsk; 15.07.2013

потому что размер страницы = размер кадра = 2 ^ 12 количество записей в перевернутой таблице страниц = количество кадров, поэтому мы вычисляем количество кадров

person lavanya    schedule 02.04.2017