Гібернація (інформатика)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

В українськомовній версії Windows XP функція глибокого сну називається «Сплячий режим». Починаючи з Windows Vista, цей режим має назву «Гібернація». Крім того, у Windows Vista з'явилася додаткова функція «гібридний сплячий режим», при якій вміст оперативної пам'яті копіюється на диск, але живлення комп'ютера не вимикається. Таким чином, дані користувача не будуть втрачені в разі відімкнення електроживлення, водночас «пробудження» займає менше часу.

В OS X сплячий режим об'єднаний із очікувальним. При цьому звичайний сплячий режим OS X відповідає гібридному в Windows Vista, а при низькому заряді акумулятораноутбуках) використовується режим «глибокого сну», аналогічний глибокого сну, при якому комп'ютер відімкнений від живлення повністю.

В KDE і GNOME гібернацію можна викликати[як?] через керування електроживленням. При цьому повинен бути встановлений пакет pm-utils.

Переваги та недоліки[ред. | ред. код]

Переваги
  • Швидке закінчення / початок роботи (не витрачається час на зупинку / запуск драйверів і програм).
  • Можливість автоматизації (гібернація може виконуватися автоматично, без участі користувача, наприклад, при досягненні низького рівня заряду у батареї ноутбука).
  • Відсутність інтерактивності (користувачеві не потрібно відповідати на запити про збереження документів).
Недоліки
  • Необхідність наявності вільного місця на диску (вміст пам'яті й дані про стан обладнання займають велику кількість дискового простору, приблизно рівне обсягом доступної або використовуваної пам'яті).
  • При великих розмірах оперативної пам'яті та встановленні ОС на SSD для рідко використовуваного файлу гібернації резервується великий розмір дискового простору. При цьому змінити розташування файлу гібернації в Windows неможливо через особливості завантажувача ядра, який здатний бачити тільки той розділ диска, на який встановлений завантажувач.
  • Деякі драйвери і програми мають проблеми зі сплячим режимом. Наприклад, Miranda IM версій до 0.8 виводила повідомлення про неможливість підключення (але після цього нормально підключалася до сервера). Logitech SetPoint з мишею Logitech G5 переставляє рівень чутливості, але «забуває» оновити індикацію цього рівня.
  • Якщо вміст диска зміниться, то частина даних, які знаходяться в віртуальної пам'яті (дисковий кеш, FAT, таблиці дескрипторів і т. Д.) виявляться в застарілому стані. З цієї причини в ОС Linux при монтуванні розділів, використовуваних ОС Windows, пристрій не може або розділ монтується тільки для читання. Крім того, при включенні комп'ютера не рекомендується використовувати мультизавантаження.
  • Проблеми з виходом зі сплячого режиму можуть виникнути при збої апаратного забезпечення машини (BIOS, HDD).
  • Шифрування файлу сплячого режиму (як і файлу підкачки), що зберігає копію вмісту пам'яті, здійснюється не у всіх операційних системах (виняток — OS X). Таким чином, використання сплячого режиму може виявитися небезпечним.

Гібернація окремих програм[ред. | ред. код]

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

Розглянемо наступний сценарій:

  1. Програма відкриває файл, записує в нього інформацію;
  2. В цей час її відправляють в гібернацію;

Якщо файл буде заблокований — досить видалити файл глибокого сну, і ми отримаємо невидаляючий файл. Якщо ні — інше процес може змінити файл, що може привести до помилки «Неприпустима операція» або псування даних. Подібні проблеми виникають і з іншими об'єктами ОС — наприклад, повідомленнями про розмонтування диска: програма, перебуваючи в сплячому режимі, просто не зможе на них відреагувати.

Посилання[ред. | ред. код]