Быстрый запуск компьютера



Быстрый запуск компьютера
Быстрый запуск компьютера
Быстрый запуск компьютера
Быстрый запуск компьютера
Быстрый запуск компьютера
Быстрый запуск компьютера
Быстрый запуск компьютера
Быстрый запуск компьютера

 


Владельцы патента RU 2568280:

МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи (US)

Изобретение относится к компьютерной технике. Технический результат заключается в обеспечении возможности быстрой готовности к работе компьютера в состоянии, которое согласуется с ожиданием пользователей за счет копирования содержимого энергозависимой памяти в другую энергонезависимую память, причем копируемое содержимое включает в себя сохраненное системное состояние, но не пользовательское состояние, которое больше не сохраняется. Технический результат достигается за счет того, что в целевом состоянии на вычислительном устройстве могут быть закрыты все сеансы пользователей, так что пользовательское состояние больше не сохраняется энергозависимую память. Тем не менее, операционная система все еще может выполняться. В ответ на команду запуска компьютера, данное целевое состояние может быть быстро повторно создано из записанной информации о целевом состоянии. Части последовательности запуска могут выполняться для завершения процесса запуска, включая создание пользовательского состояния. 3 н. и 17 з.п. ф-лы, 8 ил.

 

УРОВЕНЬ ТЕХНИКИ

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

Как только компьютер готов для эксплуатации любым пользователем, пользователь может осуществить логический вход на компьютер. Данный логический вход может задействовать дальнейшее конфигурирование компьютера на основании профиля, специфичного для пользователя, который выполняет логический вход. Затем либо автоматически, либо в ответ на ввод пользователя могут загружаться приложения, таким образом, что приложения могут исполняться, используя преимущества возможностей аппаратного обеспечения и служб операционной системы вычислительного устройства.

В процессе загрузки программного обеспечения, как для операционной системы, так и для приложений может выделяться память, параметрам программного обеспечения могут назначаться значения на основании конфигурации аппаратного обеспечения компьютера или профиля пользователя, и могут выполняться прочие действия по конфигурированию.

Эти действия устанавливают «состояние» вычислительного устройства. Дальнейшие изменения касательно памяти и прочих параметров системы, которые определяют ее рабочее состояние, так же могут выполняться по мере того, как пользователь предоставляет команды для взаимодействия касательно исполнения приложений или служб операционной системы.

В режиме полного выключения компонентам аппаратного обеспечения компьютера не подается питание. В энергозависимой памяти не хранится программное обеспечение или информация о состоянии, поскольку данный тип памяти не хранит информацию при выключении питания. Наоборот, любая информация, которая будет использована позже для переконфигурирования компьютера в отношении режима работы на полной мощности, хранится в энергонезависимой памяти.

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

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

В дополнение к полному выключению и логическому выходу, могут существовать режимы энергосбережения, при которых прекращается подача питания к некоторым или ко всем компонентам аппаратного обеспечения компьютера. В режиме энергосбережения, иногда именуемом спящим режимом, прекращается подача питания к процессору компьютера, сетевым интерфейсам и, возможно, прочим компонентам. Тем не менее, подача питания сохраняется к энергозависимой памяти. Таким образом, любая информация о состоянии, созданная при загрузке или при последующей работе компьютера, сохраняется в энергозависимой памяти. Когда питание вновь подается к процессору, то он может возобновить работу в состоянии, в котором он был оставлен при переходе в спящий режим.

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

Возобновление работы из гибернации может быть быстрее, чем выполнение полного запуска по ряду причин. Одна причина состоит в том, что копирование информации о состоянии из файла гибернации в энергозависимую память повторно создает результаты процесса полного запуска, при этом, исключая время, которое затрачивается на выполнение этапов процесса запуска, таких как потребление ресурсов CPU, инициализация устройства и множество других типов действий, которые должны выполняться во время загрузки. Дополнительно, информация, к которой осуществляется доступ во время запуска, хранится во множестве различных файлов, представляющих собой различные компоненты, к которым осуществляется доступ для загрузки и конфигурирования и которые потенциально могут быть десятками тысяч компонентов операционной системы. Эти компоненты, а также информация, к которой осуществляется доступ, чтобы их сконфигурировать, могут быть произвольно распределены на жестком диске. Поскольку накопители на жестких дисках и некоторые другие виды запоминающих устройств высокой емкости наиболее эффективны при доступе к последовательным данным, то осуществление доступа к произвольно распределенным данным может занимать значительное время доступа к диску, приводя к длительному процессу запуска. В противоположность, время доступа меньше при считывании файла гибернации, поскольку информация в данном файле может храниться на диске последовательно.

Дальнейшее отличие между возобновлением работы из гибернации и запуском состоит в том, что гибернация и последующее возобновление работы восстанавливает полное состояние компьютера, включая любое пользовательское состояние применительно к пользователю компьютера в момент, когда компьютер перешел в состояние гибернации. В противоположность, до тех пор, пока пользователь не выполнит логический вход, запуск конфигурирует компьютер в целом для любого пользователя. Затем конкретные пользователи могут выполнить логический вход или иным образом предпринять действия по конфигурированию компьютера для себя. По этой причине, гибернация, как правило, выбирается пользователем, который намерен находиться вдали от компьютера в течение некоторого времени, однако намерен вернуться к компьютеру. Выключение, как правило, используется пользователем, который намерен находиться вдали от компьютера в течение продолжительного времени, возможно, не возвращаясь к компьютеру совсем, или который ожидает, что прочие пользователи могут использовать компьютер до того, как вернется пользователь.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Чтобы улучшить восприятие со стороны пользователя, компьютер может быть выполнен с возможностью ответа на команду пользователя на выключение посредством перехода в режим гибернации. Такой компьютер может быть быстрее готов к эксплуатации пользователем после того, как пользователь предоставляет команду на запуск компьютера. С тем, чтобы позволить компьютеру быстро быть готовым к работе в состоянии, которое согласуется с ожиданием пользователя, файл гибернации собирает целевое состояние, которое реализует ожидания пользователя. В ответ на команду выключения, компьютер создает данное целевое состояние перед переходом в гибернацию посредством выполнения только части этапов процесса выключения. Выполняемые этапы могут переводить компьютер в целевое состояние, соответствующее состоянию, при котором операционная система остается загруженной, однако сеансы пользователей разорваны.

По приему команды запуска, компьютерная система, вместо того чтобы создавать рабочее состояние посредством загрузки и конфигурирования программного обеспечения, может повторно создавать целевое состояние посредством копирования файла гибернации в энергозависимую память. Затем компьютер может выполнить только части последовательности запуска. Эти части могут включать в себя операции, которые будут обычно происходить во время последовательности запуска после того, как загружена операционная система. Эти этапы могут включать в себя, например, взаимодействие с пользователем для выполнения логического входа пользователя и загрузки приложений, которые определяют пользовательское состояние.

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

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

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

В некоторых вариантах осуществления, обработка в зависимости от условий может выполняться в ответ на команду пользователя на запуск. Данная обработка в зависимости от условий может включать в себя определение того, присутствует ли файл гибернации. Если да, то дальнейшая проверка может быть выполнена в отношении того, возможно ли, что целевое состояние вычислительного устройства было изменено с момента, когда был создан файл гибернации, до момента, когда была принята команда запуска. Если обнаружены события, которые могли вызвать изменение состояния, то вычислительное устройство может выполнить последовательность полного запуска.

Вышеприведенное является не накладывающим ограничений кратким изложением сущности изобретения, объем которого определяется прилагаемой формулой изобретения.

ПЕРЕЧЕНЬ ЧЕРТЕЖЕЙ

Не подразумевается, что сопроводительные чертежи нарисованы в масштабе. На чертежах, каждый идентичный или близкий к идентичному компонент, который проиллюстрирован на различных фигурах, представлен идентичным цифровым обозначением. Для ясности, на каждом чертеже не каждый компонент может быть обозначен. На чертежах:

Фиг.1 является концептуальной структурной схемой, иллюстрирующей последовательность запуска в вычислительном устройстве;

Фиг.2 является функциональной структурной схемой, иллюстрирующей последовательность возобновления работы из гибернации в вычислительном устройстве;

Фиг.3 является функциональной структурной схемой, иллюстрирующей последовательность быстрого запуска в соответствии с некоторыми вариантами осуществления изобретения;

Фиг.4 является алгоритмической блок-схемой, иллюстрирующей способ работы компьютера для ответа на команду запуска в соответствии с некоторыми вариантами осуществления изобретения;

Фиг.5 является алгоритмической блок-схемой способа работы вычислительного устройства для ответа на команду выключения в соответствии с некоторыми вариантами осуществления изобретения;

Фиг.6 является алгоритмической блок-схемой части последовательности запуска, которая может выполняться в зависимости от условий в соответствии с некоторыми вариантами осуществления изобретения;

Фиг.7 является эскизом части графического интерфейса пользователя, посредством которого пользователь может выбирать из команд, которые предписывают разное поведение вычислительному устройству при выключении; и

Фиг.8 является структурной схемой иллюстративного вычислительного устройства, иллюстрирующей среду, в которой могут работать варианты осуществления изобретения.

ПОДРОБНОЕ ОПИСАНИЕ

Авторы изобретения признают и оценивают, что восприятие пользователем вычислительного устройства может быть улучшено посредством использования файла гибернации совместно с частями последовательности выключения и/или запуска вычислительного устройства. Такой файл может создаваться выборочно при выключении и использоваться выборочно при запуске таким образом, чтобы производительность вычислительного устройства отвечала ожиданиям пользователя. Даже при создании или использовании файла гибернации могут использоваться обычные части последовательностей выключения или запуска.

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

И наоборот, при обработке команды запуска, возобновление работы из гибернации может выполняться наряду с частями последовательности запуска. Эта последовательность может включать в себя любую часть последовательности запуска, которая происходит после того, как операционная система загружена и готова к работе. Данная часть последовательности запуска может включать в себя логический вход пользователя и загрузку приложений, например.

Кроме того, для обеспечения работы, которая согласуется с ожиданиями пользователя, создание или использование файла гибернации как части выключения или запуска, может быть обусловлено динамически определяемыми событиями. В сценариях, при которых компонент был переконфигурирован во время сеанса работы так, что изменения конфигурации не применяются до тех пор, пока компонент не будет загружен в следующий раз, может не создаваться никакой файл гибернации. В ответ на следующую команду запуска от пользователя, компьютер обнаружит, что файл гибернации недоступен, и создаст целевое состояние посредством перезагрузки операционной системы. В качестве альтернативы или в дополнение, операционная система может предоставлять интерфейс, посредством которого прочие компоненты могут осуществлять регистрацию для обозначения того, что им требуется полное выключение или запуск для эффективной работы. Когда зарегистрированы исполняющиеся компоненты, в ответ на команду выключения может выполняться последовательность полного выключения.

Кроме того, для работы согласованно с ожиданиями пользователя, в некоторых вариантах осуществления может предоставляться интерфейс пользователя, посредством которого пользователь может указать, выполнять ли обычное выключение или модифицированное выключение, при котором создается целевое состояние, а затем выполняется процесс гибернации. Такой интерфейс пользователя может представлять отдельные опции для последовательности обычного выключения и модифицированного выключения, заключающего в себе гибернацию. Вычислительное устройство может в зависимости от условий вызывать последовательность модифицированного выключения в ответ на ввод, обозначенный как команда обычного выключения. Отдельная опция команды может быть предоставлена посредством интерфейса, при помощи которого пользователь может указать обычное выключение.

