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

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

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

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

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

Преимущества и недостатки

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

Гибернация отдельных программ

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

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

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

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

Интересные факты

  • Поддержка гибернации добавлена в ОС Windows начиная с Windows 95, которая распространялась с 1995 года.
  • ОС Eumel, которая распространялась с 1980 года, поддерживала orthogonal persistence[3], который заключался в следующем: ОС периодически сохраняла на диск своё состояние (содержимое памяти и данные о состоянии устройств); после перебоев в подаче электроэнергии ОС восстанавливалась из сохранённого состояния; программы продолжали работать так, будто бы сбоя не происходило; терялись только изменения, внесённые с момента последнего сохранения.

См. также

  • Cпящий режим (космический аппарат) (см. также safe mode)

Ссылки

Примечания

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.