Підкачування сторінок
Підкачування сторінок (англ. paging; також сво́пінг, від англ. swap) — один з механізмів віртуальної пам'яті, при якому окремі фрагменти оперативної пам'яті (зазвичай неактивні) переміщуються на жорсткий диск, звільняючи місце у оперативній пам'яті для завантаження інших фрагментів. Такими фрагментами в сучасних комп'ютерах є сторінки пам'яті.
Тимчасово вивантажені з пам'яті сторінки можуть зберігатися на зовнішніх носіях інформації як у файлі, так і в спеціальному розділі на жорсткому диску (англ. partition), звані відповідно swap-файл і swap-розділ. У разі відкачування сторінок, що відповідають вмісту будь-якого файлу (наприклад, англ. memory-mapped files), вони можуть вилучатися. При запиті такої сторінки вона може бути прочитана з оригінального файлу.
Коли застосунок звернеться до відкачаної сторінки, відбудеться виняткова ситуація Page Fault. Обробник цієї події повинен перевірити, чи було раніше відновлено запитану сторінку, і, якщо вона є в свопі, завантажити її назад в пам'ять.
Безпека
Оскільки при використані свопінгу частина даних зберігається в енергонезалежній пам'яті і, відповідно, не стирається при вимкнені живлення, то зловмисники можуть скористатися цим, проаналізувавши swap-файл і витягнувши з нього цінну інформацію, наприклад паролі. Тому для гарантування безпеки слід або відмовитись від свопінгу взагалі, або повністю шифрувати розділ або файл підкачування.
Налаштування розділу або файлу підкачування у GNU/Linux і Solaris
Мінімальний розмір дискового простору, який рекомендується[ким?] для розділу чи файлу підкачування дорівнює обсягові оперативної пам'яті машини.[джерело?] Найбільш оптимальним[джерело?] вважається подвоєний обсяг RAM. Можна виділити і більше місця, але це має сенс лише у випадку, коли комп'ютер має дуже мало оперативної пам'яті, або є намір використовувати програмне забезпечення, яке потребує її великої кількості.[джерело?]
Якщо для розділу підкачування використовується окремий жорсткий диск, бажано, щоб він був найшвидшим, і при можливості не використовувався файловими системами.[джерело?]
Розділ підкачування ініціалізується за допомогою команди mkswap. Наприклад, якщо для підкачування виділено перший розділ на пристрої sda
:
# mkswap /dev/sda1
Активація і деактивація розділу здійснюється командами swapon і swapoff.
Файл підкачування
В ядрах Linux 2.6 і новіших робота swap-файла не поступається по продуктивності swap-розділу[1][2]:
У GNU/Linux створити файл підкачування можна комадною dd, а ініціалізувати — за допомогою mkswap:
# dd if=/dev/zero of=/swap bs=1024 count=128K # mkswap /swap # sync # swapon /swap # chmod 600 /swap
Oracle Solaris може використовувати томи ZFS як розділи підкачування:
# zfs create -V 2G pool/swap # swap -a /dev/zvol/dsk/pool/swap
Див. також
- Буксування (інформатика)
Джерела
- "Jesper Juhl": Re: How to send a break? - dump from frozen 64bit linux. LKML. 29 травня 2006. Архів оригіналу за 19 червня 2012. Процитовано 28 жовтня 2010.
- Andrew Morton: Re: Swap partition vs swap file. LKML. Архів оригіналу за 19 червня 2012. Процитовано 28 жовтня 2010.