Теперь обратимся к фиг.1, где проиллюстрирована функциональная структурная схема последовательности полного запуска. Фиг.1 иллюстрирует функциональную структурную схему вычислительного устройства 100, которое может применяться для работы в соответствии с вариантами осуществления изобретения.

В данном примере, вычислительное устройство 100 включает в себя энергозависимую память 120. Энергозависимая память 120 может быть реализована при помощи DRAM или любых других приемлемых компонентов памяти. Последовательность запуска, выполняемый вычислительным устройством 100, задействует создание информации о состоянии в энергозависимой памяти 120, которая позволяет вычислительному устройству 100 выполнять вычислительные операции, как известно в данной области техники.

В данном примере, эта информация о состоянии изображена как состоящая из двух частей, информации 130 о пользовательском состоянии и информации 140 о состоянии системы. Информация 140 о состоянии системы представляет собой информацию о состоянии, которая конфигурирует вычислительное устройство 100 в целом для эксплуатации любым пользователем. В противоположность, информация 130 о состоянии пользователя представляет собой информацию о состоянии, которая может формироваться, когда вычислительное устройство эксплуатируется или сконфигурировано для эксплуатации конкретным пользователем.

Информация 140 о состоянии системы и информация 130 о пользовательском состоянии могут создаваться в энергозависимой памяти 120 в соответствии с процессом запуска, как известно в данной области техники. Фиг.1 иллюстрирует, в упрощенной концептуальной форме, этапы обычной последовательности запуска. Такая последовательность может быть инициирована, например, когда вычислительное устройство 100 включается или предоставляется иная команда, указывающая запуск.

Вычислительное устройство 100 может включать в себя компоненты, как известно в данной области техники. Эти компоненты могут включать в себя процессор 110. Процессор 110 может быть реализован в качестве микропроцессора или совокупности микропроцессоров или процессорных ядер, как известно в данной области техники. Описываемые здесь операции могут быть результатами исполнения инструкций программного обеспечения процессором 110.

Дополнительно, вычислительное устройство 100 может заключать в себе несколько типов компьютерных носителей данных. В данном случае, эти типы включают в себя энергозависимую память и энергонезависимую память. В данном примере, проиллюстрирована энергозависимая память 120. Различные типы информации хранятся в энергонезависимой памяти 150 и 152. Память 154 начального загрузчика также является энергонезависимой памятью. Различные физические устройства могут использоваться для реализации модулей 150 и 152 энергонезависимой памяти и памяти 154 начального загрузчика. Например, энергонезависимая память 150 может быть диском, таким как вращающийся жесткий диск или твердотельный накопитель. Энергонезависимая память 152 аналогично может быть диском и может быть тем же диском, который используется для реализации энергонезависимой памяти 150, другим разделом на том же диске или полностью другим диском.

Энергонезависимая память 154 так же может быть частью того же устройства, которое используется для реализации модулей 150 и 152 энергонезависимой памяти. Тем не менее, в иллюстрируемом варианте осуществления, энергонезависимая память 154 может быть чипом энергонезависимой памяти, соединенным с процессором 110. Соответственно, следует иметь в виду, что фиг.1 представляет собой лишь пример архитектуры памяти, и может использоваться любая приемлемая архитектура памяти.

В данном примере, проиллюстрированы энергонезависимая и энергозависимая памяти. Такая конфигурация представляет собой традиционную компьютерную архитектуру. Тем не менее, не является требованием, что должна использоваться данная конкретная архитектура. Наоборот, энергозависимая память 120 является примером оперативной памяти. Во время работы вычислительного устройства 100, процессор 110 может преимущественно осуществлять доступ к программному обеспечению и данным для выполнения операций в энергозависимой памяти 120. Данная память может быть относительно высокоскоростной, так что операции могут выполняться процессором быстро.

В противоположность, модули энергонезависимой памяти, такие как энергонезависимая память 150 и 152, могут быть выполнены с возможностью хранения большого количества данных, но могут работать медленнее, чем энергозависимая память 120. В общем, затраты на хранение информации в таких модулях энергонезависимой памяти могут быть относительно небольшими в сравнении с затратами на хранение информации в энергозависимой памяти 120. Для достижения эффективности затрат, но при этом высокой скорости работы, информация может переноситься между модулями энергонезависимой памяти и модулями энергозависимой памяти. Эти переносы выполняются для создания состояния в энергозависимой памяти 120, которое обеспечивает требуемую работу вычислительного устройства 100.

Могут быть представлены прочие компоненты вычислительной системы, но они опущены для упрощения. Дополнительные подробности касательно компонентов, которые могут быть представлены в других вариантах осуществления, предоставлены ниже в связи с фиг.8. Тем не менее, упрощенной иллюстрации на фиг.1 достаточно для объяснения процесса запуска.

В ответ на команду запуска, процессор 110 может осуществить доступ и выполнить инструкции в памяти 154 начального загрузчика. Память 154 начального загрузчика может содержать инструкции, которые предписывают процессору 110 осуществить доступ к модулям 150 и 152 энергонезависимой памяти и на основании программного обеспечения и данных, которые хранятся в этих модулях памяти, сформировать соответствующее состояние в энергозависимой памяти 120.

Инструкции в памяти 154 начального загрузчика могут предписывать процессору 110 загрузить программное обеспечение из энергонезависимой памяти 150. Как часть загрузки компонентов программного обеспечения, процессор 110 может перенести инструкции программного обеспечения в энергозависимую память 120, из которой может исполняться данное программное обеспечение. Тем не менее, загрузка программного обеспечения может включать в себя прочие операции, включающие в себя исполнение некоторых компонентов.

Исполнение некоторых компонентов из энергозависимой памяти 120 может преобразовывать программное обеспечение из состояния, в котором оно хранится, в состояние, при котором оно используется, или предписывать перенос прочих компонентов из энергонезависимой памяти в энергозависимую память 120. В процессе загрузки программного обеспечения, процессор 110 может конфигурировать программное обеспечение на основании данных, которые хранятся в энергонезависимой памяти 152 или другой информации. Данная информация может включать в себя, например, информацию о компонентах аппаратного обеспечения, которые установлены в вычислительном устройстве 100. Соответственно, фиг.1 иллюстрирует, что второй и третий этапы процесса запуска могут служить для получения программного обеспечения из энергонезависимой памяти 150 и данных из энергонезависимой памяти 152.

Первое программное обеспечение, загружаемое в данном процессе, может создавать состояние 140 системы. Исходно загружаемое программное обеспечение может добавлять в состояние 140 системы драйвера 146, которые управляют компонентами аппаратного обеспечения. Перед загрузкой драйвера, могут идентифицироваться компоненты аппаратного обеспечения, связанные с вычислительным устройством 100, и может выбираться соответствующий драйвер. Как только драйвер установлен, службы операционной системы, и прочие компоненты, могут взаимодействовать с устройством, которое управляется посредством драйвера.

Затем могут быть загружены службы 142 операционной системы. Одним примером такой службы может быть файловый менеджер (диспетчер файлов) 144. Файловый менеджер 144 может организовывать данные в энергозависимой памяти таким образом, что при исполнении служб операционной системы и приложений они могут осуществлять доступ к данным в энергонезависимой памяти, которые организованы в соответствии с файлами. Другие службы, которые предоставляются операционной системой, могут включать в себя взаимодействие с интерфейсом пользователя, создание сетевого соединения или отправку информации на принтер. Тем не менее, конкретные службы 142 операционной системы не являются ограничением изобретения.

Дополнительно, во время процесса создания состояния 140 системы, процессор 110 может сохранять данные 148 состояния системы. Такие данные могут копироваться из энергонезависимой памяти, такой как энергонезависимая память 152, или могут формироваться посредством исполнения компонентов программного обеспечения. Данные, например, могут формироваться, когда процессор 110 исполняет инструкции, которые обнаруживают устройства, установленные в вычислительном устройстве 100. В качестве конкретного примера, при обнаружении конкретной карты сетевого интерфейса, процессор 110 может записать как часть данных 148 состояния системы тип и возможности карты сетевого интерфейса. Затем эти данные могут использоваться во время работы вычислительного устройства для управления взаимодействиями с картой сетевого интерфейса. Тем не менее, следует иметь в виду, что конкретные данные, которые хранятся как данные 148 состояния системы, не являются существенными для изобретения.

Вне зависимости от конкретных служб 142 операционной системы и данных 148 состояния системы, которые созданы в информации 140 о состоянии системы, когда информация 140 о состоянии системы создана, вычислительное устройство 100 может быть готово для эксплуатации пользователем. Соответственно, последовательность запуска может быть продолжена процессом, иногда именуемым как логический вход пользователя. В качестве части логического входа пользователя может быть идентифицирован конкретный пользователь и в энергозависимой памяти 120 может быть создана дополнительная информация о состоянии, чтобы позволить вычислительному устройству 100 выполнять операции применительно к данному пользователю. В данном примере, информация 130 о пользовательском состоянии проиллюстрирована как содержащая инструкции 132 приложений и данные 134 пользовательского состояния.

Как в случае инструкций, представляющих компоненты операционной системы, и данных, представляющих состояние системы, инструкции 132 приложений могут быть загружены в память на основании программного обеспечения, которое хранится в энергозависимой памяти 150. Тем не менее, процесс загрузки программного обеспечения может вызывать исполнение функций, которые соответствующим образом конфигурируют программное обеспечение или вычислительное устройство для работы. Данное конфигурирование может зависеть от данных 148 состояния системы или данных 134 пользовательского состояния.

Лишь в качестве одного примера, при загрузке инструкций приложений, реализующих web-браузер, процессор 110 может осуществлять доступ к информации, представляющей собой данные пользователя, либо в энергонезависимой памяти 152, либо в данных 134 пользовательского состояния, которая указывает конкретные web-сайты, которые пользователь указал как «избранные». В данном примере, создание данных 130 пользовательского состояния конфигурирует web-браузер применительно к исполнению в соответствии с предпочтениями пользователя, которые будут включать в себя представление списка избранных сайтов, отобранных для конкретного пользователя, который выполнил логический вход на вычислительном устройстве 100.

Как только завершен логический вход пользователя, затем пользователь может взаимодействовать с вычислительным устройством 100. Эти взаимодействия могут приводить к загрузке дополнительного программного обеспечения или к закрытию некоторых загруженных приложений. Дополнительно, взаимодействия пользователя могут задавать параметры или предпринимать прочие действия, которые могут менять либо пользовательское состояние 130, либо состояние 140 системы. Эти взаимодействия могут продолжаться до тех пор, пока пользователь не введет команду, указывающую на его намерение завершить сеанс.

Сеанс может быть завершен одним из нескольких способов. Например, когда пользователь завершает сеанс взаимодействия с вычислительным устройством 100, то пользователь может выполнить логический выход и/или выключить вычислительное устройство 100. Логический выход приводит к разрыву сеанса пользователя таким образом, что информация 130 о пользовательском состоянии более недоступна в памяти 120. Часть последовательности логического выхода может задействовать удаление пользовательских настроек из состояния 140 системы. Таким образом, второй пользователь может выполнить логический вход на вычислительном устройстве 100, при этом на него не оказывает влияние, и он не имеет доступа к информации о состоянии, которая сформирована предшествующим пользователем. Операции для достижения данного результата могут иногда описываться как разрыв сеанса пользователя.

