Особливості реалізації в unix

Політика очищення сторінок

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

Сторінковий демон - програма, періодично перевіряє стан пам'яті, якщо зайнято багато блоків, то виробляє вибіркову вивантаження сторінок.

В UNIX системах послідовність запуску процесів, наступна:

процес 0 - це свопер

процес 1 - це init

процес 2 - це сторінковий демон

Сторінковий демон прокидається кожні 250мс, і перевіряє кількість вільних сторінкових блоків, якщо їх менше 1/4 пам'яті, то він починає вивантажувати сторінки на диск. Він використовує модифікований алгоритм годин, і він є глобальним (тобто він не розрізняє, якому процесу належить сторінка).

Кожні кілька секунд свопер перевіряє, чи є на диску готові процеси для завантаження в пам'ять для виконання. При цьому сам код програми в своп-файлі не зберігається, а підкачуються безпосередньо з файлу програми.

У LUNIX системі нетпредварітельной завантаження сторінок і концепції робочого набору.

Тексти програм і відображаються файли завантажуються прямо з файлів розташованих на диску.

Все інше вивантажується в розділ свопінгу або файли свопінгу (їх може бути від 0 до 8).

Алгоритм вивантаження сторінок заснований на сторінковому демона (kswapd), він активізується раз в секунда і перевіряє чи достатньо вільних сторінок. Демон може бути активізований і примусово, при не хватці пам'яті.

Демон складається з трьох процедур:

· У першій використовується алгоритм годин, вона шукає рідко використовуються сторінки сторінкового кешу і буферного кешу файлової системи.

· Друга процедура шукає спільно рідко використовуються сторінки.

· Третя шукає рідко використовуються сторінки одиночних користувачів. Спочатку скануються сторінки у того процесу, у якого їх найбільше.

В LINUX є ще один демон - bdflush. Він регулярно прокидається і перевіряє, чи не перевищила чи певне значення кількість змінених сторінок, якщо так то він починає їх примусово зберігати на диск.

7.4 Особливості реалізації в Windows

Сторінки мають фіксований розмір (на процесорах Pentium 4 Кбайт, на Itanium 8 або 16 Кбайт) і завантажуються на вимогу.

Білим кольором виділені області приватних даних процесу.

Затемнені області, спільно використовуються усіма процесами.

Системні дані містять покажчики і таймери, доступні на читання іншим процесам.

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

У сторінок є три стани:

· Вільне - не використовується

· Фіксоване - дані відображені в сторінці

· Зарезервоване - зарезервовано, але не зайнято даними (при створенні потоку)

Файли свопинга може бути до 16, розділів свопінгу немає. У файлах свопинга зберігаються тільки змінювані сторінки.

Випереджальна підкачка в Windows не використовується.

У Windows використовується поняття робочий набір.

Сторінковий демон в Windows складається з:

· Менеджера балансового безлічі - перевіряє, чи достатньо вільних сторінок.

· Менеджера робочих наборів - який досліджує робочі набори і звільняє сторінки.

Також в Windows є такі демони:

· Демон записи відображених сторінок - запис в відображені файли

· Демон записи модифікованих сторінок

Схожі статті