Иерархическая таблица страниц в подкачке памяти ОС
Сейчас я изучаю управление памятью в ОС
В структуре таблицы иерархических страниц, если есть 32-битный компьютер, 4KB
из page-size
а также 4B
из page-entry
размер.
почему адрес разделены на биты 10-10-12
я знаю 20 - 12
, 12
немного offset
значение на 4 Кбайт -> 2^12
Но почему 20 бит становятся 10-10
это невозможно до 11-9 или 12-8?
1 ответ
Потому что они используют двухуровневую таблицу страниц. 20-12
будет использовать только таблицу страниц 1-го уровня, и это потребляет память.
Первые 10 бит (0-9)
соответствующие записи в PGDIR
, Эта запись будет указывать на таблицу страниц, в этой таблице страниц вы получите доступ к записи, соответствующей вторым 10 битам. (10-19)
,
Мотивация:
Рассмотрим накладные расходы на хранение всех необходимых таблиц страниц для поддержки одного процесса.#pages * size_entry
= 2 ^ 20 * 4 = 4MB
Это много!.
Но что, если бы мы использовали таблицу страниц первого уровня, которая имеет 1024 записи, каждая из которых указывает на дополнительные 1024 таблицы страниц? это 1024*1024 = 1M записей, как и раньше.
Какова нагрузка на память сейчас?
1K*4 + 1*4 = 4KB + 4B ~= 4KB