Особливості адресації процесів і ядра



Лінійний адресний простір поділяється на дві частини: перші 2 Гбайт адрес доступні для процесу в режимі користувача і є його захищеним адресним простором; інші 2 Гбайт адрес доступні тільки в режимі ядра і відображають системний адресний простір.

Зазначимо, що таке співвідношення між адресним простором процесу і ядра відрізняється від прийнятого в Linux (3 Гбайт для процесу, 1 Гбайт для ядра).

Деякі версії Windows XP дають можливість задати співвідношення 3 Гбайт/1 Гбайт під час завантаження системи.

Структура адресного простору процесів і ядра

В адресному просторі процесу можна виділити такі ділянки:

· перші 64 Кбайт (починаючи з нульової адреси) – це спеціальна ділянка, доступ до якої завжди спричиняє помилки;

· усю пам’ять між першими 64 Кбайт і останніми 136 Кбайт (майже 2 Гбайт) може використовувати процес під час свого викоання;

далі розташовані два блоки по 4 Кбайт: блоки оточення потоку (TEB) і процесу (PEB);

· наступні 4 Кбайт – ділянка пам’яті, куди відображаються різні системні дані (системний час, значення лічильника системний годин, номер версії системи), тому для доступу до них процесу не потрібно перемикатися в режим ядра;

· остання 64 Кбайт використовують для запобігання спробам доступу за межі адресного простору процесу (спроба доступу до цієї пам’яті дасть помилку).

Системний адресний простір містить велику кількість різних ділянок. Найважливіші з них наведено нижче.

· Перші 512 Мбайт системного адресного простору використовують для завантаження ядра системи.

· 4 Мбайт пам’яті виділяють під каталог сторінок і таблиці сторінок процесу.

· Спеціальну ділянку пам’яті розміром 4 Мбайт, яку називають гіперпространством (hyperspace), використовують для відображення різних структур даних, специфічних для процесу, на системний адресний простір (наприклад, вона містить список сторінок робочого набору процесу).

· 512 Мбайт виділяють під системний кеш.

· У системній адресний простір відображаються спеціальні ділянки пам’яті – вивантажуваний пул і невивантажуваний пул.

· Приблизно 4 Мбайт у самому кінці системного адресного простору виділяють під структури даних, необхідні для створення аварійного образу пам’яті, а також для структур даних HAL.

Висновки

· Керування пам’яттю є однією з найскладніших задач, які стоять перед операційною системою. Щоб нестача пам’яті не заважала роботі користувача, потрібно розв’язувати задачу координації різних видів пам’яті. Можна використовувати повільнішу пам’ять для збільшення розміру швидшої (на цьому ґрунтується технологія віртуальної пам’яті), а також швидшу – для прискорення доступу до повільнішої (на цьому ґрунтується кешування).

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

· Базовими підходами до реалізації віртуальної пам’яті є сегментація і сторінкова організація. Обидві ці підходи дають можливість розглядати логічний адресний простір процесу як сукупність окремих блоків, кожен з яких може бути відображений на основну пам’ять або диск. Головна відмінність полягає в тому, що у випадку сегментації блоки мають змінну довжину, а у разі сторінкової організації – постійну. Сьогодні часто трапляється комбінація цих двох підходів (сторінково-сегментна організація пам’яті).

· У разі сторінкової організації пам’яті логічна адреса містить номер у спеціальній структурі даних – таблиці сторінок, а також зсув відносно початку сторінки. Розділення адреси на частини відбувається апаратно. Елемент таблиці сторінок містить адресу початку блоку фізичної пам’яті, у який відображається сторінка (такий блок називається фреймом) і права доступу. Він може також відповідати сторінці, відображеній на диск. Таблиці сторінок можуть містити кілька рівнів. Таблицю верхнього рівня називають каталогом сторінок. Кожний процес має свій набір таких таблиць. Для прискорення доступу останні використані елементи таблиць керуються в асоціативній пам’яті.

 


Розділ 9


Дата добавления: 2018-04-05; просмотров: 548; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!