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

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
 
Рядок 4: Рядок 4:
 
Активний процес має єдиний каталог сторінок, розмір каталогу дорівнює одній сторінці. Кожен запис в каталог сторінок вказує на одну сторінку проміжного каталогу сторінок. Каталог сторінок активного процесу повинен знаходитись в активній пам'яті.
 
Активний процес має єдиний каталог сторінок, розмір каталогу дорівнює одній сторінці. Кожен запис в каталог сторінок вказує на одну сторінку проміжного каталогу сторінок. Каталог сторінок активного процесу повинен знаходитись в активній пам'яті.
  
'''* Проміжний каталог сторінок.'''''кталог таблиць другого рівня''(PMD - Medium Page Table Directory). Може об'єднувати кілька сторінок. Кожен запис проміжного каталогу вказує на одну сторінку таблиці сторінок.
+
'''* Проміжний каталог сторінок.'''''каталог таблиць другого рівня''(PMD - Medium Page Table Directory). Може об'єднувати кілька сторінок. Кожен запис проміжного каталогу вказує на одну сторінку таблиці сторінок.
  
 
'''* Таблиця сторінок.'''''таблиця дескрипторів''(PTE - Page Table Entry). Може об'єднувати (містити в собі дані) кілька сторінок. Кожен запис вказує на одну віртуальну сторінку процесу.
 
'''* Таблиця сторінок.'''''таблиця дескрипторів''(PTE - Page Table Entry). Може об'єднувати (містити в собі дані) кілька сторінок. Кожен запис вказує на одну віртуальну сторінку процесу.
 +
 +
Перетворення віртуальної адреси в фізичну відбувається відповідно 3 етапи. Береться показник (запис) PGD, що є в контексті кожного процесу, перетворюється в показник запису PMD, а показник PMD перетворюється в показник у таблиці дескрипторів PTE. І накінець, до реальної адреси, що вказує на початок сторінки додається зсув.
 +
 +
Для використання трьохрівневої структури таблиці сторінок віртуальна адреса в Linux розглядається як складова з чотирьох частин.
 +
 +
''Ліве''(найбільше, що значиме) поле використовується в якості індексу в каталозі сторінок; ''наступне (друге)'' поле служить в якості індеексу в проміжному каталозі сторінок. ''Третє'' поле представляє собою індекс таблиці сторінок, а ''четверте'' - зсув в межах сторінки пам'яті.
 +
 +
Структура таблиці сторінок Linux - платформонезалежна і розроблена для роботи з 64-бітовим процесором Alpha.

Поточна версія на 14:37, 28 квітня 2011

Linux використовує трьохрівневу структуру таблиці сторінок, що складається з наступних типів таблиць (кожна окрема таблиця має розмір рівний одній сторінці):

* Каталог сторінок.каталог таблиць першого рівня(PGD - Page Table Directory). Активний процес має єдиний каталог сторінок, розмір каталогу дорівнює одній сторінці. Кожен запис в каталог сторінок вказує на одну сторінку проміжного каталогу сторінок. Каталог сторінок активного процесу повинен знаходитись в активній пам'яті.

* Проміжний каталог сторінок.каталог таблиць другого рівня(PMD - Medium Page Table Directory). Може об'єднувати кілька сторінок. Кожен запис проміжного каталогу вказує на одну сторінку таблиці сторінок.

* Таблиця сторінок.таблиця дескрипторів(PTE - Page Table Entry). Може об'єднувати (містити в собі дані) кілька сторінок. Кожен запис вказує на одну віртуальну сторінку процесу.

Перетворення віртуальної адреси в фізичну відбувається відповідно 3 етапи. Береться показник (запис) PGD, що є в контексті кожного процесу, перетворюється в показник запису PMD, а показник PMD перетворюється в показник у таблиці дескрипторів PTE. І накінець, до реальної адреси, що вказує на початок сторінки додається зсув.

Для використання трьохрівневої структури таблиці сторінок віртуальна адреса в Linux розглядається як складова з чотирьох частин.

Ліве(найбільше, що значиме) поле використовується в якості індексу в каталозі сторінок; наступне (друге) поле служить в якості індеексу в проміжному каталозі сторінок. Третє поле представляє собою індекс таблиці сторінок, а четверте - зсув в межах сторінки пам'яті.

Структура таблиці сторінок Linux - платформонезалежна і розроблена для роботи з 64-бітовим процесором Alpha.