Тема 9 управління пам'яттю в linux

1 *. Структура пам'яті в linux

Містить машинні команди, що утворюють виконуваний код програми. Він створюється компілятором і ассемблером при трансляції програми в машинний код (тільки для читання).

Містить змінні, рядки, масиви та інші дані програми. Він складається з 2-х частин: початкові дані і неініціалізовані дані. Ініціалізувати частина сегмента даних містить змінні і константи компілятора, значення яких повинні бути задані при запуску. Всі змінні в неініціалізованої частини повинні бути скинуті в 0.

3. stack segment

1. Зберігати в оперативній пам'яті дві копії вихідного тексту програми

2. Обидва процеси посилаються на один і той же ділянку пам'яті, де знаходиться текст програми.

1. ZONE_DMA - це сторінки, які можна використовувати для операцій DMA

2. ZONE_NORMAL - це нормальні відображаються сторінки

Карта пам'яті організована таким чином:

2. zone descriptor - містить інформацію про використання пам'яті в зоні, таку як кількість активних і неактивних сторінок нижній і верхній межі для алгоритмів заміщення сторінок і ін. Крім того, дескриптор зони містить масив вільних областей. Перший елемент цього масиву вказує на 1-й дескриптор сторінки 1-го блоку і вільних сторінок. Наявність даної структури обумовлено можливістю системи linux перенесення на архітектуру NUMA. Кожен дескриптор вузла містить інформацію про використання пам'яті та зонах для даного конкретного вузла.

Фізична пам'ять використовується для різних цілей, частини якої можуть розвантажуватися або НЕ розвантажуватися на жорсткий диск. Ядро системи, як і жодна з його частина не вивантажується на диск, інша частина пам'яті доступна для сторінок користувачів.

Крім того операційна система linux підтримує динамічно завантажувані модулі, в основному драйвери пристроїв. Вони можуть бути більшого розміру і кожному з них повинен бути виділений безперервний ділянку ядра пам'яті.

1. Глобальний каталог

2. Верхній каталог

3. Середній каталог

В системі linux використовується 4-х рівнева схема таблиць сторінок. Поля каталогів використовуються як індекс у відповідному каталозі сторінок. Глобальний каталог вказує на верхній каталог, верхній каталог вказує на середній і середній вказує на конкретну сторінку, яку необхідно використовувати в даний момент часу.

Схожі статті