Підкачування сторінок (; також сво́пінг, від ) — один з механізмів віртуальної пам'яті, при якому окремі сторінки оперативної пам'яті (зазвичай неактивні) переміщуються на жорсткий диск, звільняючи місце у оперативній пам'яті для завантаження інших сторінок.

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

Коли застосунок звернеться до вивантаженої сторінки, відбудеться виняткова ситуація «помилка сторінки». Обробник цієї події повинен перевірити, чи було раніше відновлено запитану сторінку, і, якщо вона є в свопі, завантажити її назад в пам'ять.

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

Налаштування розділу або файлу підкачування у GNU/Linux і Solaris

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

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

Розділ підкачування ініціалізується за допомогою команди mkswap. Наприклад, якщо для підкачування виділено перший розділ на пристрої sda: # mkswap /dev/sda1

Активація і деактивація розділу здійснюється командами swapon і swapoff.

Файл підкачування

В ядрах Linux 2.6 і новіших робота swap-файла не поступається по продуктивності swap-розділу:

У 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

Див. також Трешинг (інформатика)

Джерела