Де зберігаються таблиці сторінок


9

Моє запитання: "де зберігаються таблиці сторінок: у фізичній пам'яті (ОЗУ) або як деяка структура даних у просторі користувача".

PS: Що я зрозумів поки що: Макет процесової пам'яті має декілька сегментів (код / ​​дані / купа / стек тощо). Оскільки сегментація в даний час не використовується, підказка використовується, і кожен сегмент матиме багато сторінок фіксованого розміру. Кожен сегмент також матиме відповідний простір віртуальної адреси (VAD). Вони вказуватимуть на таблиці первинних сторінок, які вказуватимуть на таблиці вторинних сторінок і нарешті на pte, які б вказували на кадри сторінок на диску (я сподіваюся, що це було правильно). Тож, якщо VAD-адреси знаходяться в просторі користувача, то чи знаходяться таблиці сторінок також у просторі користувача або вони зберігаються в оперативній пам’яті?

Відповіді:


5

Таблиці сторінок обробляються ядром за допомогою внутрішніх структур даних ядра. Але архітектура визначає більшу частину формату цих таблиць. Userland не має доступу до них.


1
Гаразд! просто для додаткової інформації. Приблизно ця структура даних (у просторі ядра) та інші елементи, пов'язані з ядром, будуть розміщені в оперативній пам’яті праворуч ... у захищеному адресному просторі ?.
RootPhoenix

2
Вибачте, так. Вони розміщуються в оперативній пам'яті. Вони не можуть бути відправлені на диск (підказками), оскільки вони потрібні для з'ясування наявності сторінки в оперативній пам'яті. Операційна система управляє віртуальною пам’яттю від імені користувача, і несе відповідальність за те, щоб жодна частина таблиці сторінок не була включена у віртуальний простір пам’яті.
фонбранд

Будь ласка, перевірте мою відповідь. @vonbrand
Андерсон

@vonbrand Anderson вірно. У x86 та x64 лише таблиця сторінок верхнього рівня для кожного процесу (що займає одну сторінку чи менше) має постійно мати місце.
Джеймі Ханрахан

4

Цитата з wiki - таблиці таблиці

Зазначалося, що створення структури таблиці сторінок, яка містить відображення для кожної віртуальної сторінки у віртуальному адресному просторі, може виявитися марною. Але ми можемо подолати зайві проблеми з простором, помістивши таблицю сторінок у віртуальну пам'ять і дозволити системі віртуальної пам'яті керувати пам’яттю для таблиці сторінок.

Однак частина цієї лінійної структури таблиці сторінок завжди повинна залишатись у фізичній пам'яті , щоб не допустити помилок кругової сторінки, які шукають ключову частину таблиці сторінки, яка відсутня в таблиці сторінки, якої немає в таблиця сторінок тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.