Состояние 140 системы может быть сохранено после логического выхода, поскольку может быть сохранена подача питания к памяти 120. В противоположность, выключение может привести к тому, что как пользовательское состояние 130, так и состояние 140 системы будут удалены из энергозависимой памяти 120. Поскольку выключается питание энергозависимой памяти 120, то любая информация в энергозависимой памяти по окончанию последовательности выключения будет потеряна. Соответственно, любая информация, которая требуется для повторного создания данного состояния, если еще не сохранена в энергонезависимой памяти, может быть перемещена в энергонезависимую память.

Последовательности логического выхода и выключения не обязательно являются обратными последовательностями запуска, поскольку нет необходимости в возврате любой информации, сформированной из модулей энергонезависимой памяти. Точно такая же информация может быть вновь сформирована при последующем запуске. Тем не менее, части пользовательского состояния 130, которые были динамически сформированы во время сеанса и не могут быть повторно созданы из информации в энергонезависимой памяти, могут, как часть операции логического выхода или выключения, быть записаны в энергонезависимую память. Аналогичным образом, при выключении, части данных 148 состояния системы, которые не могут быть повторно созданы при повторном выполнении последовательности запуска, могут переноситься в энергонезависимую память как часть последовательности выключения.

В качестве одного примера, данные 148 состояния системы могут содержать кэш, который служит в качестве рабочей копии элементов данных, которые хранятся в энергонезависимой памяти 152. Кэш ускоряет работу вычислительного устройства 100 посредством создания в энергозависимой памяти копии информации, которая должна храниться в энергонезависимой памяти. Считывание или запись информации в ячейку быстрой энергозависимой памяти ускоряет работу вычислительного устройства в сравнении с осуществлением доступа к тем же самым данным в энергонезависимой памяти.

Когда копия данных в энергозависимой памяти меняется, то она более не совпадает с соответствующими данными в энергонезависимой памяти. Говорят, что данные в кэше являются «измененными». Чтобы обеспечивать синхронизацию энергонезависимой памяти с копией в кэше, измененные данные копируются, время от времени, в энергонезависимую память. Как правило, измененные данные копируются обратно, когда компьютер не занят иным образом.

Тем не менее, задержка копирования измененных данных создает возможность, при которой в момент выключения данные в кэше не будут совпадать с данными в энергонезависимой памяти. Чтобы избежать противоречий, перед выключением вычислительного устройства 100 может выполняться операция, иногда именуемая сбросом измененных данных. В течение данной операции, измененные данные копируются на энергонезависимое запоминающее устройство.

Несмотря на то, что проиллюстрированный на фиг.1 последовательность запуска является желательным, поскольку он конфигурирует вычислительное устройство 100 для эксплуатации пользователем, однако последовательность запуска может, в некоторых обстоятельствах, быть источником неудовлетворенности. Операционная система и приложения, которые требуются пользователю, коллективно содержат тысячи или десятки тысяч компонентов. Вследствие этого, последовательность запуска может задействовать множество операций считывания из модулей 150 и 152 энергонезависимой памяти. Поскольку, как правило, эти модули памяти работают медленнее, то весь процесс может быть относительно медленным. Дополнительно, последовательность запуска может вызывать затратные по времени операции, отличные от связанных с хранением операций. Дополнительно время может тратиться, например, на вычисления посредством CPU или инициализацию устройства.

Фиг.2 иллюстрирует альтернативный подход к созданию информации о состоянии в энергозависимой памяти. Фиг.2 иллюстрирует вычислительное устройство 100 во время последовательности работы, при котором информация о состоянии создается в энергозависимой памяти 120 как часть последовательности возобновления работы из гибернации.

Гибернация является режимом работы, который может быть создан посредством копирования информации о состоянии из энергозависимой памяти в энергонезависимую память. Такая информация о состоянии может быть организована любым приемлемым способом. В проиллюстрированном на фиг.2 варианте осуществления информация о состоянии проиллюстрирована как хранящаяся в файле 210 гибернации в энергонезависимой памяти 152. Во время гибернации процессор 110 может копировать информацию о состоянии, включающую в себя информацию 130 о пользовательском состоянии и информацию 140 о состоянии системы, в файл 210 гибернации. Затем переходят в режим гибернации посредством выключения питания всех или части компонентов вычислительной системы 100. Когда питание выключается, информация о состоянии в энергозависимой памяти 120 теряется. Тем не менее, она может быть повторно создана при возобновлении работы из гибернации посредством копирования файла гибернации в энергозависимую память.

Соответственно, фиг.2 показывает то, что последовательность возобновления работы из гибернации может начинаться аналогично последовательности запуска, проиллюстрированному на фиг.1 посредством того, что процессор 110 осуществляет доступ к инструкциям, которые хранятся в памяти 154 начального загрузчика. Эти инструкции предписывают процессору 110 проверить наличие файла 210 гибернации. В данном примере, при обнаружении файла 210 гибернации, процессор 110 копирует содержимое файла 210 гибернации в энергозависимую память 120. Копирование может вызывать прямое копирование или может вызывать обработку по преобразованию информацию неким образом, по мере того как она копируется, такую как разархивация файла. Независимо от того, выполняется ли обработка как часть обработки, конечным результатом будет восстановление информации о состоянии. Как только информация о состоянии восстановлена, пользователь может возобновить вычислительный сеанс, который был прерван во время гибернации. В энергозависимую память 120 будут возвращены как данные 148 состояния системы, так и данные 134 пользовательского состояния. Дополнительно, приложения 132, службы 142 операционной системы и драйверы 146 аналогичным образом будут возвращены в энергозависимую память 120 и готовы к исполнению.

Часто, возобновление работы из гибернации будет быстрее, выполнения последовательности полного запуска, проиллюстрированного в связи с фиг.1. Несмотря на то, что один и тот же объем информации может, в конечном счете, размещаться в энергозависимой памяти 120 во время возобновления работы из гибернации и полного запуска, простое копирование данной информации из файла может быть быстрее ее создания посредством загрузки программного обеспечения и данных конфигурации.

Тем не менее, переход в режим гибернации и затем возобновление работы из гибернации не всегда является подходящей заменой выполнению выключения и затем последовательности запуска. Заявители признают и принимают во внимание, что выполнение перехода в гибернацию в ответ на команду пользователя выключить вычислительное устройство и последующее возобновление работы из гибернации в ответ на команду пользователя запустить вычислительное устройство, могут не привести к работе вычислительное устройство, которая отвечает ожиданию пользователя.

Авторы изобретения установили способ обеспечения восприятия быстрой работы, не нарушая существующих ожиданий пользователя. Фиг.3 иллюстрирует функциональную структурную схему, на которой вычислительное устройство 100 может в зависимости от условий включать гибернацию в последовательность выключения. Дополнительно, вычислительное устройство может в зависимости от условий включать возобновление работы из гибернации в последовательность запуска.

В иллюстрируемом на фиг.3 варианте осуществления вычислительное устройство 100 показано как содержащее информацию о состоянии, которая скопирована в энергонезависимую память 152. В данном варианте осуществления, информация о состоянии формируется в качестве файла 310 гибернации. Файл 310 гибернации может быть выполнен в виде файла гибернации, как известно в данной области техники. Тем не менее, следует иметь в виду, что для хранения информации о состоянии в энергонезависимой памяти может использоваться любой приемлемый формат.

В противоположность информации, которая хранится в файле 210 гибернации, файл 310 гибернации содержит состояние 140 системы. Не требуется, чтобы пользовательское состояние 130 хранилось как часть файла 310 гибернации; тем не менее, в некоторых вариантах осуществления, части пользовательского состояния могут храниться. Соответственно, когда пользователь подает команду запуска вычислительному устройству 100, процессор 110 может начать исполнение инструкций из памяти 154 начального загрузчика, аналогично тому, что происходит в режиме работы, проиллюстрированном на фиг.2. При обнаружении наличия файла 310 гибернации, процессор 110 может скопировать содержимое файла 310 гибернации в энергозависимую память 120. Данное копирование повторно создает состояние 140 системы в энергозависимой памяти 120.

Данное состояние имитирует состояние вычислительного устройства 100 во время последовательности запуска, проиллюстрированного на фиг.1, после того как загружено программное обеспечение операционной системы, но перед тем как произойдет логический вход пользователя. Соответственно, чтобы завершить создание информации о состоянии в энергозависимой памяти 120, процессор 110 может выполнить этапы последовательности запуска, описанные выше в связи с фиг.1, которые происходят после того, как создано состояние системы. В данном случае, эти операции могут включать в себя загрузку инструкций 132 приложения и создание данных 134 пользовательского состояния посредством считывания инструкций программного обеспечения из энергонезависимой памяти 150 и конфигурирования их на основании данных в энергонезависимой памяти 152. По завершению этой последовательности операций, информация о состоянии в энергозависимой памяти 120 может быть сопоставима с той, которая загружается в результате выполнения последовательности запуска, как описано выше в связи с фиг.1. Тем не менее, время, которое требуется для реагирования на команду запуска, при помощи последовательности, проиллюстрированного на фиг.3, может быть короче того, что требуется для выполнения последовательности запуска, как описано в связи с фиг.1.

В примере, проиллюстрированном на фиг.3, файл 310 гибернации, несмотря на то, что имеет тот же формат, что и файл 210 гибернации (фиг.2), содержит другую информацию. Дополнительно, файл 310 гибернации создан способом, отличным от того, каким создан файл 210 гибернации. Как описано выше, файл 210 гибернации (фиг.2) записывает состояние вычислительного устройства 100, как оно представлено в энергозависимой памяти 120 в момент команды гибернации. В противоположность, файл 310 гибернации создается в ответ на команду выключения. Тем не менее, информация о состоянии, которая собирается в файле 310 гибернации, не представляет собой полное состояние вычислительного устройства 100 в момент команды выключения.

Наоборот, некоторая обработка может выполняться для приведения вычислительного устройства 100 в целевое состояние, после чего может быть создан файл 310 гибернации. В иллюстрируемом варианте осуществления, целевое состояние представляет собой состояние, которое может быть сформировано после загрузки операционной системы, но без логического входа пользователя на вычислительном устройстве 100. Такое целевое состояние может создаваться, по меньшей мере, частично посредством выполнения части последовательности выключения. Например, данная часть может включать в себя логический выход пользователя или пользователей на вычислительном устройстве 100 или разрыв соединений пользователей иными способами. Такая обработка может выполняться при помощи методик, известных в данной области техники.

Другая обработка может альтернативно или в дополнение выполняться для приведения вычислительного устройства 100 в целевое состояние. Например, обработка может включать в себя сброс измененных данных из данных 148 состояния системы.

Более того, как отмечено выше, чтобы сохранить ожидание пользователя касательно реакции вычислительного устройства 100 на команду выключения, последовательность выключения, которая задействует гибернацию, может выполняться в зависимости от условий, исходя из условий, которые могут существовать в данный момент. Аналогичным образом, последовательность запуска может в зависимости от условий задействовать возобновление работы из гибернации. Фиг.4, 5 и 6 иллюстрируют такую обработку в зависимости от условий.

Фиг.4 иллюстрирует такую последовательность запуска, который может выполняться вычислительным устройством 100 в ответ на команду запуска. Команда запуска может, например, быть предоставлена вычислительному устройству 100 посредством нажатия пользователя на кнопку, подающую питание на вычислительное устройство 100, или иным образом инициируя работу вычислительного устройства 100.

Независимо от способа, которым инициируется последовательность запуска, процесс может начинаться в блоке 410. В блоке 410, процессор 110 может извлекать и исполнять инструкции из памяти 154 начального загрузчика, которые инициируют процесс. Тем не менее, на последующих этапах процесса, инструкции могут извлекаться из энергонезависимой памяти 150 или из любого другого приемлемого источника, включая посредством сетевого соединения.

