Відмінності між версіями «Адресація віртуальної пам'яті»
(Створена сторінка: Linux використовує трьохрвневу структуру таблиці сторінок, що складається з наступних ти...) |
|||
Рядок 1: | Рядок 1: | ||
− | |||
Linux використовує трьохрвневу структуру таблиці сторінок, що складається з наступних типів таблиць (кожна окрема таблиця має розмір рівний одній сторінці). | Linux використовує трьохрвневу структуру таблиці сторінок, що складається з наступних типів таблиць (кожна окрема таблиця має розмір рівний одній сторінці). | ||
+ | |||
'''Каталог сторінок.'''''каталог таблиць першого рівня ''(PGD - Page Table Directory). Активний процес має єдиний каталог сторінок, розмір каталогу дорівнює одній сторінці. Кожен запис в каталог сторінок вказує на одну сторінку проміжного каталогу сторінок. Каталог сторінок активного процесу повинен знаходитись в активній пам'яті. | '''Каталог сторінок.'''''каталог таблиць першого рівня ''(PGD - Page Table Directory). Активний процес має єдиний каталог сторінок, розмір каталогу дорівнює одній сторінці. Кожен запис в каталог сторінок вказує на одну сторінку проміжного каталогу сторінок. Каталог сторінок активного процесу повинен знаходитись в активній пам'яті. | ||
Версія за 12:54, 7 травня 2011
Linux використовує трьохрвневу структуру таблиці сторінок, що складається з наступних типів таблиць (кожна окрема таблиця має розмір рівний одній сторінці).
Каталог сторінок.каталог таблиць першого рівня (PGD - Page Table Directory). Активний процес має єдиний каталог сторінок, розмір каталогу дорівнює одній сторінці. Кожен запис в каталог сторінок вказує на одну сторінку проміжного каталогу сторінок. Каталог сторінок активного процесу повинен знаходитись в активній пам'яті.
Проміжний каталог сторінок.каталог таблиць другого рівня(PMD -Medium Page Table Directory) може об'єднувати кілька сторінок. Кожен запис проміжного каталогу вказує на одну сторінку таблиці сторінок.
Таблиця сторінок.таблиця дескрипторів (PTE - Page Table Entry).Може об'єднувати (містити в собі дані) кілька сторінок. Кожен запис вказує на одну віртуальну сторінку процесу.
Перетворення віртуальної адреси у фізичну відбувається відповідно в 3 етапи. Береться вказівник (запис) PGD, що є в контексті кожного процесу, перетворюється в указатель запису PMD, а указатель PMD перетворюється в указатель в таблиці дескрипторів PTE. І накінець, до реальної адреси, що вказує на початок сторінки додається зсув.
Для використання трьохрівневої структури таблиці сторінок віртуальний адрес в Linux розглядається як складова з чотирьох частин.
Ліве(найбільше, що значиме поле використовується в якості індексу в каталозі сторінок; наступне (друге)поле служить в якості індексу в проміжному каталозі сторінок. Третєполе представляє собою індекс таблиці сторінок, а четверте- зсув у межах сторінки пам'яті.
Структура таблиці сторінок Linux - платформонезалежна і розроблена для роботи з 64-бітовим процесором Alpha.
32-бітова архітектура Pentium/x86 має тільки двохрівневий механізм сторінкової організації, і програмне забезпечення Linux використовує двохрівневу схему шляхом визначення розміру проміжного каталогу рівного одній сторінці.