Віртуальна пам'ять - студопедія

В даний час ця технологія має апаратну підтримку на всіх сучасних процесорах.

У разі розташування даних на зовнішніх запам'ятовуючих пристроях пам'ять може бути представлена, наприклад, спеціальним розділом на жорсткому диску (partition) або окремим файлом на звичайному розділі диска.

Також існує термін swap (англ. Swap, / sw # 596; p /) також означає віртуальну пам'ять (точніше спосіб її подання), або ж означає підкачування даних з диска.

Застосування механізму віртуальної пам'яті дозволяє:

раціонально управляти оперативною пам'яттю комп'ютера (зберігати в ній тільки активно використовуються області пам'яті);

ізолювати процеси один від одного (процес вважає, що монопольно володіє всією пам'яттю)

Сторінкова організація віртуальної пам'яті

У сімействі операційних систем Microsoft Windows місце для зберігання сторінок на жорстких дисках повинно бути виділено заздалегідь. Користувач може покластися на автоматичний механізм або самостійно вказати розмір області віртуальної пам'яті на кожному з розділів диска. На зазначених розділах операційною системою створюється файл pagefile.sys необхідного розміру, який і зберігає «скинуті» з оперативної пам'яті сторінки.

Сегментна організація віртуальної пам'яті

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

Фрагментація файлу підкачки

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

Використання свопинга особливо ефективно, якщо запущено багато інтерактивних додатків, які споживають великий обсяг ОЗУ, але при цьому практично не займають процесорний час.

Методики ефективної організації файлу підкачки

Одним із способів виділення місця для swap # 8208; файлу (розділу) є кратне виділення пам'яті, коли обсяг цього файлу дорівнює обсягу оперативної пам'яті, помноженому на 1, на 2, на 3.

Якщо на комп'ютері є більше одного жорсткого диска, то для більш швидкого звернення до файлу підкачки його бажано розмістити на найменш навантаженому запитами читання / запису фізичному диску. Хорошим вибором буде фізичний диск, з якого не запускається ОС або додатки.

Слід врахувати пропускну здатність інтерфейсу жорсткого диска (IDE / SATA), а також характеристики самих дисків. Краще розмістити файл підкачки на диску, який має найбільшу швидкість читання / запису.

У Windows швидкість читання з невеликих розділів більше у FAT32 в порівнянні з NTFS [2], однак, завдяки більш високій стійкості NTFS до збоїв і значним обсягам сучасних вінчестерів, розділи з FAT32 нині рідко використовуються.

При наявності на комп'ютері значного обсягу ОЗУ (1 і більше гігабайт) і використанні більшості популярних ОС сімейств GNU / Linux і MS Windows (крім Windows Vista / 7) можна повністю відключити підкачування. При використанні різних версій Windows Vista також можна відключити підкачування, однак, в силу ресурсоємності цієї системи, бажано при цьому мати не менше 2 Гб фізичної пам'яті.

З файлу (розділу) підкачки часто можна витягти конфіденційну інформацію, яка використовується при роботі обчислювальної системи. Тому при роботі з секретними даними зазвичай проводиться очищення swap - наприклад, за допомогою утиліти sswap з комплекту secure remove.

Алгоритми визначення застарілих сторінок

При виділенні місця для нової сторінки буває необхідно видалити будь-яку сторінку, в даний момент знаходиться в пам'яті. Правила заміщення сторінок служать для прийняття рішення про те, яку саме сторінку слід видалити з пам'яті. Ідеальним кандидатом є «мертва» сторінка, яка більше не буде потрібно кому-небудь (наприклад, відноситься до завершеного процесу). Якщо ж таких сторінок немає в пам'яті (або їх кількості недостатньо), використовується правило локального або глобального заміщення сторінок:

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

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

Найбільш часто використовувані критерії пошуку:

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

Last Recently Used. Видаляються недавно звільнилися сторінки. Маю на увазі сторінки щойно завершилися процесів.

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

Реалізація зберігання віртуальних даних в різних операційних системах розрізняється в силу архітектурних особливостей ядра операційних систем і їх файлових систем.

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

Microsoft Windows і Windows NT

Область жорсткого диска, призначена для свопінгу, розташовується в окремому файлі, який називається файл підкачки, своп-файл (від англ. Swap file). Він називається pagefile.sys і за замовчуванням створюється системою в кореневому каталозі диска C. Надалі користувач може управляти розміром і розміщенням файлу підкачки, наприклад, використовуючи Панель управління, пункт Система.

Схожі статті