Независимо от источника инструкций, используемых для управления процессором 110 для инициирования последовательности запуска, процесс может ветвиться в блоке 412 принятия решения, в зависимости от того, обнаружен ли в энергонезависимой памяти 152 файл гибернации. Если обнаружен, то процесс может ответвляться в точку A завершения, для продолжения с помощью процесса, как проиллюстрировано на фиг.6. И наоборот, если файла гибернации не существует, то процесс может переходить к подпроцессу 450.

Подпроцесс 450 может представлять собой последовательность операций, который реализует последовательность запуска, который в целом известен в данной области техники. В данном примере, обработка в блоках 420, 422, 424, 426, 428, 430 и 432 может представлять собой обработку в известной последовательности запуска. Тем не менее, следует иметь в виду, что может использоваться любая приемлемая последовательность операций, используя любые приемлемые методики.

Независимо от конкретного используемого подхода, обработка в рамках подпроцесса 450 может начинаться в блоке 420. В блоке 420, процессор 110 исполняет загрузчик операционной системы. Такой загрузчик может быть компонентом программного обеспечения, который при его исполнении загружает компоненты операционной системы из энергонезависимой памяти 150 в энергозависимую память 120.

В блоке 422 могут конфигурироваться операции, которые конфигурируют образ операционный системы, который создается как часть состояния 140 системы. Данное конфигурирование может задействовать любую приемлемую обработку, включая задание значений параметров компонентов, загружаемых в энергозависимую память, или исполнение инструкций, которые конфигурируют прочие аспекты состояния 140 системы.

Также в качестве части подпроцесса 450 запуска, вычислительное устройство 100 может обнаруживать устройства. Могут обнаруживаться любые приемлемые устройства, такие как принтеры, сетевые интерфейсы или периферийные устройства, соединенные с вычислительным устройством 100. На основании обнаруженных устройств, в блоке 426 может исполняться загрузчик драйверов. Загрузчик драйверов может быть компонентом программного обеспечения, который создан при помощи известных методик и который загружает драйвер. Исполнение загрузчика драйверов может задействовать идентификацию и загрузку программного обеспечения драйвера для обнаруженных устройств. Как только драйверы загружены, они могут быть запущены в блоке 428. Данная обработка может делать доступными для использования прочими компонентами, загруженными в вычислительное устройство 100, драйверы и устройства, которыми они управляют.

Процесс может продолжаться в блоке 430, в котором могут запускаться службы операционной системы. Как только становятся доступными для использования устройства и службы операционной системы, обработка может перейти к блоку 432. В блоке 432 могут загружаться компоненты приложений. Данная обработка может выполняться как часть процесса логического входа пользователя, используя методики, которые известны в данной области техники, или любым другим приемлемым способом.

Как только загружены компоненты приложения, процесс, иллюстрируемый на фиг.4, может ответвляться в зависимости от природы компонента приложения, загруженного в блоке 432. Ответвление в блоке 444 принятия решений позволяет вычислительному устройству смягчить проблемы, которые могут возникнуть в том случае, если один или более компонентов приложений работают неправильно, когда вычислительное устройство 100 выполняет последовательность выключения, используя гибернацию, а не обычная последовательность выключения. Некоторым компонентам может требоваться перезагрузка, что означает, что при очередном включении вычислительного устройства выполняется последовательность полного запуска, так что состояние будет повторно создано при помощи процесса загрузки.

В качестве примера, компонент приложения, который выполняет операции по-разному в зависимости от времени, в которое запускается вычислительное устройство 100, может не выполнять операции, как ожидается пользователем, если выполняется последовательность выключения, заключающий в себе гибернацию, как проиллюстрировано на фиг.3. Применительно к этим компонентам, при последующем выполнении запуска, если запуск выполняется на основании возобновления работы из гибернации, то компонент приложения может быть сконфигурирован на основании информации о состоянии, восстановленной из файла 310 гибернации. Данная информация о состоянии может содержать указание времени, когда компьютер в последний раз выполняла последовательность полного запуска. Соответственно, компонент приложения, конфигурируемый при загрузке на основании данной информации о состоянии, не будет конфигурироваться с помощью значения времени, представляющего собой момент, когда была инициирована последовательность запуска, иллюстрируемый на фиг.4.

В отличие от возможных ожиданий пользователя, данный компонент будет сконфигурирован с помощью значения времени, представляющего собой предшествующий момент времени, когда была выполнена последовательность полного запуска. В данном случае, поведение компонента приложения будет основано на времени, которое отличается от ожидания пользователя, так как пользователь будет ожидать, что компонент приложения должен быть сконфигурирован на основании момента времени, в который начался процесс на фиг.4.

Соответственно, когда такой компонент приложения загружается в вычислительное устройство 100, то может быть желательным определение того, что компоненту требуется последовательность полного выключения в ответ на команду выключения от пользователя. Когда такой компонент исполняется, то вычислительное устройство может ответить на команду выключения посредством выполнения последовательности полного выключения. Таким образом, при последующем приеме команды запуска, не будет доступен файл гибернации, и будет выполняться последовательность полного запуска, как иллюстрируется, например, на фиг.1. В других случаях, вычислительное устройство может отвечать на команду выключения с помощью последовательности выключения, включающего в себя гибернацию, как проиллюстрировано на фиг.3.

Для обеспечения такого поведения, которое согласуется с ожиданием пользователя, может быть предоставлен механизм применительно к прикладной программе для обозначения того, что ей требуется выполнение последовательности полного выключения и полного запуска. В примере на фиг.4, данный механизм может быть реализован посредством интерфейса прикладного программирования (API), который поддерживается операционной системой вычислительного устройства 100. Даже компоненты приложений, которые, во всех случаях, не требуют последовательности полного выключения и полного запуска могут размещать вызов посредством такого API.

Соответственно, если в блоке 440 определено, что загруженный компонент приложения требует перезагрузки, то обработка может ответвляться в блок 442. В блоке 442 может вызываться интерфейс прикладного программирования для регистрации данного компонента приложения. В данном примере, API позволяет операционной системе отслеживать, исполняется ли до сих пор компонент приложения, запрашивающий перезагрузку, когда позже принята команда запуска. Тем не менее, следует иметь в виду, что такой вызов может быть выполнен в любой момент. Любой компонент, например, который переконфигурирован или иным образом столкнулся с рабочим состоянием, при котором он определяет, что должна быть выполнена последовательность полного выключения и полного запуска, может выполнить вызов посредством API.

Если через API такой вызов не выполнен, то когда впоследствии принимается команда выключения, операционная система может определить, что может быть использована последовательность выключения, заключающий в себе гибернацию, как иллюстрируется на фиг.3. И наоборот, если через API был выполнен вызов для указания того, что требуется последовательность полного выключения и полного запуска, то операционная система может выполнить последовательность полного выключения, не создавая файла гибернации, так что при последующем приеме команды запуска, может быть выполнена последовательность полного запуска.

Любой приемлемый механизм может использоваться для определения того, требуется ли компоненту приложения перезагрузка, которая задействует последовательность полного выключения и последующего полного запуска. В качестве одного примера, компонент приложения может быть запрограммирован для вызова API, указанного в блоке 442. В качестве альтернативы, операционная система может содержать исполняемые компьютером инструкции для анализа компонентов приложения по мере их загрузки, для идентификации функций, которые могут потребовать перезагрузки. В данном сценарии, обработка в блоке 440 принятия решения может задействовать анализ каждого компонента приложения по мере его загрузки. Тем не менее, любые приемлемые методики могут использоваться в блоке 440 принятия решения для определения того, может ли потребоваться перезагрузка на основании загружаемых компонентов приложений.

Несмотря на то, что фиг.4 иллюстрирует определение того, требуется ли перезагрузка, на основании загружаемых компонентов приложений, аналогичная обработка может выполняться применительно к другим элементам вычислительного устройства 100. Например, аналогичная обработка может выполняться применительно к компонентам операционной системы. В качестве альтернативы или в дополнение, аналогичная обработка может выполняться на основании устройств, установленных в вычислительном устройстве 100, или с которыми соединено вычислительное устройство 100.

Независимо от условий, идентифицированных в блоке 440 принятия решения, которые могут указывать потребность в перезагрузке, если эти условия идентифицированы, то обработка может ответвляться в блок 442, где указание сохраняется. Данное указание может инициировать полное выключение в ответ на команду выключения от пользователя или, в качестве альтернативы или дополнительно, может инициировать последовательность полного запуска в ответ на команду пользователя на запуск, даже если доступен файл гибернации. Если эти условия не обнаружены, то обработка может перейти к блоку 444.

В блоке 444 может осуществляться сбор данных с тем, чтобы позволить вычислительному устройству 100 определить эффективность использования последовательности запуска, который заключает в себе гибернацию. В данном примере, обработка в блоке 444 записывает время для выполнения подпроцесса 450, которое в данном примере указывает выполнение последовательности полного запуска. Данная информация может записываться любым приемлемым способом. Например, информация о времени запуска может записываться в энергонезависимую память 152. Информация может записываться в качестве отдельных времен запуска, указывающих время, требуемое для выполнения последовательности полного запуска всякий раз, когда выполняется такая последовательность полного запуска. В качестве альтернативы, информация может записываться в качестве скользящего среднего по нескольким последовательностям полного запуска, или любым другим приемлемым способом.

Информация по времени запуска может определяться любым приемлемым способом в блоке 444. В качестве одного примера, таймер может быть запущен при инициации подпроцесса 450 и считан, когда обработка достигнет блока 444. Тем не менее, известны другие методики измерения времени, и они могут применяться в блоке 444.

Как только записано время запуска, обработка может перейти к блоку 446. Здесь, может происходить обычная работа вычислительного устройства 100. Такая работа может продолжаться до тех пор, пока не будет принята команда выключения.

Фиг.5 иллюстрирует обработку, которая может выполняться в ответ на такую команду выключения. Процесс, иллюстрируемый на фиг.5, включает в себя блок 510, представляющий собой работу вычислительного устройства 100, используя методики, как известно в данной области техники. Во время работы может быть принята команда 512 выключения. Команда 512 выключения может быть сформирована посредством ввода пользователя любым приемлемым способом, как, например, посредством графического интерфейса пользователя или элемента управления аппаратного обеспечения.

В некоторых вариантах осуществления, вычислительное устройство 100 может поддерживать несколько типов ввода пользователя, которые могут инициировать последовательность выключения. Фиг.7 является иллюстрацией графического интерфейса пользователя, посредством которого пользователь может ввести команды выключения. В данном примере, графический интерфейс 710 пользователя задействуется посредством нажатия кнопки, обозначенной «пуск», которая показана в интерфейсе пользователя, который представлен операционной системой компьютера. Тем не менее, следует иметь в виду, что разные операционные системы обеспечивают разные интерфейсы и может использоваться любая приемлемая методика, чтобы задействовать интерфейс пользователя.

В ответ на нажатие этой кнопки, графический интерфейс 710 пользователя может быть представлен операционной системой, используя методики, как известно в данной области техники. Посредством графического интерфейса 710 пользователя пользователь вычислительного устройства 100 может выбрать из нескольких возможных команд для завершения текущего сеанса на вычислительном устройстве. Здесь показаны три опции.

