Гибернация (операционные системы)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Гибернация (англ. hibernation — «зимняя спячка») — энергосберегающий режим операционной системы компьютера, позволяющий сохранять содержимое оперативной памяти на энергонезависимое устройство хранения данных (жесткий диск) перед выключением питания. В отличие от ждущего режима, при использовании гибернации подача энергии полностью прекращается. При включении содержимое памяти восстанавливается (загружается с диска в память), и пользователь может продолжить работу с того же места, на котором он остановился, так как все запущенные ранее программы продолжают выполняться.


В русскоязычной версии Windows XP функция гибернации называется «Спящий режим». Начиная с Windows Vista, этот режим носит название «Гибернация». Кроме того, в Windows Vista появилась дополнительная функция «гибридный спящий режим», при которой содержимое ОЗУ копируется на диск, но питание компьютера не отключается. Таким образом, данные пользователя не будут потеряны в случае отключения электропитания, но в то же время «пробуждение» занимает меньше времени.

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

В KDE4 и GNOME гибернацию можно вызвать через управление электропитанием. При этом должен быть установлен пакет pm-utils.

В некоторых случаях спящий режим не работает в Ubuntu, из-за чего он отключен по умолчанию.

Преимущества и недостатки[править | править вики-текст]

Преимущества
  • Быстрый вход-выход (не проводится закрытие-инициализация драйверов и ПО, которые в сложных программных системах могут длиться довольно долго).
  • Может производиться автоматически, без участия пользователя (например, когда заряд ноутбука достигнет критически низкого уровня). При обычном выключении или перезагрузке пользователь должен ответить на запросы о сохранении документов (либо ОС принудительно закроет все программы, сбросив несохранённые изменения).
Недостатки
  • Занимает большое количество дискового пространства (равное объёму установленной либо используемой оперативной памяти).
  • Выход из спящего режима на HDD (в отличие от SSD) при больших объёмах ОЗУ может длиться сравнительно долго.
  • При больших объемах ОЗУ и установленной на SSD ОС, для редко используемого файла гибернации резервируется большой объем дискового пространства. При этом изменить расположение файла гибернации в Windows невозможно из-за особенностей загрузчика ядра, который способен видеть только тот раздел диска, на который установлен загрузчик.
  • Некоторые драйверы и программы имеют проблемы со спящим режимом. Например, Miranda IM версий до 0.8 выводила сообщение о невозможности подключения (но после этого нормально подключалась к серверу). Logitech SetPoint с мышью Logitech G5 переставляет уровень чувствительности, но «забывает» обновить индикацию этого уровня.
  • Если содержимое диска изменится, то часть данных, которые находятся в виртуальной памяти (дисковый кэш, FAT, таблицы дескрипторов и т.д.) окажутся в устаревшем состоянии. Именно поэтому Linux предупреждает пользователя при монтировании разделов, используемых Windows. Кроме того, при включении компьютера не рекомендуется использовать мультизагрузку.
  • Проблемы с выходом из спящего режима могут возникнуть при сбое аппаратного обеспечения машины (BIOS, HDD).
  • Шифрование файла спящего режима (как и файла подкачки), хранящего копию содержимого ОЗУ, осуществляется не во всех операционных системах (исключение — OS X). Таким образом, использование спящего режима может оказаться небезопасным.

Гибернация отдельных программ[править | править вики-текст]

В общем случае, принцип гибернации не может быть применён к отдельным программам.[1][2] Дело в том, что некоторые операции над файлами могут единовременно производиться только одной программой (см. мьютекс). Так, операция «открытие файла для записи» предполагает, что никакая другая программа не будет обращаться к данному файлу.

Рассмотрим следующий сценарий:

  1. Программа открывает файл, записывает в него информацию.
  2. В это время её отправляют в гибернацию.

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

Примечания[править | править вики-текст]