Відмінності між версіями «Адресація віртуальної пам'яті»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Створена сторінка: 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 використовує двохрівневу схему шляхом визначення розміру проміжного каталогу рівного одній сторінці.