Гибернация: что это за режим и чем полезен пользователю
Современные компьютеры и ноутбуки поддерживают несколько разных режимов энергосбережения. Самые распространённые из них: сон и гибернация. И если с первым режимом всё более-менее понятно, по поводу второго возникают вопросы. Далеко не всем известно понятие гибернация, что это и как им пользоваться. На самом деле, это очень удобный и нужный режим энергосбережения. О нём и поговорим сегодня более подробно.
Гибернация: что это
Для начала, подробно разберемся, что это за режим. Если отталкиваться от самого понятия, то слово hibernation в дословном переводе с английского означает «зимняя спячка». Фактически компьютер переходит в состояние сходное с этим определением. В этот момент содержимое оперативной памяти сохраняется в специальный файл на жёстком диске, а сам компьютер переходит в состояние с минимальным расходом электроэнергии. Такой режим отлично подходит для ноутбуков, когда возможности подзарядить устройство пока нет, а зафиксировать текущие процессы необходимо.
После перехода в гибернацию полное восстановление занимает от 30 секунд до 2 мину. Это несколько больше, чем выход из режима ожидания, поэтому процесс часто пугает неопытных пользователей. Режим гибернации вошёл в операционную систему Windows с версии XP.
Теперь нам знакомо понятие гибернация, что это и для чего необходимо. Как видно из описанного выше режим очень полезный, особенно для ноутбуков. Но и не обделён недостатками, которые в целом не такие существенны.
В чем разница между режимами «сон» и «гибернация» 
Как уже было упомянуто выше ноутбуки имеют несколько режимов энергосбережения. Давайте разберёмся, чем отличаются «сон» и «гибернация».
Спящий режим подразумевает пониженное энергопотребление, позволяющее очень быстро возобновить работу устройства. Обычно на это требуется несколько секунд. То есть режим сна — это своеобразная пауза для ноутбука или компьютера. При этом состояние системы хранится в оперативной памяти и при полном отключении устройства оно будет утеряно.
Режим гибернации в чём-то похож с предыдущим. Он также подразумевает пониженное энергопотребление, но в этом случае оно практически прекращается. Этот режим максимально полезен для ноутбука. При переходе в спящий режим происходит автоматическое сохранение всех открытых документов и программ в файл, который размещается на жёстком диске устройства. В этом случае устройство не страшно полное отключение, так как после запуска будет выполнен выход из гибернации и восстановление всех данных из созданного файла. Это отличный вариант «сохраниться» если близко отключение и в ближайшее время возможности восполнить заряд не будет. При этом можно настроить автоматическую гибернацию для ситуаций, когда заряд батареи критически низкий.
Основные различия между двумя состояниями в месте хранения данных, в первом случае это оперативная память, во втором жёсткий диск, а также возможности полностью обесточить устройство во втором режиме, первый такого не позволяет.
Как отключить режим гибернации 
Итак, гибернация, что это и чем отличается ото сна мы разобрались. Для того чтобы вручную перевести ноутбук в нужное состояние не требуется особых действий. Процедура практически аналогична отключению: переходим в меню «Пуск», но вместо команды «завершение работы» вызываем дополнительное меню, щёлкнув по стрелочке и выбираем нужный режим.
Если гибернация вам не нужна, и вы желаете освободить место на системном диске, зарезервированное для файла hiberfil.sys, придётся немного потрудиться, но это не значит, что алгоритм отключения сложный. Действуйте в соответствии с нашими рекомендациями и всё получится даже у начинающего пользователя.
После этого состояние гибернации будет отключено и станет недоступно в списке дополнительного меню режима выключения.
Если вдруг вы решите, что гибернация вам необходимо и решите вернуть её в список доступных энергосберегающих режимов, то достаточно повторить описанный выше алгоритм. Только в рабочем окне командной строки нужно ввести команду powercfg –h on .
Теперь вам окончательно понятно: гибернация, что это и для чего она нужна. Мы разобрались, как убрать возможность перехода в режим гибернации и освободить место на диске. Выяснили какие плюсы и минусы имеет данное состояние энергосбережения. Если остались вопросы – задайте их в обсуждениях, мы постараемся ответить. Делитесь статьёй в социальных сетях и оставайтесь с нами, мы расскажем ещё много полезного.
Факт или миф: комп не стоит изнашивать частыми включениями-выключениями? Гибернация системы на SSD?
Существует мнение (читал в интернете), что компьютер не стоит часто включать-выключать за день. Мол, если нужно куда-то отойти от компьютера на 15-30-60 минут (условно), то его лучше не выключать, ибо «это ему вредит, изнашивает». Но десктоп может хорошо кушать электроэнергию в простое и как-то нет желания оставлять его включенным при бездействии системы.
Что скажут эксперты хабра на этот счёт?
Понимаю, что лучше использовать гибернацию для таких случаев. если система на HDD диске. А если система на SSD диске, то гибернацию в системе рекомендуют отключать.
А использовать параметр «Сон», не особо что-то меняет, ведь.
Простой 1 комментарий
Сама идея появилась от того, что при циклировании питания, изнашивается HDD и в гораздо меньшей степени, конденсаторы в цепях фильтрации питания.
Так что если исключить из рассмотрения HDD (его нет) и конденсаторы (там теперь кругом твердотельные), пробоем с циклированием нет никаких.
res2001, миф ли? ЕМНИП, Гугл публиковал исследования, что 24*7*365 положительно сказывается на сроке службы НЖМД.
В любом случае, очевидно, что процессы спинап-спиндаун и всевозможные переходные процессы в компонентах в целом, в первую очередь, температурного характера, скорее снизят срок службы ПК. Однако такое снижение срока службы вряд ли можно объективно оценить в масштабах меньше корпоративного, и даже там картина будет значительно искажаться более значимыми случайными факторами.
У автора явно нервы на карантине пошаливают, он переживает сначала по поводу срока жизни SSD (см. предыдущий вопрос), теперь вот по поводу срока жизни ПК в целом и немного SSD. Ему говорят, что сейчас это несущественно, но он предпочитает не слышать (тогда зачем задавать вопрос, непонятно).
Что до электропотребления, то оно рассчитано для разных типовых конфигов, плюс есть конфигураторы-калькуляторы, а при желании можно за относительно небольшие деьги измерить фактическое самому. В чем сложность загуглить\измерить, непонятно. Множится на стоимость электричества, а дальше ТС и его жаба смотрят друг на друга и думают, кто кого.
в свое время требовалась процедура «парковки головок» при выключении и какие-то винты сами не умели их парковать, нужно было выдавать команду явно.
Процедура парковки головок требуется и сейчас, всем дискам. А проблема была не в каки-то командах, а в том что ресурс парковок не безграничный. Ибо механика.
Собственно и сейчас эта проблема никуда не делась. Со временем накроются. Но скорее всего по другим причинам.
О ресурсе парковок заговорили вообще на фоне неудачной прошивки диска от WD который парковал слишком часто и выводил диск из строя довольно быстро.
Гибернация — что это такое и как её отключить
Наверняка каждый пользователь операционной системы Виндовс сталкивался с таким странным словом, как «гибернация». Тем не менее далеко не каждый юзер знает, что это такое. И это вовсе не удивительно. Ведь язык постоянно пополняется неологизмами, которые приходят из мира ИТ-технологий. Если вы не знаете, что это за термин «гибернация», то заполнить пробел в знаниях вам поможет данная статья.
Гибернация – что это такое
Чтобы понять, что такое гибернация, стоит обратиться к биологии. Ведь сей термин впервые появился именно в этой научной области. Итак, гибернация – это период, в ходе которого процесс обмена веществ у животных замедляется. Если говорить проще, то это спячка. Что же такое гибернация в ноутбуке? Это особый режим работы компьютера, который предназначен для уменьшения энергозатрат.
Что такое гибернация на ОС Windows 7, 8, 10 проще объяснить на конкретном примере. Наверняка каждый сталкивался с так называемым режимом «Сна». Экран ноута погасает, но вся информация и открытые утилиты сохраняются в RAM устройства. Благодаря этому можно в любой момент продолжить работу с ноутбуком. По сути, гибернация на ноутбуке – это почти то же самое, что и спящий режим в Windows 10. Тем не менее есть одно «но». При гибернации все данные хранятся не в оперативной памяти девайса, а на жестком диске в файле hiberfil.sys, что приводит к уменьшению энергозатрат.
Как включить/выключить гибернацию
Несмотря на то что режим гибернации в Windows 10 позволяет уменьшить энергозатраты, данная функция не всегда желательна. Есть ряд ситуаций, в которых эта технология может создать вам неудобства. В таких случаях вам пригодится информация о том, как отключить гибернацию в Windows 7 и других версиях операционной системы. К примеру, данная функция может действовать во вред, если для вас критически важен объем харда. Ведь файл hiberfil.sys, в котором хранятся данные о запущенных программах, занимает довольно-таки много места на жестком диске (около 70% от объема вашей оперативной памяти). И чтобы освободить память, необходимо деактивировать гибернацию.
Существует несколько способов, как отключить гибернацию в Windows 10. Рассмотрим же каждый из них поподробнее.
Командная строка
Отключение гибернации в ОС Windows 10, 8, 7 и т.д. можно провести через стандартную командную панель. Необходимо руководствоваться следующей инструкцией:
После проведения вышеописанных манипуляций компьютер не будет переходить в режим гибернации. При этом вы получите парочку свободных ГБ к харду за счет удаления hiberfil.sys. Также стоит сказать о том, как включить режим гибернации. Нужно ввести в консоль powercfg –h on и нажать Enter. После такой манипуляции hiberfil.sys вновь появится на харде.
Системный реестр
Существует еще один способ выйти из гибернации раз и навсегда. Для этого необходимо воспользоваться системным реестром Windows. Чтобы вызвать эту утилиту необходимо нажать на горячую комбинацию кнопок Win + R. В появившемся диалоговом окне введите команду regedit и активируйте ее нажатием клавиши Enter.
Запустится системный реестр. В нем необходимо открыть раздел под названием HKEY_LOCAL_MACHINE. После этого войдите в директорию System и отыщите там папку CurrentControlSet и откройте ее. После этого идем в Control и заходим в директорию Power. Ищем значение DWORD (настоящее имя HibernateEnabled). После этого дважды кликаем по нему и настраиваем гибернацию. Чтобы произвести деактивацию этого режима, надо поменять значение параметра на «1». Если же вам понадобится гибернация Windows 10, то в таком случае активируйте ее, установив «0» в нужном пункте.
Настройка гибернации
Если вы не хотите заниматься выключением гибернации, но нужно освободить место на хард драйве, то в таком случае можно уменьшить объем hiberfil.sys. Необходимо настроить характеристики режима, воспользовавшись командной панелью. Помните, что запускать ее нужно с правами администратора. Как настроить параметры гибернации? Открыв командную панель, вбейте туда powercfg /h /type reduced и кликните на клавишу Enter.
После этого объем hiberfil.sys уменьшится. Тем не менее вы не сможете перевести комп в режим гибернации вручную. Чтобы вернуть все в исходное положение вместо параметра reduced введите full.
Сон, гибернация или выключение: что лучше для компьютера?
Компьютеры имеют три основных режима «отдыха». Это спящий режим, гибернация и выключение. Как настроить эти режимы, какой удобнее для пользователя и полезнее для техники?
Спящий режим
Standby или спящий режим – режим экономии заряда батареи ноутбуков и экономии энергии, потребляемой персональным компьютером.
На ПК в спящем режиме также экономится энергия, но в случае скачков электроэнергии возможно выключение ПК и потеря данных из оперативной памяти.
Главная особенность спящего режима — компьютер может сохранять запущенные приложения и задачи в том состоянии, в котором они были на момент перехода в сон. А выход из режима Standby на современных компьютерах происходит практически мгновенно. И это очевидное преимущество для пользователя, в сравнении с выключением и включением ПК, когда приходится ждать загрузки системы и заново запускать все нужные программы.
Режимов Standby может быть несколько (это прописывается в настройках BIOS) и в зависимости от этих режимов меняется список отключаемых компонентов.
Самые щадящие режимы оставляют, например, проигрыш медиафайлов, звук и продолжают поддерживать работу WiFi и Bluetooth (в этом случае продолжается передача данных по беспроводным сетям). Более строгие могут быть очень близки к режиму гибернации.
Гибернация
«Вы как будто замораживаете состояние системы, берете слепок оперативной памяти и полностью копируете его на жесткий диск. При этом режиме компьютер отключает блок питания и электропитание. Но когда вы шевелите мышку, то он берет информацию с жесткого диска и сразу загружает в оперативную память», — объясняет профессор кафедры вычислительных систем СибГУТИ Сергей Мамойленко.
Это позволяет получить эффект быстрого запуска приложений, также как после спящего режима. А риски потери данных ниже.
Но если спящий режим и отключение в меню «Пуск» есть, то гибернация чаще всего отсутствует.
Чтобы добавить этот пункт в меню «Пуск» в Windows 10, в режиме администрирования (пользователь должен быть с правами администратора) надо выбрать раздел «Система», затем «Питание и спящий режим».
В настройках спящего режима установить «Никогда» для параметров экрана «При питании от сети отключать через» и параметров сна «При питании от сети переходить в спящий режим через».
Далее перейти в «Дополнительные параметры питания» и «Действие кнопок питания». Здесь кликнуть на «Изменение параметров, которые сейчас недоступны» и установить нужные режимы, в которые будет переходить компьютер при нажатии кнопок выключения и сна.
После этого можно включить отображение пункта «Режим гибернации» в меню завершения работы.
Выключение
«Когда нажимаете «Завершение работы» происходит завершение всех программ, полное сохранение на диск данных, память обнуляется, компьютер полностью выключается и не потребляет электроэнергию», — говорит Мамойленко.
Когда компьютер включается, все приложения загружаются в оперативную память с жесткого диска загружаются, то есть все запускается заново, поэтому включение — длительный процесс. Именно из-за этой длительности многие предпочитают режим гибернации.
Эксперт опроверг мнение, что надо обязательно выключать компьютер, чтобы техника не «уставала».
«Техника может круглосуточно работать. Отключение на ночь — это лишь экономия электроэнергии и защита от скачков энергии», — заключил собеседник.
Основы Hibernate
Хочу начать со слов благодарности тому человеку, который мне вчера накинул кармы, позволив этим писать мне в персональный блог.
Долго думал, о чем же написать свой «первый» топик… Слово первый не зря взял в кавычки, так как первый топик на самом деле уже был, опыт был к сожалению неудачный — дело закончилось баном. Решил больше не копипастить. Уверенности тому, что надо написать что-то свое, придал вот этот топик. Решил твердо — пусть это будет и редко, но буду писать сам.
Совсем недавно, по роду свой деятельности, мне пришлось столкнуться с таким понятием как ORM — (англ. Object-relational mapping). В двух словах ORM — это отображение объектов какого-либо объектно-ориентированного языка в структуры реляционных баз данных. Именно объектов, таких, какие они есть, со всеми полями, значениями, отношениями м/у друг другом.
ORM-решением для языка Java, является технология Hibernate, которая не только заботится о связи Java классов с таблицами базы данных (и типов данных Java в типы данных SQL), но также предоставляет средства для автоматического построения запросов и извлечения данных и может значительно уменьшить время разработки, которое обычно тратится на ручное написание SQL и JDBC кода. Hibernate генерирует SQL вызовы и освобождает разработчика от ручной обработки результирующего набора данных и конвертации объектов, сохраняя приложение портируемым во все SQL базы данных.
Итак, перед нами стоит задача написать небольшое приложение, которое бы осуществляло простое взаимодействие с базой данных, посредством технологии Hibernate.
Немного подумав, решил написать так называемый «Виртуальный автопарк». Суть парка такова: есть автобусы, есть маршруты и есть водители. Автобусы и маршруты связаны отношением один ко многим, т.е. на одном маршруте может кататься сразу несколько автобусов. Водители и автобусы связаны отношением многие ко многим, т.е. один водитель может водить разные автобусы и один автобус могут водить разные водители. Вроде ничего сложного.
Вот схема базы данных. 
За качество не ругайте — под рукой не оказалось нормального инструмента таблички рисовать…
Вот ссылка на дамп, снятый с базы, вдруг кто-то решит все это дело поднять 🙂
Приступаем к коду. Во первых нам необходимо описать классы наших сущностей, т.е. класс автобуса, водителя и маршрута.
Класс автобус.
import java.util.Set;
import java.util.HashSet;
public class Bus <
private Long id;
private String number;
private Set drivers = new HashSet();
private Long route_id;
import java.util.Set;
import java.util.HashSet;
public class Driver <
private Long id;
private String name;
private String surname;
private int age;
private Set busses = new HashSet();
import java.util.Set;
import java.util.HashSet;
public class Route <
private Long id;
private String name;
private int number;
private Set busses = new HashSet();
Заметьте, что все классы сущностей должны соответствовать Java naming conventions, т.е. у них должны быть обязательно геттеры, сеттеры и конструктор по умолчанию. Ничего сложного 🙂
Теперь для наших классов необходимо описать маппинг в виде xml-файлов, эти файлы как раз и будут отвечать за взаимодействие наших объектов с Hibernate и с базой данных.
Bus.hbm.xml
hibernate-mapping >
class name =«logic.Bus» table =«busses» >
id column =«bus_id» name =«id» type =«java.lang.Long» >
generator class =«increment»/>
id >
property column =«number» name =«number» type =«java.lang.String»/>
set name =«drivers» table =«busDriver» lazy =«false» >
key column =«bus_id»/>
many-to-many column =«driver_id» class =«logic.Driver»/>
set >
Driver.hbm.xml
hibernate-mapping >
class name =«logic.Driver» table =«drivers» >
id column =«driver_id» name =«id» type =«java.lang.Long» >
generator class =«increment»/>
id >
property column =«name» name =«name» type =«java.lang.String»/>
property column =«surname» name =«surname» type =«java.lang.String»/>
property column =«age» name =«age» type =«java.lang.Integer»/>
set name =«busses» table =«busDriver» lazy =«false» >
key column =«driver_id»/>
many-to-many column =«bus_id» class =«logic.Bus»/>
set >
hibernate-mapping >
class name =«logic.Route» table =«routes» >
id column =«route_id» name =«id» type =«java.lang.Long» >
generator class =«increment»/>
id >
property column =«name» name =«name» type =«java.lang.String»/>
property column =«number» name =«number» type =«java.lang.Integer»/>
set name =«busses» lazy =«false» >
key column =«route_id»/>
one-to-many class =«logic.Bus»/>
set >
Теперь создадим главный конфигурационный файл hibernate.cfg.xml, файл, откуда он будет дергать всю необходимую ему информацию.
session-factory >
property name =«connection.url» > jdbc:mysql://localhost/autopark property >
property name =«connection.driver_class» > com.mysql.jdbc.Driver property >
property name =«connection.username» > root property >
property name =«connection.password»/>
property name =«connection.pool_size» > 1 property >
property name =«current_session_context_class» > thread property >
property name =«show_sql» > true property >
property name =«dialect» > org.hibernate.dialect.MySQL5Dialect property >
mapping resource =«logic/Bus.hbm.xml»/>
mapping resource =«logic/Driver.hbm.xml»/>
mapping resource =«logic/Route.hbm.xml»/>
Тут я не буду особо вдаваться в объяснение, думаю многим и так все понятно 🙂 Скажу, что надо только в конце не забыть добавить тег mapping и указать в качестве параметра resources файлы конфигурации ваших бинов.
Теперь создадим класс, который будет хавать наш конфиг-файл и возвращать нам объект типа SessionFactory, который отвечает за создание hibernate-сессии.
import org.hibernate.cfg.Configuration;
import org.hibernate.SessionFactory;
public class HibernateUtil <
private static final SessionFactory sessionFactory;
static <
try <
sessionFactory = new Configuration().configure().buildSessionFactory();
> catch (Throwable ex) <
System.err.println( «Initial SessionFactory creation failed.» + ex);
throw new ExceptionInInitializerError(ex);
>
>
Теперь нам осталось разобраться со взаимодействием нашего приложения с базой данных. Для этого для каждого класса-сущности, определим интерфейс, содержащий набор необходимых методов (Я приведу только один интерфейс и одну его реализацию, интерфейсы и реализации для др. классов подобны этим.)
import logic.Bus;
import logic.Driver;
import logic.Route;
import java.util.Collection;
import java.sql.SQLException;
public interface BusDAO <
public void addBus(Bus bus) throws SQLException;
public void updateBus(Long bus_id, Bus bus) throws SQLException;
public Bus getBusById(Long bus_id) throws SQLException;
public Collection getAllBusses() throws SQLException;
public void deleteBus(Bus bus) throws SQLException;
public Collection getBussesByDriver(Driver driver) throws SQLException;
public Collection getBussesByRoute(Route route) throws SQLException;
Теперь определим реализацию этого интерфейса в классе BusDAOImpl
import DAO.BusDAO;
import logic.Bus;
import logic.Driver;
import logic.Route;
import java.sql.SQLException;
import java.util.Collection;
import java.util. ArrayList ;
import java.util. List ;
import util.HibernateUtil;
import javax.swing.*;
import org.hibernate.Session;
import org.hibernate.Query;
public class BusDAOImpl implements BusDAO <
Еще рас скажу, что реализации DriverDAOImpl и RouteDAOImpl будут аналогичны этой.
Наибольший интерес для нас представляют два последних метода, взгляните на них повнимательнее. Как происходит общение с базой? От объекта SessionFactory создается новая или получается текущая сессия, зачем начинается транзакция, выполняются необходимые действия, коммит транзакции и закрытие сессии. Вроде ничего сложного 🙂 Обратите внимание, на то, каким синтаксисом описан запрос к базе. Это так называемый HQL (Hibernate Query Language) HQL представляет собой объектно-ориентированный язык запросов, возможности его широки, но мной настолько широко еще не осилены 🙂 Помимо save, load, update, delete и HQL, можно пользоваться и обычным SQL. Например:
String query = «SELECT driver_id, name, surname, age FROM drivers»;
List drivers = new ArrayList();
drivers = (List) session.createSQLQuery(query).list();
Теперь создадим класс фабрики, к которой будем обращаться за нашими реализациями DAO, от которых и будем вызывать необходимые нам методы.
private static BusDAO busDAO = null ;
private static DriverDAO driverDAO = null ;
private static RouteDAO routeDAO = null ;
private static Factory instance = null ;
public static synchronized Factory getInstance() <
if (instance == null ) <
instance = new Factory();
>
return instance;
>
public BusDAO getBusDAO() <
if (busDAO == null ) <
busDAO = new BusDAOImpl();
>
return busDAO;
>
public DriverDAO getDriverDAO() <
if (driverDAO == null ) <
driverDAO = new DriverDAOImpl();
>
return driverDAO;
>
Теперь нам осталось создать какой-либо демонстрационный класс, для того, чтобы посмотреть и опробовать все то, что мы написали. Ну, не будем тянуть, вот этот класс, возможно не самый удачный, но все же 🙂
public class Main <
public static void main( String [] args) throws SQLException <
Еще раз скажу, что может не самый удачный вариант использования всего нами написанного, но для этого уже лучше GUI писать или Web-интерфейс, а это уже другая песня 🙂