Здесь команда 714 имеет метку «выключение». Такая команда выключения обычно представлена на большинстве вычислительных устройств и традиционно используется для указания того, что вычислительное устройство должно выполнить последовательность полного выключения. Тем не менее, в варианте осуществления, проиллюстрированном на фиг.5, выбор пользователя команды 714 выключения может привести к выполнению определения операционной системой вычислительного устройства 100 того, может ли вместо этого быть выполнена последовательность частичного выключения, заключающий в себе гибернацию. В данном варианте осуществления, операционная система использует метку для команды, имеющую смысловое значение для пользователя, способом, который потенциально не сообразен значению. Однако обработка в зависимости от условий сохраняет ожидания пользователя.

Тем не менее, если пользователь хочет гарантировать то, что выполняется последовательность полного выключения, то для этого может быть предоставлена отдельная команда, с другой меткой. Если пользователь желает предписать вычислительному устройству выполнение полного выключения, не создавая файл гибернации, так что при последующей команде запуска состояние операционной системы будет формироваться посредством загрузки программного обеспечения из энергонезависимой памяти 150 и конфигурирования ее при помощи данных из энергонезависимой памяти 152, то пользователь может выбрать команду 715. В данном примере, команда 715 имеет метку «перезагрузка». Такое присвоение меток используется для указания пользователю того, что будет выполнена последовательность полного выключения так, что при последующей команде запуска будет выполняться последовательность полного запуска. В данном случае, команда 715 выполняет действия, которые аналогичны тем, что выполняются в обычной вычислительной системе, когда выдается команда «выключение». Тем не менее, в вычислительном устройстве, представляющем графический интерфейс 710 пользователя, семантическая метка, связанная с обычной командой выключения, применяется к команде 714. Соответственно, команде 715 задана друга метка.

Графический интерфейс 710 пользователя также содержит другие опции для завершения сеанса пользователя. В данном примере, графический интерфейс 710 пользователя включает в себя команду 716. При выборе команды 716, вычислительное устройство 100 может ответить посредством разрыва сеанса для выбранного пользователя. Такое поведение вычислительного устройства известно в данной области техники. В данном случае, команда 716 может соответствовать обычной команде логического выхода. Несмотря на то, что множество приемлемых опций команд может быть включено в графический интерфейс 710 пользователя, в иллюстрируемом варианте осуществления только выбор команды 714 или 716 приводит к инициированию процесса, иллюстрируемого на фиг.5.

Независимо от способа, посредством которого принята команда выключения и ее природы, в ответ на прием команды обработка может перейти от блока 510 к блоку 514. В блоке 514 могут выполняться начальные части последовательности выключения. Часть последовательности выключения, которая выполняется в блоке 514, может задействовать обычную обработку. В данном примере, обработка в блоке 514 завершает любой сеанс или сеансы пользователей на вычислительном устройстве 100. Как описано выше в связи с фиг.1, такая обработка может задействовать закрытие приложений и сохранение данных 134 пользовательского состояния или выполнение любых других приемлемых действий. В результате этих действий, любая информация в пользовательском состоянии 130, которая сохраняется от одного сеанса пользователя к следующему, перемещается из данных 134 пользовательского состояния в энергонезависимую память, такую как энергонезависимая память 152.

Независимо от конкретных этапов, предпринимаемых для завершения сеансов пользователя или иного способа сохранения данных 134 пользовательского состояния, когда эти этапы завершены, обработка может перейти к блоку 516 принятия решения. В блоке 516 принятия решения процесс с фиг.5 может ветвиться в зависимости от того, была ли запрошена перезагрузка. Обработка в блоке 516 может выполняться любым приемлемым способом. Любые один или более критериев могут применяться в блоке 516 принятия решения для определения того, была ли запрошена перезагрузка. В качестве одного примера, в блоке 516 принятия решения для определения того, была ли запрошена перезагрузка, может использоваться ввод пользователя. Например, когда пользователь выбирает команду 715 перезагрузки (фиг.7), то данный выбор пользователя может служить в качестве указания на то, что была запрошена перезагрузка.

В качестве другого примера, в связи с фиг.4 было описано, что компонент приложения может запросить перезагрузку, как например, посредством вызова API в блоке 442 (фиг.4). Если был выполнен такой вызов, то обработка в блоке 516 принятия решения может определить, что была запрошена перезагрузка. Тем не менее, в некоторых вариантах осуществления, обработка в блоке 516 принятия решения может осуществляться в зависимости от условий по нескольким критериям. Например, обработка может определить, что компонент приложения зарегистрировал запрос на перезагрузку посредством вызова API в блоке 442. Дальнейшая обработка в блоке 516 принятия решения может определять, следует ли выполнять данный запрос. Такая обработка может включать в себя, например, определение того, исполняется ли до сих пор запрашивающий компонент приложения в момент, когда выполняется процесс на фиг.5. В качестве альтернативы или дополнения, обработка в блоке 516 принятия решения может вызывать определение того, обладает ли запрашивающий компонент достаточными привилегиями доступа к команде перезагрузки.

Независимо от природы обработки, выполняемой в блоке 516 принятия решения, если в результате данной обработки определяется, что была запрошена перезагрузка, то процесс ответвляется в блок 530. В данном сценарии, блок 530 представляет собой последовательность полного выключения. Такая последовательность полного выключения может выполняться, как известно в данной области техники. Он может вызывать разрыв сеансов пользователей, сброс измененных данных и выключение питания вычислительного устройства. Независимо от конкретных этапов, предпринимаемых при выполнении последовательности выключения, по завершению может заканчиваться процесс на фиг.5, оставляя вычислительное устройство 100 в выключенном состоянии.

И наоборот, если в блоке 516 принятия решения не была запрошена перезагрузка, то процесс может перейти к блоку 518 принятия решения. Обработка в блоке 518 принятия решения является примером обработки в зависимости от условий для определения того, должен ли быть выполнена последовательность полного выключения или должно быть выполнено частичное выключение, сопровождаемое гибернацией.

В иллюстрируемом примере, применяемая политика относится к экономии времени, достигаемому при помощи гибернации. В блоке 518 принятия решения может определяться, достигается ли экономия времени при запуске из гибернации. Такое определение может выполняться посредством сравнения записанной информации об относительном времени для приведения вычислительного устройства 100 в рабочее состояние с помощью последовательности полного запуска или возобновления работы из гибернации, сопровождаемой последовательностью частичного запуска. Информация касательно времени для выполнения полного запуска может основываться, например, на информации, которая сохраняется в блоке 444 (фиг.4). Информация касательно времени, требуемого для приведения вычислительного устройства 100 в рабочее состояние, сопровождаемое возобновлением работы из гибернации, может определяться аналогичным образом на основании информации, которая записывается в конце исполнения процесса на фиг.6.

Если время на создание рабочего состояния на основании возобновления работы, сопровождаемого частичным запуском, медленнее времени для выполнения полного запуска, то обработка ответвляется от блока 518 принятия решения к подпроцессу 530. И наоборот, если обработка в блоке 518 принятия решения определяет, что возобновление работы из гибернации, сопровождаемое частичным исполнением последовательности запуска, является предпочтительным, то обработка может перейти к блоку 520 принятия решения.

В блоке 520 принятия решения, может выполняться дальнейшая обработка в зависимости от условий для определения того, находится ли вычислительное устройство 100 в состоянии, подходящем для последовательности частичного выключения, заключающего в себе гибернацию. Такая обработка может вызывать определение того, были ли, во время текущего сеанса, для любого из компонентов указаны изменения конфигурации. Если такие изменения конфигурации, для вступления в силу, требуют перезагрузки, то выключение, которое задействует гибернацию, может не реализовать ожидания пользователя в отношении поведения вычислительного устройства 100, так как выбор команды 714 выключения (фиг.7) связан с меткой, которая традиционно предписывала бы вычислительному устройству применить изменения конфигурации при следующем запуске.

Если вычислительное устройство 100 реализует последовательность выключения, который задействует гибернацию, в ответ на команду с меткой, традиционно используемой для указания полного запуска, то при последующем запуске состояние этих компонентов возобновится в соответствии с их предыдущим состоянием вместо состояния, которое основывается на изменениях конфигурации. Соответственно, может существовать сценарий, при котором ожидания пользователя касательно активации команды, которая могла бы быть связана с последовательностью полного выключения, не будут показывать ожидаемого поведения. Чтобы избежать того, чтобы вычислительное устройство 100 работало несообразно ожидаемому пользователем поведению, процесс на фиг.5 должен ответвляться в зависимости от того, определяет ли вычислительное устройство автоматически, что последовательность полного выключения должен быть выполнен для того, чтобы получить работу, соответствующую ожиданиям пользователя. Раз так, то процесс ответвляется на подпроцесс 530, в котором выполняется последовательность полного выключения, как описано выше.

В иллюстрируемом варианте осуществления условие, при котором должна выполняться последовательность полного выключения, идентифицируется посредством определения того, имеют ли какие-либо компоненты настройки конфигурации, которые изменились в течение текущего сеанса. Методики, как известно в данной области техники, для выполнения данного определения, могут применяться в блоке 520 принятия решения. В качестве одного примера, обработка в отношении изменения настроек конфигурации исполняющихся компонентов может вызывать установку флага или запись иным образом указания об изменении конфигурации. В данном сценарии, обработка в блоке 520 принятия решения может вызывать проверку значения флага статуса. Тем не менее, альтернативно или в дополнение может использоваться другая приемлемая обработка. Например, обработка может вызывать сканирование одной или более ячеек памяти для обнаружения непримененных настроек конфигурации.

Независимо от того, каким образом выполняется определение в блоке 520 принятия решения, если не существует условия, при котором требуется полное выключение и/или последующий полный запуск, то обработка может переходить к блоку 522 принятия решения. В блоке 522 выполняются операции для полного перевода вычислительного устройства 100 в целевое состояние, из которого происходит гибернация. Как описано выше в связи с фиг.3, данное целевое состояние может соответствовать состоянию, при котором сохраняется состояние операционной системы, однако все сеансы пользователей разорваны и любое пользовательское состояние, которое требуется при последующем логическом входе пользователя, было сохранено, в соответствующей форме, в энергонезависимой памяти.

Примером операции, которая может осуществляться для достижения данного целевого состояния, является сброс измененных данных. В качестве альтернативы или в дополнение, если другие данные, хранящиеся как часть данных 148 состояния системы, относятся к сеансу пользователя, осуществившего логический вход, то обработка в блоке 522 может вызывать сохранение этих данных в энергонезависимой памяти 152.

Независимо от того, какие операции выполняются для полного достижения целевого состояния, затем обработка может перейти к блоку 524. В блоке 524, может быть принята информация, которая может использоваться позже для выяснения пригодности файла гибернации для повторного создания целевого состояния на вычислительном устройстве 100. В качестве примера, некоторые вычислительные устройства могут быть сконфигурированы с несколькими операционными системами или несколькими экземплярами операционной системы. Файл гибернации, который создается как часть выключения конкретного экземпляра операционной системы, может использоваться для восстановления состояния операционной системы только в ответ на команду запуска того же экземпляра операционной системы.

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

Например, если пользователь, после операции выключения в отношении первой операционной системы, загрузил вторую операционную систему и выполнил изменения в отношении любых данных или другого компонента, который используется первой операционной системой, то возобновление работы из файла гибернации в данном случае приведет к созданию состояния, которое не отражает промежуточные изменения пользователя.

