словник | перекладачка | факти | тексти | програми
щодо | посилання | новини | гостьова книга | пошук
початок << тексти  << автор  << зміст  << сторінка

next up previous contents index
Далі: Використання свопінґу Вгору: Керування пам'яттю Назад: Що таке віртуальна пам'ять?

Створення простору для свопінґу

Файл для свопінґу - це самий звичайний файл з точки зору ядра. Єдина річ, яка має значення для ядра, це те, що цей файл не має дірок і що він приготований для свопінґу командою mkswap . Однак, цей файл повинен бути на локальному диску, тобто не може знаходитись на файловій системі NFS105.

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

Вірний спосіб для створення файлу свопінґу є такий:

$ dd if=/dev/zero of=/extra-swap bs=1024 count=1024
1024+0 records in
1024+0 records out
$

де /extra-swap  - це назва файлу, призначеного під свопінґ, а його розмір дано після count=. Краще всього, якщо розмір буде кратний чотирьом, бо ядро скидає у своп-файл сторінки пам'яті розміром в 4 кілобайти. Якщо розмір буде не кратним 4, то останні кілька кілобайт не будуть використані. Підрозділ для свопінґу теж є самим звичайним підрозділом. Він створюється точнісінько, як будь-який інший підрозділ. Єдиною відмінністю є те, що він використовується як сирий диск - без файлової системи на ньому. Краще, якщо підрозділ, призначений під свопінґ буде мати тип 82 - Лінакс своп-підрозділ. Навіть при тому, що ядро не звертає уваги на типи розділів, така установка зробить список підрозділів трохи чіткішим.

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

$ mkswap /extra-swap 1024
Setting up swapspace, size = 1044480 bytes
$

Відмітимо, що навіть після цієї операції своп-простір все ще не використовується - він існує, але ядро не використовує його як віртуальну пам'ять.

Будьте дуже обережними при використанні команди mkswap , оскільки вона не перевіряє, чи використовується цей дисковий простір чимось іще. Ви можете запросто знищити важливі файли і цілі розділи диску цією командою На щастя командою mkswap  потрібно користуватися тільки при встановленні системи. Менеджер пам'яті Лінакса обмежує розмір кожної ділянки своп-простору до приблизно 127 МБайт (з різних технічних причин справжній розмір є $(4096-10)\times 8\times 4096 =
133890048$ байт чи 127,6875 мегабайт). Однак, можна користуватися шістнадцятьма такими розділами одночасно, що робить максимальний розмір простору для свопінґу рівним приблизно 2 Ґіґабайтам.107



Dmytro Kovalev
1999-06-10
вгору
 
Без реклами
2004-03-23 13:52:04
TopList
© 2000-2003, Київ, Соломко Валентин -- ідея та наповнення, графічне опрацювання -- проєкт дизайн, змiнено -- 08.06.2003 14:25:50