Особливості буферизації сторінок



Організація буферизації сторінок у Windows XP доволі складна, але переважно дотримуються базової схеми, описаної у розділі 9.5.6.

Система підтримує 5 списків сторінок, переходи між якими показані на рис. 9.11.

Модифікованих (modified page list). Містить вилучені із робочих наборів сторінки, які були модифіковані й котрі потрібно зберегти на диску. За принци­пом використання він аналогічний списку Lm.

Рис. 9.11. Списки сторінок у Windows XP

Чистих (standby page list). Містить вилучені із робочих наборів сторінки, які можна негайно використати для виділення пам’яті. Він аналогічний списку Lf. Списки чистих і модифікованих сторінок працюють як кеші сторінок (див. розділ 9.5.6).

Вільних (free page list). У ньому перебувають сторінки, які не містять осмис­леної інформації (немає сенсу повертати їх в робочі набори процесів).

Обнулених (zero page list). Аналогічний списку вільних сторінок, але сторінки в ньому заповнені нулями.

Некоректних фреймів фізичної пам’яті (bad page list). Фрейми в ньому відповідають ділянкам фізичної пам’яті, під час доступу до яких відбувався апаратний збій. Фрейми із цього списку ніколи не будуть використані менеджером пам’яті. Зазначимо, що у Windows XP відсутня концепція списку активних сторінок, таким списком є робочі набори процесів.

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

Крім того, за переміщення сторінок між списками відповідають кілька спеціалізованих потоків ядра.

· Потік вивантаження (swapper), який займається вивільненням сторінок неактивних процесів. Його запускають за таймером через 4 с. Якщо цей потік знаходить процес, усі потоки якого перебували у стані очікування упродовж деякого часу (від 3 до 7 с), він переміщує всі сторінки його робочого набору у списки чистих і модифікованих сторінок.

· Потік записування модифікованих сторінок (modified page writer), який виконує запис модифікованих сторінок на диск. Після того, як цей потік запише сторінку на диск, її переміщують у кінець списку чистих сторінок.

· Низькопріоритетний потік обнуління сторінок (zero page thread), переважно виконується, коли система не навантажена.

Коли потрібна нова сторінка, процес спочатку переглядає список вільних сторі­нок. Якщо він порожній, процес звертається до списку обнулених сторінок, якщо і в ньому немає жодного елемента, сторінку беруть зі списку чистих сторінок.

Попереднє завантаження сторінок

У Windows XP з’явилася підтримка попереднього завантаження сторінок. Вона ґрунтується на спостереженні за завантаженням коду програми. Воно часто сповільнюється внаслідок сторінкових переривань, які призводять до читання даних із різних файлів.

Для зменшення кількості файлів, до яких потрібно звертатися під час завантаження програмного коду, виконавча система Windows XP відслідковує сторінкові переривання упродовж 10 с під час першого запуску застосування. Після цього зібрану інформацію, зокрема, сторінки, завантажені у пам’ять, зберігають у спеціальному файлі попереднього завантаження застосування у підкаталозі Prefetch системного каталогу Windows XP.

Під час наступних спроб запуску застосування перевіряють, чи не був для нього уже створений файл попереднього завантаження. Якщо це так, відбувається завантаження у пам’ять збережених сторінок даних із цього файла. При цьому звертатися до файлів, з яких були завантажені ці сторінки під час першого запуску застосування, не потрібно.

Аналогічні дії відбуваються й під час завантаження всієї системи, коли створюють файл попереднього завантаження Windows XP. Дані з цього файлу будуть зчитані у пам’ять під час наступних завантажень системи.


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

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






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