Соответственно, может использоваться механизм для определения того, пригоден ли при последующей команде запуска файл гибернации для использования при повторном создании рабочего состояния вычислительного устройства 100. В иллюстрируемом на фиг.5 варианте осуществления, данный механизм вызывает сохранение информации в момент создания файла гибернации. В данном конкретном примере, эта информация является порядковым номером, который поддерживается файловой системой. В частности, порядковый номер может сохраняться файловой системой NTFS или иной файловой системой, которая может работать на вычислительном устройстве. Такой порядковый номер может увеличиваться всякий раз при загрузке тома дискового запоминающего устройства. Соответственно, обработка в блоке 524 может вызывать сохранение порядкового номера NTFS, связанного с томом, который содержит файл гибернации и прочие данные, связанные с операционной системой. Данное значение может храниться в энергонезависимой памяти таким образом, что к нему может быть осуществлен доступ в связи с последующей командой запуска.

Независимо от конкретной информации, записываемой в блоке 524, чтоб позволить последующее определение применимости файла гибернации, процесс может переходить к подпроцессу 526. Подпроцесс 526 может задействовать сохранение файла гибернации. Обработка в блоке 526 может выполняться при помощи обычных методик, связанных с гибернацией вычислительного устройства. Тем не менее, следует отметить, что может использоваться любая приемлемая методика создания файла гибернации.

Независимо от конкретной методики, используемой для сохранения файла гибернации как части подпроцесса 526, после сохранения файла гибернации, может выключаться питание вычислительного устройства 100. Вычислительное устройство 100 может оставаться в выключенном состоянии до тех пор, пока не будет принята команда запуска.

Последующая команда запуска может обрабатываться, как проиллюстрировано на фиг.4 и фиг.6. Фиг.4 иллюстрирует обработку, которая может выполняться в ответ на прием команды запуска. Данная обработка включает в себя обработку в блоке 410 и в блоке 412 принятия решения. Когда обработка достигает блока 412 принятия решения, то обработка может ответвляться, в зависимости от того, существует ли такой файл гибернации, который, например, может существовать, если в непосредственно предшествующий выключению момент времени выполнялся подпроцесс 526. Когда файл гибернации существует, то обработка на фиг.4 может ответвляться через блок объединения, помеченный как A, для продолжения обработки, как иллюстрируется на фиг.6.

Обработка на фиг.6 иллюстрирует процесс, который может выполняться, когда существует файл гибернации. Процесс на фиг.6 может начинаться в блоке 601. В блоке 601 процесс может ветвиться в зависимости от того, представляет ли собой файл гибернации, обнаруженный в блоке 412 принятия решения (фиг.4), файлом гибернации, который собирает целевое состояние во время выключения, такого как то, что указывается в связи с подпроцессом 526. Если так, то процесс может перейти к блоку 610 принятия решения.

В качестве альтернативы, файл гибернации может представлять собой обычный файл гибернации, заключающий в себе пользовательское состояние в дополнение к информации о состояние системы. Такой файл гибернации может использоваться в соответствии с обычной методикой восстановления состояния. Обычная обработка может выполняться в подпроцессе 670, при котором файл гибернации используется для повторного создания состояния вычислительного устройства, включая пользовательское состояние, в момент предшествующий гибернации. Вслед за завершением подпроцесса 670, обработка может продолжаться в блоке 638.

И, наоборот, если файл гибернации, как определено в блоке 601 принятия решения, был записан как часть процесса выключения, то процесс продолжается в блоке 610 принятия решения. Начиная в блоке 610 принятия решения, одна или более операций могут выполняться для определения того, должен ли, в ответ на команду запуска, выполняться последовательность полного запуска или должно выполняться возобновление работы из гибернации, сопровождаемое последовательностью частичного запуска. В данном примере, несколько условий проверяется для определения того, должно ли выполняться возобновление работы из гибернации даже, несмотря на то, что определено существование файла гибернации. Одно такое условие, которое проверяется в блоке 610 принятия решения, вызывает определение того, применительно к вычислительному устройству 100, присутствовало ли такое изменение в конфигурации аппаратного обеспечения, что возобновление работы из гибернации может привести к повторному созданию информации о состоянии, которая не совпадает с текущей конфигурацией компьютера. Такое изменение может обнаруживаться любым приемлемым способом, включая проверку реестра компонентов аппаратного обеспечения, который был создан во время последнего сеанса вычислительного устройства и сохранен в энергонезависимой памяти. Конфигурация аппаратного обеспечения вычислительного устройства при последующем запуске может проверяться для того, чтобы гарантировать, что установлен каждый элемент в реестре. Тем не менее, следует иметь в виду, что проверка реестра является только одним примером того, каким образом может выполняться такая обработка. Независимо от того, каким образом выполняется определение, если конфигурация аппаратного обеспечения изменилась, то обработка может ответвляться из блока 610 принятия решения в подпроцесс 650. Подпроцесс 650 может вызывать повторную загрузку операционной системы. Обработка в подпроцессе 650 может выполняться при помощи методик, которые известны в данной области техники. Вслед за загрузкой операционной системы в подпроцессе 650, процесс может переходить к блоку 632.

И, наоборот, если обработка в блоке 610 принятия решения определяет, что не произошло изменения конфигурации аппаратного обеспечения, то обработка может перейти к блоку 612. В блоке 612, дополнительная обработка может выполняться для динамического определения того, находится ли вычислительное устройство 100 в состоянии, при котором должно выполняться возобновление работы из гибернации. В данном случае, обработка в блоке 612 принятия решения может использовать информацию, которая хранится в блоке 524 (фиг.5), для определения того, произошли ли изменения после создания файла гибернации, так что оживания пользователя не будут удовлетворены, если будет выполняться возобновление работы из гибернации.

В данном примере, обработка в блоке 612 задействует проверку порядкового номера NTFS, связанного с томом, который содержит файл гибернации. Если данный том не загружался с момента создания файла гибернации, то порядковый номер, считанный в блоке 612, будет отличаться от порядкового номера, который хранится в блоке 524, на известную величину, представляющую собой изменение порядкового номера при запуске. И наоборот, если разность в порядковых номерах больше известной величины, то обработка в блоке 612 идентифицирует, что возможно были внесены изменения в промежутке времени между моментом создания файла гибернации и командой запуска, которая инициирует возобновление работы из гибернации.

В блоке 620 принятия решения, процесс может ветвиться на основании сравнения, которое выполняется в блоке 612. Если порядковые номера не последовательны, то процесс ответвляется в подпроцесс 750. Такое ответвление может происходить, когда разность в порядковых номерах указывает на то, что файл гибернации не создаст рабочее состояние вычислительного устройства, которое будет согласоваться с ожиданиями пользователя. Соответственно, выполняется подпроцесс 650, при котором создается состояние 140 системы посредством перезагрузки программного обеспечения операционной системы.

И наоборот, если сравнение, выполненное в блоке 612, указывает на то, что порядковые номера последовательны, то процесс может переходить к подпроцессу 630. Когда выполняется данная ветка, то файл гибернации определен как соответствующий для повторного создания состояния вычислительного устройства. Соответственно, подпроцесс 630 вызывает повторное создание целевого состояния вычислительного устройства из файла гибернации. Подпроцесс 630 может выполняться, используя известные методики для возобновления работы из гибернации. Тем не менее, в данном сценарии, вместо повторного создания состояния вычислительного устройства, включающего в себя пользовательское состояние, возобновление работы, основанное на файле гибернации, повторно создает целевое состояние в момент, когда был создан файл гибернации. Данное состояние, например, может представлять собой состояние вычислительного устройства при пуске подпроцесса 526 (фиг.5). Тем не менее, в других вариантах осуществления, частичное пользовательское состояние может храниться в файле гибернации, так как это может произойти, когда операционная система предсказывает приложения, которые вероятнее всего будут открыты пользователем по завершению последовательности запуска, и сохраняет файл гибернации, который собирает состояние вычислительного устройство в тот момент, тогда эти приложения все еще открыты.

По завершению подпроцесса 630, процесс на фиг.6 может перейти к блоку 632. Независимо от того, прибывает ли обработка в блок 632 через подпроцесс 630 или 650, в блоке 632 может записываться время, которое потребовалось для ответа на команду запуска. Смысл записываемого значения может зависеть от пути, по которому обработка достигла блока 632. Когда обработка прибывает в блок 632 через подпроцесс 630, тогда время представляет собой время запуска при помощи возобновления работы из гибернации как части обработки и записывается соответствующим образом. И наоборот, когда обработка прибывает в блок 632 через подпроцесс 650, то время представляет собой время запуска при помощи последовательности полного запуска и записывается соответствующим образом. Обработка в блоке 632 может выполняться любым приемлемым способом, включая при помощи методик, как описано в связи с блоком 444 (фиг.4).

В результате записи информации в блоке 632, обработка в блоке 518 принятия решения (фиг.5) может иметь информацию, которая доступна для сравнения времени ответа на команду запуска на основании последовательности полного запуска, которая включает в себя возобновление работы из гибернации и часть последовательности запуска. Данная информация может записываться и сравниваться любым приемлемым способом.

Затем обработка может переходить к подпроцессу 634. В подпроцессе 634 может выполняться часть последовательности запуска по созданию требуемого рабочего состояния для вычислительного устройства. Данная часть может включать в себя логический вход пользователя. Данная операция может выполняться известным образом и может включать в себя автоматизированный логический вход или может включать в себя представление экрана логического входа, посредством которого пользователь может представить информацию для выполнения вручную процесса логического входа. В сценариях, при которых обработка прибывает в подпроцесс 634 через подпроцесс 650, сочетание обработки в подпроцессе 650 и подпроцессе 634 может представлять собой последовательность полного запуска. И наоборот, если обработка прибывает в подпроцесс 634 через подпроцесс 630, то ответ на команду запуска задействует возобновление работы из гибернации и часть последовательности запуска.

В данном примере, эта часть последовательности запуска представляет собой логический вход пользователя в подпроцессе 634. Такая обработка может выполняться при помощи обычных методик. Тем не менее, конкретные этапы, используемые для завершения последовательности запуска, который следует за возобновлением работы из гибернации, могут быть любыми приемлемыми методиками.

Затем процесс может переходить в блок 638, в котором файл гибернации может аннулироваться. Обработка также может прибывать в блок 638 вслед за подпроцессом 670. Независимо от того, каким образом обработка прибывает в блок 638, файл гибернации может аннулироваться любым приемлемым способом, который указывает на то, что файл гибернации не должен более использоваться, поскольку это может повторно создать неправильное рабочее состояние. Файл гибернации может аннулироваться, например, посредством: изменения его содержимого неким образом; записи в отдельную структуру памяти того, что файл аннулирован; или посредством удаления файла.

Затем процесс на фиг.6 может завершаться. Когда процесс завершается, то вычислительное устройство 100 может быть сконфигурировано в рабочее состояние и вследствие этого может продолжить работу до тех пор, пока не будет принята команда выключения или перезагрузки.

Фиг.8 иллюстрирует пример приемлемой среды 800 вычислительной системы, в которой может быть реализовано изобретение. Среда 800 вычислительной системы является лишь одним примером приемлемой вычислительной среды и не предназначена для того, чтобы наложить какие-либо ограничения, как на объем использования, так и функциональные возможности изобретения. Вычислительную среду 800 не следует рассматривать как обладающую какой-либо зависимостью или требованием в отношении любого отдельного или сочетания компонентов, проиллюстрированных в характерной рабочей среде 800.

