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

08-07-2023

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

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

В Windows Vista появилась дополнительная функция «гибридный спящий режим», когда содержимое ОЗУ сбрасывается на диск, но питание не отключается. Если компьютер был отключён или пропало электропитание, ОС восстанавливается с диска; если нет — система выходит из ждущего режима ACPI.

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

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

Содержание

Преимущества

  • Быстрый вход-выход (не проводится закрытие-инициализация драйверов и ПО, которые в сложных программных системах могут длиться довольно долго)
  • Может проводиться автоматически без участия пользователя (например, когда заряд ноутбука опустится до критически низкого). При обычном выключении или перезагрузке либо пользователь должен ответить на запросы о сохранении документов, либо ОС придётся принудительно закрыть эти программы, потеряв несохранённые изменения.

Недостатки

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

Единичные приложения

В общем случае принцип гибернации не может быть применён к единичным программам.[1] Дело в том, что в системе есть вещи, которые принадлежат программе лишь частично. Например, открытый файл, захваченный мютекс. Естественно, операция «открытие файла для записи» предполагает, что никто больше не будет трогать этот файл. Рассмотрим такой сценарий.

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

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

Примечания

  1. Why can't the system hibernate just one process?, Почему система не может отправить в гибернацию только один процесс, Реймонд Чен

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

© 2011–2023 stamp-i-k.ru, Россия, Барнаул, ул. Анатолия 32, +7 (3852) 15-49-47