Изобретение применимо к множеству прочих сред или конфигураций вычислительной системы общего назначения или специализированной. Примеры хорошо известных вычислительных систем, сред, и/или конфигураций, которые могут быть пригодны для использования совместно с изобретением, включают в себя, но не ограничиваются, персональные компьютеры, серверные компьютеры, переносные или устройства или устройства класса лэптоп, многопроцессорные системы, системы, основанные на микропроцессорах, телевизионные абонентские приставки, программируемую потребительскую электронику, сетевые PC, миникомпьютеры, компьютеры класса мэйнфрейм, распределенные вычислительные среды, которые включают в себя любые из вышеперечисленных систем или устройств, и подобное.

Вычислительная среда может исполнять исполняемые компьютером инструкции, такие как программные модули. Как правило, программные модули включают в себя, подпрограммы, программы, объекты, компоненты, структуры данных, и т.д. которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Изобретение так же может быть воплощено на практике в распределенных вычислительных средах, в которых задачи выполняются устройствами дистанционной обработки, которые связаны через сеть связи. В распределенной вычислительной среде, программные модули могут размещаться как на локальных, так и удаленных компьютерных носителях данных, включающих в себя запоминающие устройства.

Со ссылкой на фиг.8, характерная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 810. Компоненты компьютера 810 могут включать в себя, но не ограничиваются, блок 820 обработки данных, системную память 830 и системную шину 821, которая объединяет различные компоненты системы, включая системную память и блок 820 обработки данных. Системная шина 821 может быть любой из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину, и логическую шину, используя любую из многообразия шинных архитектур. В качестве примера, а не ограничения, такие архитектуры включают в себя шину Архитектуры Промышленного Стандарта (ISA), шину Микроканальной Архитектуры (MCA), шину Расширенной ISA (EISA), локальную шину Ассоциации по Стандартизации Видеоэлектроники (VESA), шину Межсоединения Периферийных Компонентов (PCI) так же известную как шина второго уровня.

Компьютер 810, как правило, включает в себя многообразие машиночитаемых носителей информации. Машиночитаемые носители информации могут быть любыми доступными носителями информации, доступ к которым может быть получен компьютером 810, и включают в себя как энергозависимые, так и энергонезависимые носители информации, съемные и несъемные носители информации. В качестве примера, а не ограничения, машиночитаемый носитель информации может включать в себя компьютерные носители данных и средства связи. Компьютерные носители данных включают в себя как энергозависимые, так и энергонезависимые, съемные и несъемные носители информации, реализованные любым способом или по любой технологии для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или прочие данные. Компьютерные носители данных включают в себя, но не ограничиваются, RAM, ROM, EEPROM, флэш-память или иную технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или иные запоминающие устройства на оптических дисках, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске или иные магнитные запоминающие устройства, или любой другой носитель информации, который может использоваться для хранения требуемой информации, и доступ к которому может быть получен посредством компьютера 810. Средства связи, как правило, воплощают машиночитаемые инструкции, структуры данных, программные модули или прочие данные в модулированном сигнале данных, таком как несущая волна или иной транспортный механизм, и включают в себя любые средства доставки информации. Понятие «модулированный сигнал данных» означает сигнал, обладающей одной или более своими характеристиками, которые заданы или меняются таким образом, что в сигнале кодируется информация. В качестве примера, а не ограничения, средства связи включают в себя проводные средства, такие как проводную сеть или прямое проводное соединение, и беспроводные средства, такие как акустические, радиочастотные, инфракрасные и прочие беспроводные средства. Сочетания любых из вышеперечисленных так же должны рассматриваться как включенные в объем понятия машиночитаемых носителей информации.

Системная память 830 включает в себя компьютерные носители данных в виде энергозависимой и/или энергонезависимой памяти такой как постоянное запоминающее устройство 831 (ROM) и запоминающее устройство 832 с произвольной выборкой (RAM). Базовая система 833 ввода вывода (BIOS), содержащая базовые подпрограммы, которые помогают осуществлять перенос информации между элементами в компьютере 810, как во время запуска, как правило, хранятся в ROM 831. RAM 832, как правило, содержит данные и/или программные модули, которые являются немедленно доступными и/или являются обрабатываемыми в данный момент блоком 820 обработки данных. В качестве примера, а не ограничения, фиг.8 иллюстрирует операционную систему 834, прикладные программы 835, прочие программные модули 836, и программные данные 837.

Компьютер 810 так же включает в себя прочие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных. Лишь в качестве примера, фиг.8 иллюстрирует дисковод 840 жесткого диска, который осуществляет чтение или запись на несъемные, энергонезависимые магнитные носители информации, дисковод 851 магнитного диска, который осуществляет чтение или запись на съемный, энергонезависимый магнитный диск 852, и дисковод 855 оптического диска 855, который осуществляет чтение и запись на съемный, энергонезависимый оптический диск 856, такой как CD ROM или иные оптические носители информации. Дисковод 840 жесткого диска может быть реализован в качестве вращающегося магнитного носителя информации, который содержит одну или более магнитные головки, которые могут осуществлять запись на или чтение с магнитных носителей информации. Прочие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных, которые могут использоваться в характерной рабочей среде, включают в себя, но не ограничиваются, кассеты с магнитными лентами, карты флэш-памяти, цифровые универсальные диски, цифровые видео ленты, твердотельное RAM, твердотельное ROM и подобное. Дисковод 841 жесткого диска, как правило, соединен с системной шиной 821 посредством интерфейса несъемной памяти, такого как интерфейс 840, а дисковод 851 магнитного диска и дисковод 855 оптического диска, как правило, соединены с системной шиной 821 посредством интерфейса съемной памяти, такого как интерфейс 850.

Дисководы и связанные с ними компьютерные носители данных, рассмотренные выше и проиллюстрированные на фиг.8, обеспечивают хранение машиночитаемых инструкций, структур данных, программных модулей и прочих данных для компьютера 810. На фиг.8, например, дисковод 841 жесткого диска проиллюстрирован как хранящий операционную систему 844, прикладные программы 845, прочие программные модули 846, и программные данные 847. Следует отметить, что эти компоненты могут быть либо точно такими же, либо отличными от операционной системы 834, прикладных программ 835, прочих программных модулей 836, и программных данных 837. Операционной системе 844, прикладным программам 845, прочим программным модулям 846 и программным данным 847 здесь заданы разные номера, чтобы проиллюстрировать, что, по минимуму, они являются разными копиями. Пользователь может вводить команды и информацию в компьютер 810 посредством устройств ввода, таких как клавиатура 862 и указывающее устройство 861, как правило, именуемое как манипулятор типа мышь, трекбол или сенсорная панель. Прочие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровой манипулятор, спутниковую антенну, сканер или подобное. Эти и прочие устройства ввода часто соединены с блоком 820 обработки данных через интерфейс 860 ввода пользователя, который объединен с системной шиной, однако могут быть соединены посредством другого интерфейса и шинных структур, такого как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 891 или устройство отображения другого типа так же соединено с системной шиной 821 через интерфейс, такой как видео интерфейс 890. В дополнение к монитору, компьютеры могут так же включать в себя прочие периферийные устройства вывода, такие как громкоговорители 897 и принтер 896, которые могут быть соединены посредством интерфейса 895 периферийного вывода.

Компьютер 810 может работать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами, таким как удаленный компьютер 880. Удаленный компьютер 880 может быть персональным компьютером, сервером, маршрутизатором, сетевым PC, одноранговым устройством или иным общим сетевым узлом, и как правило, включат в себя множество или все из элементов, описанные выше применительно к компьютеру 810, несмотря на то, что на фиг.8 проиллюстрировано только запоминающее устройство 881. Логические соединения, изображенные на фиг.8 включают в себя локальную сеть 871 (LAN) и глобальную сеть 873 (WAN), однако так же могут включать в себя прочие сети. Такие среды с сетевой структурой являются обычными для офисов, корпоративных компьютерных сетей, интрасетей и сети Интернет.

При использовании в среде с сетевой структурой LAN, компьютер 810 соединен с LAN 871 через сетевой интерфейс или адаптер 870. При использовании в среде с сетевой структурой WAN, компьютер 810, как правило, включает в себя модем 872 или другое средство для создания связи по WAN 873, такой как сеть Интернет. Модем 872, который может быть внутренним или внешним, может быть соединен с системной шиной 821 через интерфейс 860 ввода пользователя, или иной соответствующий механизм. В среде с сетевой структурой, программные модули, изображенные как относящиеся к компьютеру 810, или их части, могут храниться на удаленных запоминающих устройствах. В качестве примера, а не ограничения, фиг.8 иллюстрирует удаленные прикладные программы 885 как размещенные на запоминающем устройстве 881. Следует иметь в виду, что показанные сетевые соединения являются характерными и могут использоваться прочие средства создания линий связи между компьютерами.

Таким образом, описав некоторые аспекты, по меньшей мере, одного варианта осуществления данного изобретения, должно быть понятно, что специалистам в соответствующей области будут очевидны различные изменения, модификации и улучшения.

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

Преимущества в соответствии с тем, что описано выше, могут быть получены другими способами. Например, в дополнение к тому, чтобы избежать работы компьютерного CPU и прочих компонентов, таких как диск, во время процесса настройки состояния, такой подход позволяет сохранять данные в файле гибернации в ответ на команду выключения, что поможет ускорить восприятие пользователя во время ответа на последующую команду запуска и/или после того, как завершена обработка команды запуска. Например, когда пользователь выполняет логический вход, может запускаться некоторое количество приложений (например, web-браузер WINDOWS EXPLORER, приложения запуска, и т.д.). Операционная система может явно отследить файлы (и их смещения), к которым пользователь осуществляет доступ в течение определенного интервала после того, как завершена обработка команды пуска. Эти приложения, или иные компоненты, могут быть считаны из памяти, чтобы быть сохраненными в файле гибернации, который создается во время последующей обработки команды выключения. Таким образом, эти приложения, или иные компоненты, будут считываться последовательно с диска в память вместо того, чтобы считываться в произвольном порядке как часть процесса загрузки этих приложений.

Также описываются логический вход и логический выход пользователя. Следует иметь в виду, что команда выключения может быть предоставлена в сценарии, при котором множество пользователей осуществили логический вход на компьютере. Если последовательность выключения выполняется частично и затем выполняется операция гибернации, то последовательность частичного выключения может привести к логическому выходу множества пользователей, однако, тем не менее, могут быть применены методики, как описано выше.

Например, методики, как здесь описано, могут использоваться для обеспечения автоматизированного обслуживания, не беспокоя пользователя. Например, вычислительное устройство, которое ответило на команду выключения посредством выполнения частичной последовательности выключения и затем перехода в гибернацию, может быть выполнено с возможностью автоматического пробуждения в момент времени, когда не ожидается активность пользователя, как например, в середине ночи. При пробуждении, вычислительное устройство может выполнять техническое обслуживание, такое как применение обновлений программного обеспечения. Пользователю кажется, что вычислительное устройство было выключено в конце дня, и таким образом техническое обслуживание является прозрачным для пользователя. Такая способность может быть реализована, например, если вычислительное устройство, в ответ на команду выключения, обнаруживает, что оно имеет техническое обслуживание или исправления, которые должна быть применены, и приводит себя в действие по пробуждению в подходящий момент. Когда вычислительное устройство пробуждается, оно выполняет какое бы, то ни было необходимое техническое обслуживание, такое как применение исправлений. Затем система выполняет полный перезапуск и затем вновь выполняет частичное выключение, сопровождаемое гибернацией. Данный сценарий позволяет поставщику программного обеспечения предложить решение, которое делает техническое обслуживание невидимым для пользователя. Данная способность может применяться как к потребительским, так и корпоративным PC. В дополнение к улучшению восприятия пользователя, такой подход также может экономить энергию, в частности применительно к корпоративным пользователям.

Такие изменения, модификации и улучшения направлены на часть данного раскрытия и призваны находиться в рамках сущности и объема изобретения. Соответственно, вышеприведенное описание и чертежи служат исключительно в качестве примера.

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

Кроме того, следует иметь в виду, что компьютер может быть воплощен в любом количестве форм, как например, в качестве компьютера, смонтированного в стойке, настольного компьютера, компьютера класса лэптоп или планшетного компьютера. Дополнительно, компьютер может быть встроен в устройство, как правило, не рассматриваемое в качестве компьютера, однако обладающее приемлемыми способностями обработки, включая Персональный Цифровой Помощник (PDA), интеллектуальный телефон или любое другое приемлемое портативное или стационарное электронное устройство.

Также компьютер может иметь одно или более устройств ввода и вывода. Эти устройства могут использоваться, среди прочего, для представления интерфейса пользователя. Примеры устройств вывода, которые могут использоваться для предоставления интерфейса пользователя, включают в себя принтеры или экраны отображения для визуального представления вывода и громкоговорители или другие устройства формирования звука для звукового представления вывода. Примеры устройств ввода, которые могут использоваться для интерфейса пользователя, включают в себя клавиатуры, и указывающие устройства, такие как манипуляторы типа мышь, сенсорные панели, и графические планшеты. В качестве другого примера, компьютер может принимать входную информацию посредством распознавания речи или в другом звуковом формате.

Такие компьютеры могут быть связаны между собой посредством одной или более сетей любой приемлемой формы, включая в качестве локальной сети или глобальной сети, такой как корпоративная сеть или сеть Интернет. Такие сети могут быть основаны на любой приемлемой технологии и могут работать в соответствии с любым приемлемым протоколом, и могут включать в себя беспроводные сети, проводные сети или оптоволоконные сети.

Также различные изложенные здесь способы и процессы могут быть закодированы в качестве программного обеспечения, которое исполняется на одном или более процессорах, которые используют любую из многообразия операционных систем или платформ. Дополнительно, такое программное обеспечение может быть написано при помощи любого из некоторого количества приемлемых языков программирования и/или инструментов программирования и написания сценариев, а также может быть скомпилировано в качестве исполняемого кода на машинном языке или промежуточного кода, который исполняется в инфраструктуре или на виртуальной машине.

В связи с этим, изобретение может быть воплощено в качестве машиночитаемого носителя данных (или нескольких машиночитаемых носителей информации) (например, компьютерной памяти, одного или более гибких дисков, компакт дисков (CD), оптических дисков, цифровых видео дисков (DVD), магнитных лент, модулей флэш-памяти, конфигураций схем в Программируемых Вентильных Матрицах или иных полупроводниковых устройствах, или другом энергонезависимом, вещественном компьютерном носителе данных), на котором закодировано одна или более программы, которые, при исполнении одним или более компьютерами или другими процессорами, выполняют способы, которые реализуют различные рассмотренные выше варианты осуществления изобретения. Машиночитаемый носитель данных или носители, могут быть транспортируемыми, таким образом, что хранящаяся на нем программа или программы могут быть загружены на один или более разных компьютеров или другие процессоры для реализации различных аспектов настоящего изобретения как рассмотрено выше. Используемое здесь понятие «невременный машиночитаемый носитель данных» охватывает только машиночитаемый носитель информации, который может рассматриваться в качестве продукта (т.е. промышленного изделия) или машины. В качестве альтернативы или в дополнение, изобретение может быть воплощено в качестве машиночитаемого носителя информации, отличного от машиночитаемого носителя данных, такого как транслируемый сигнал.

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

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

Также, структуры данных могут храниться на машиночитаемых носителях информации в любой приемлемой форме. Для простоты иллюстрации, структуры данных могут быть показаны как имеющие поля, которые связаны посредством местоположений в структуре данных. Такие взаимосвязи могут так же быть достигнуты посредством назначения хранения для полей с местоположениями в машиночитаемом носителе информации, которое передает взаимосвязь между полями. Тем не менее, любой приемлемый механизм может использоваться для создания взаимосвязи между информацией в полях структуры данных, включая посредством использования указателей, тэгов или иных механизмов, которые создают взаимосвязь между элементами данных.

Различные аспекты настоящего изобретения могут быть использованы по отдельности, в сочетании или в многообразии компоновок, которые конкретно не рассматривались в вариантах осуществления, описанных в вышеприведенном, и вследствие этого не ограничиваются в своем применение касательно деталей и компоновки компонентов, изложенных в предшествующем описании или проиллюстрированных на чертежах. Например, аспекты, описанные в одном варианте осуществления, могут быть объединены любым способом с аспектами, описанными в других вариантах осуществления.

Также, изобретение может быть воплощено в качестве способа, пример которого был предоставлен. Действия, выполняемые как часть способа, могут чередоваться любым приемлемым образом. Соответственно, могут быть созданы варианты осуществления, в которых действия выполняются в очередности, отличной от проиллюстрированной, которые могут включать в себя выполнение некоторых действий одновременно, даже, несмотря на то, что они в иллюстративных вариантах осуществления показаны как последовательные действия.

Использование порядковых числительных, таких как «первый», «второй», «третий» и т.д. в формуле изобретения для модификации элемента формулы изобретения само по себе не связано с каким-либо приоритетом, старшинством или очередностью одного элемента формулы изобретения над другим или временной очередностью, в которой выполняются действия способа, а используются исключительно в качестве меток, чтобы организовать различие между одним элементом формулы изобретения с определенным именем и другим элементом с таким же именем (за исключением использования порядкового числительного), чтобы отличать элементы формулы изобретения.

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

1. Способ работы вычислительного устройства, содержащего множество компонентов аппаратного обеспечения, включающее в себя энергозависимую память, в которой сохраняется любое пользовательское состояние вычислительного устройства и системное состояние вычислительного устройства, при этом согласно данному способу выполняют последовательность выключения, предназначенную для выключения вычислительного устройства в ответ на прием команды выключения, при этом последовательность выключения содержит этапы, на которых:
разрывают любые сеансы пользователей на вычислительном устройстве, что в результате приводит к тому, что пользовательское состояние больше не сохраняется в энергозависимой памяти;
вслед за данным разрывом, копируют содержимое энергозависимой памяти в энергонезависимую память, причем копируемое содержимое включает в себя сохраненное системное состояние, но не пользовательское состояние, которое больше не сохраняется; и
выключают питание, по меньшей мере, части упомянутого множества компонентов аппаратного обеспечения вычислительного устройства.

2. Способ по п. 1, в котором при упомянутом разрыве удаляют пользовательские настройки из системного состояния.

3. Способ по п. 1, в котором последовательность выключения дополнительно содержит этап, на котором, после упомянутого выключения питания и в ответ на прием команды запуска, включают питание, по меньшей мере, части упомянутого множества компонентов аппаратного обеспечения.

4. Способ по п. 3, в котором последовательность выключения дополнительно содержит этап, на котором, после упомянутого включения питания, копируют скопированное содержимое из энергонезависимой памяти в энергозависимую память.

5. Способ по п. 4, в котором упомянутое копирование скопированного содержимого основывается на обнаружении файла, содержащего скопированное содержимое.

6. Способ по п. 1, в котором при упомянутом копировании содержимого создают файл.

7. Способ по п. 1, в котором последовательность выключения дополнительно содержит сброс измененных данных в энергонезависимую память.

8. Машиночитаемый носитель данных, содержащий машиноисполняемые инструкции, которые при их исполнении вычислительным устройством, содержащим множество компонентов аппаратного обеспечения, включающее в себя энергозависимую память, в которой сохраняется любое пользовательское состояние вычислительного устройства и системное состояние вычислительного устройства, предписывают вычислительному устройству выполнять последовательность выключения, предназначенную для выключения вычислительного устройства в ответ на прием команды выключения, при этом последовательность выключения содержит:
разрыв любых сеансов пользователей на вычислительном устройстве, что в результате приводит к тому, что пользовательское состояние больше не сохраняется в энергозависимой памяти;
копирование, вслед за данным разрывом, содержимого энергозависимой памяти в энергонезависимую память, причем копируемое содержимое включает в себя сохраненное системное состояние, но не пользовательское состояние, которое больше не сохраняется; и
выключение питания, по меньшей мере, части упомянутого множества компонентов аппаратного обеспечения вычислительного устройства.

9. Машиночитаемый носитель данных по п. 8, при этом упомянутый разрыв содержит удаление пользовательских настроек из системного состояния.

10. Машиночитаемый носитель данных по п. 8, при этом последовательность выключения дополнительно содержит, после упомянутого выключения питания и в ответ на прием команды запуска, включение питания, по меньшей мере, части упомянутого множества компонентов аппаратного обеспечения.

11. Машиночитаемый носитель данных по п. 10, при этом последовательность выключения дополнительно содержит, после упомянутого включения питания, копирование скопированного содержимого из энергонезависимой памяти в энергозависимую память.

12. Машиночитаемый носитель данных по п. 11, при этом упомянутое копирование скопированного содержимого основывается на обнаружении файла, содержащего скопированное содержимое.

13. Машиночитаемый носитель данных по п. 8, при этом упомянутое копирование содержимого содержит создание файла.

14. Машиночитаемый носитель данных по п. 8, при этом последовательность выключения дополнительно содержит сброс измененных данных в энергонезависимую память.

15. Вычислительное устройство, содержащее по меньшей мере один исполняемый программный модуль, конфигурирующий вычислительное устройство выполнять последовательность выключения, предназначенную для выключения вычислительного устройства в ответ на прием команды выключения, причем вычислительное устройство содержит множество компонентов аппаратного обеспечения, включающее в себя энергозависимую память, в которой сохраняется любое пользовательское состояние вычислительного устройства и системное состояние вычислительного устройства, при этом при выполнении последовательности выключения вычислительное устройство конфигурируется:
разрывать любые сеансы пользователей на вычислительном устройстве, что в результате приводит к тому, что пользовательское состояние больше не сохраняется в энергозависимой памяти;
вслед за данным разрывом, копировать содержимое энергозависимой памяти в энергонезависимую память, причем копируемое содержимое включает в себя сохраненное системное состояние, но не пользовательское состояние, которое больше не сохраняется; и
выключать питание, по меньшей мере, части упомянутого множества компонентов аппаратного обеспечения вычислительного устройства.

16. Вычислительное устройство по п. 15, в котором упомянутый разрыв содержит удаление пользовательских настроек из системного состояния.

17. Вычислительное устройство по п. 15, в котором последовательность выключения дополнительно содержит, после упомянутого выключения питания и в ответ на прием команды запуска, включение питания, по меньшей мере, части упомянутого множества компонентов аппаратного обеспечения.

18. Вычислительное устройство по п. 17, в котором последовательность выключения дополнительно содержит, после упомянутого включения питания, копирование скопированного содержимого из энергонезависимой памяти в энергозависимую память.

19. Вычислительное устройство по п. 18, в котором упомянутое копирование скопированного содержимого основывается на обнаружении файла, содержащего скопированное содержимое.

20. Вычислительное устройство по п. 15, в котором последовательность выключения дополнительно содержит сброс измененных данных в энергонезависимую память.



 

Похожие патенты:

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

Изобретение относится к способам загрузки компьютерных систем. .

Изобретение относится к вычислительной технике, в частности к способу и системе загрузки данных из оперативной памяти в процессор. .

Изобретение относится к микропрограммным автоматам дискретных устройств и может быть использовано при проектировании устройств с микропрограммным управлением . .
Наверх