DE112013001805T5 - Verfahren und Gerät zum Verbessern eines Winterschlaf- und Wiederaufnahmeprozesses mittels Benutzerraum-Synchronisation - Google Patents

Verfahren und Gerät zum Verbessern eines Winterschlaf- und Wiederaufnahmeprozesses mittels Benutzerraum-Synchronisation Download PDF

Info

Publication number
DE112013001805T5
DE112013001805T5 DE112013001805.5T DE112013001805T DE112013001805T5 DE 112013001805 T5 DE112013001805 T5 DE 112013001805T5 DE 112013001805 T DE112013001805 T DE 112013001805T DE 112013001805 T5 DE112013001805 T5 DE 112013001805T5
Authority
DE
Germany
Prior art keywords
system software
hibernation
software components
snapshot
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112013001805.5T
Other languages
English (en)
Inventor
John B. Preston
Alejandro G. Blanco
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola Solutions Inc filed Critical Motorola Solutions Inc
Publication of DE112013001805T5 publication Critical patent/DE112013001805T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Abstract

Vor Versetzen eines Computergerätes (102) in einen Winterschlaf werden Systemsoftwarekomponenten (116) über einen bevorstehenden Winterschlafprozess benachrichtigt. Die Benachrichtigungen werden durch eine Anwendungsprogrammierschnittstelle (API) (114) übermittelt. Wenigstens ein Teil der Systemsoftwarekomponenten (116) kann eine oder mehrere Vor-Winterschlaf-Aktivitäten ausführen, um die Systemsoftwarekomponente (116) in einen Bereitschaftszustand für Wiederaufnahme zu versetzen. Jede Systemsoftwarekomponente zeigt an, wann sie für Winterschlaf bereit ist. In Erwiderung auf das Empfangen der Anzeige von jeder der Systemsoftwarekomponenten (116) kann der Winterschlafprozess abgeschlossen werden. Der abgeschlossene Winterschlafprozess erzeugt eine Momentaufnahme (122) in einem nichtflüchtigen Speicher. Die Momentaufnahme (122) sichert Zustandsinformation (124) für jede der Systemsoftwarekomponenten (116). Die Zustandsinformation (124) ist für den Bereitschaftszustand für Wiederaufnahme der Systemsoftwarekomponenten (116) vorgesehen. Das Computergerät (102) kann nach dem Winterschlaf mittels eines Wiederaufnahmeprozesses (130) wiederhergestellt werden, der die Zustandsinformation (124) aus der Momentaufnahme (122) liest.

Description

  • GEBIET DER OFFENBARUNG
  • Die vorliegende Erfindung betrifft allgemein das Verwalten eines Einschaltprozesses für Kommunikationsgeräte und insbesondere das Verbessern eines Winterschlaf- und Wiederaufnahmeprozesses mittels Benutzerraum-Synchronisation.
  • HINTERGRUND
  • Winterschlaf- und Wiederaufnahmeprozesse von Computergeräten werden zunehmend verwendet, um kurze Hochfahrlaufzeiten zu erreichen, um Wartezeit für Nutzer zu minimieren. Der Winterschlafprozess ermöglicht es, einen Zustand eines Computergerätes zu sichern, und ermöglicht es, das Computergerät danach auszuschalten. Das heißt, Softwareprozesse, die unter einem Betriebssystem des Computergerätes ausgeführt werden, können ”eingefroren” oder in einer Momentaufnahme gespeichert werden, wobei die Momentaufnahme in einem nichtflüchtigen Speicher gespeichert wird.
  • Eine Vielzahl von Ereignissen kann einen Wiederaufnahmeprozess veranlassen, ein Computergerät in einen Zustand zu versetzen, in dem einer oder mehrere Systemparameter oder Werte fehlerhaft sind. Beispielsweise umfassen viele Geräte mechanische Steuerungen, Knöpfe, Auswahlvorrichtungen und Ähnliches. Diese mechanischen Steuerungen können sich in einer Stellung befinden, wenn ein Winterschlafprozess läuft, und in einer anderen Stellung, wenn ein Wiederaufnahmeprozess läuft. Jede Einstellung einer mechanischen Steuerung kann einen zugehörigen Wert haben, der in einem flüchtigen Speicher mittels einer Datenstruktur eines Betriebssystems gehalten wird. Wenn einer oder mehrere interne Werte für einen gegenwärtigen Zustand des Gerätes fehlerhaft sind, kann eine Vielzahl von negativen Ergebnissen auftreten.
  • Zum Beispiel kann das Gerät den fehlerhaften Wert erkennen und ihn beheben, wodurch eine Verarbeitungszeit des Wiederaufnahmeprozesses verlängert wird und/oder eine vom Nutzer wahrnehmbare Verzögerung hinzugefügt wird, die eine Nutzererfahrung mit dem Computergerät beeinträchtigt. In einem anderen Beispiel können fehlerhafte Werte, die während eines Wiederaufnahmeprozesses eingerichtet werden, zu einem unregelmäßigen Geräteverhalten führen (das heißt, zu einer fehlerhaften Lautstärke, wenn die mechanische Steuerung für eine Lautstärke vorgesehen ist; zu einem fehlerhaften Zustand, wenn die mechanische Steuerung für einen Kommunikationszustand vorgesehen ist usw.). In noch einem anderen Beispiel können fehlerhafte Werte aus einem Wiederaufnahmeprozess Softwareabstürze und andere unerwartete Fehler verursachen.
  • Was benötigt wird, ist eine Verbesserung eines Winterschlaf- und Wiederaufnahmeprozesses, die Probleme mit Parameterwerten minimiert oder ausschließt, die beim Wiederherstellen aus einer Momentaufnahme fehlerhaft sind.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die beigefügten Figuren, in denen gleiche Bezugszeichen sich über getrennte Sichten hinweg auf identische oder funktional ähnliche Elemente beziehen, sind zusammen mit der detaillierten Beschreibung unten einbezogen in und bilden einen Teil der Beschreibung und dienen dazu, Ausführungsformen von Konzepten zu veranschaulichen, die die beanspruchte Erfindung einschließen und mehrere Prinzipien und Vorteile dieser Ausführungsformen erklären.
  • 1 ist ein Blockdiagramm zum Verbessern eines Winterschlaf- und eines Wiederaufnahmeprozesses gemäß Ausführungsformen der Offenbarung.
  • 2 ist ein Flussdiagramm für Verfahren zum Verbessern eines Winterschlaf- und Wiederaufnahmeprozesses gemäß einer Ausführungsform der hier offenbarten erfinderischen Anordnungen.
  • 3 zeigt ein Nachrichtenabfolgediagramm eines Einfrier-/Winterschlafprozesses gemäß einer Ausführungsform der erfindungsgemäßen Anordnungen, die hier offenbart sind.
  • 4 zeigt ein Nachrichtenabfolgediagramm eines Auftau-/Wiederaufnahmeprozesses gemäß einer Ausführungsform der erfindungsgemäßen Anordnungen, die hier offenbart sind.
  • 5 ist ein schematisches Diagramm, das ein System zum Implementieren eines Winterschlaf- und Wiederaufnahmeprozesses gemäß Ausführungsformen der Offenbarung darstellt.
  • Der Fachmann wird würdigen, dass Elemente in den Figuren zur Einfachheit und Klarheit dargestellt sind und nicht notwendigerweise maßstabsgerecht gezeichnet sind. Beispielsweise können die Abmessungen von einigen der Elemente in den Figuren im Verhältnis zu anderen Elementen übertrieben sein, um dazu beizutragen, ein Verständnis der Ausführungsformen der vorliegenden Erfindung zu verbessern.
  • Die Geräte- und Verfahrenskomponenten wurden, wo angemessen, durch übliche Symbole in den Zeichnungen dargestellt, wobei nur solche besondere Einzelheiten gezeigt werden, die für das Verständnis der Ausführungsformen der vorliegenden Erfindung von Bedeutung sind, um die Offenbarung nicht mit Einzelheiten zu vernebeln, die für Personen mit üblichem Fachwissen, die den Nutzen aus der vorliegenden Beschreibung haben, sofort klar sind.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ein Verfahren, Gerät, System und/oder Computerprogrammprodukt für Winterschlaf- und Wiederaufnahmeprozesse für ein Computergerät. Entsprechend der Offenbarung können vor Versetzen eines Computergeräts in den Winterschlaf Systemsoftwarekomponenten über den bevorstehenden Winterschlafprozess benachrichtigt werden. In einer Ausführungsform werden die Benachrichtigungen über eine Anwendungsprogrammierschnittstelle (API) übertragen. Wenigstens ein Teil der Systemsoftwarekomponenten kann eine oder mehrere Vor-Winterschlaf-Aktivitäten ausführen, um die Systemsoftwarekomponente in einen Bereitschaftszustand für Wiederaufnahme zu versetzen. Jede Systemsoftwarekomponente kann anzeigen, wann sie für Winterschlaf bereit ist. In Erwiderung auf das Empfangen einer Anzeige von jeder der Systemsoftwarekomponenten, die anzeigt, dass jede der Systemsoftwarekomponenten für Winterschlaf bereit ist, kann der Winterschlafprozess abgeschlossen werden. Der abgeschlossene Winterschlafprozess erzeugt eine Momentaufnahme in einen nichtflüchtigen Speicher. Die Momentaufnahme sichert Zustandsinformation für jede der Systemsoftwarekomponenten. Die Zustandsinformation ist für den Bereitschaftszustand für Wiederaufnahme der Systemsoftwarekomponenten vorgesehen.
  • Die Offenbarung unterstützt die Tatsache, dass hierdurch gesicherte Momentaufnahmen Systemsoftwarekomponenten an einem aussagefähigen und gewollten Punkt der Ausführung starten (zum Beispiel in einem Bereitschaftszustand für Wiederaufnahme). Mit anderen Worten, frühere Lösungen für eine Momentaufnahme, die für Winterschlaf-/Wiederaufnahmeprozesse genutzt wurden, versuchen, einen Systemzustand an einem beliebigen Punkt aufzuzeichnen, was dazu führt, dass den Systemsoftwarekomponenten keine Gelegenheit gewährt wird, sich für einen Winterschlaf vorzubereiten (d. h. es erfolgen keine Vor-Winterschlaf-Aktivitäten für Systemsoftware). Entsprechend der Offenbarung gewährleistet ein Versetzen der Systemsoftwarekomponenten in einen Bereitschaftszustand für Wiederaufnahme, dass Prozesse für jede der Systemsoftwarekomponenten an einem besonderen Punkt der Ausführung gestartet werden, zum Beispiel genau oder nahe einem Ausführungsort, an dem Initialisierungs-Code der Systemsoftwarekomponente ausgeführt wird.
  • In machen Ausführungsformen kann der Bereitschaftszustand für Wiederaufnahme der Softwareanwendungen bewusst gesichert und auf Wunsch wiederverwendet werden. Zum Beispiel kann eine Menge von einer oder mehreren Momentaufnahmebildern in einer Fabrik erzeugt werden, sogar bevor eine Maschine versendet und verkauft wird (oder wenn ein Betriebssystem der Maschine geladen wird). Zusätzlich kann eine neue ”Ausgangs-” oder ”Bezugs-”Momentaufnahme erzeugt werden, wenn Systemsoftwarekomponenten, das Betriebssystem und/oder Hardware einer Maschine upgegradet wird. Eine verlässliche Momentaufnahme kann einer Maschine ermöglichen, schneller hochzufahren, weil die Systemsoftwarekomponenten nicht von einem ”kalten” Zustand zu starten brauchen, sondern direkt (von einem nichtflüchtigen Speicher zu einem flüchtigen Speicher) in einem warmen Zustand geladen werden können (zum Beispiel dem Bereitschaftszustand für Wiederaufnahme), wodurch die gesamte Einschaltdauer der Maschine verringert wird. In einer Ausführungsform kann die Einschaltdauer weiter verbessert werden, indem eine Teilmenge der Systemsoftwarekomponenten eingeschaltet wird, die dem Computergerät eine gewünschte Kernfunktionalität bereitstellen, und dann nachfolgend die übrigen Systemsoftwarekomponenten eingeschaltet werden. Das heißt, der Wiederaufnahmeprozess kann in betrachteten Ausführungsformen optimiert werden, um in einer abgestuften Weise zu erfolgen, wobei dem Endnutzer in jeder Stufe eine Funktionalität bereitgestellt wird. In einer Ausführungsform kann eine Maschine die Momentaufnahme, die ”zur Wiederaufnahme bereite” Systemsoftwarekomponenten aufweist, für eine schnelle Wiederaufnahme aus Fehlerbedingungen nutzen, einfach durch Wiedereinschalten und Wiederaufnehmen aus einer Momentaufnahme.
  • 1 ist ein Blockdiagramm zum Verbessern eines Winterschlaf- 120 und eines Wiederaufnahme- 130 Prozesses gemäß Ausführungsformen der Offenbarung. Die Offenbarung nutzt außerdem Momentaufnahmen der Systemsoftwarekomponenten, die in einen Bereitschaftszustand für Wiederaufnahme versetzt wurden, für viele Situationen. Momentaufnahmen, wie die hier verwendeten, sind nicht auf solche beschränkt, die von einem nutzerinitiierten Winterschlafprozess erzeugt werden, sondern schließen auch solche ein, die in einer Fabrik erzeugt werden, die in Reaktion auf ein Systemupgrade erzeugt werden, und/oder die erzeugt werden, wenn ein System erkennt, dass keine ”Bezugs-” oder ”Ausgangs-”Momentaufnahme vorhanden ist. Anders als konventionelle Winterschlafprozesse nach dem Stand der Technik werden im Winterschlafprozess 120 Systemsoftwarekomponenten 116 eines Betriebssystems 110 benachrichtigt, dass ein Winterschlafprozess initiiert wurde, bevor eine Momentaufnahme 120 erzeugt wird (oder die Momentaufnahme 122 wird in einer Fabrik erzeugt oder zu einer anderen Zeit, während die Systemsoftwarekomponenten 116 in einem Bereitschaftszustand für Wiederaufnahme sind).
  • Systemsoftwarekomponenten 116 können Anwendungen, Prozesse und Treiber einschließen, die Zustandsinformation in einem flüchtigen Speicher halten (zum Beispiel einem Speicher mit wahlfreiem Zugriff oder RAM). Dies ermöglicht jeder Systemsoftwarekomponente 116, sich selbst auf Winterschlaf vorzubereiten, durch Ausführen von keiner oder mehreren Vor-Winterschlaf-Aktivitäten, die die Systemsoftware in einen Bereitschaftszustand für Wiederaufnahme versetzen. Nicht alle Systemsoftwarekomponenten 116 brauchen notwendigerweise eine Vor-Winterschlaf-Aktivität vor jedem Betriebszustand auszuführen. Nach optionalem Ausführen von Vor-Winterschlaf-Aktivitäten kann jede benachrichtigte Systemsoftwarekomponente 116 berichten, dass sie für Winterschlaf bereit ist. Wenn alle benachrichtigten Komponenten berichtet haben, dass sie bereit sind zum Durchführen eines Winterschlafs, kann eine Handlung 119 zum Erzeugen einer Momentaufnahme ausgelöst werden, die eine Momentaufnahme 122 erzeugt. In einer Ausführungsform können die Vor-Winterschlaf-Handlungen in dem Benutzerraum 113 erfolgen, während ein Winterschlafprozess 110 aus einem Kernel-Raum 111 initiiert wird und während die Momentaufnahme 122 durch einen Prozess erzeugt wird, der in dem Kernel-Raum 111 ausgeführt wird.
  • Eine Momentaufnahme 122 wird in Reaktion auf viele unterschiedliche Ereignisse erzeugt, gemäß verschiedener betrachteter Ausführungsformen der Offenbarung. Zum Beispiel wird die Winterschlafhandlung durch eine Benutzerhandlung zum Durchführen eines Winterschlafs initiiert. In einem anderen Beispiel wird die Winterschlafhandlung von einer Zeitablauf-Zeitspanne initiiert, die dem Winterschlaf zugeordnet ist. In noch einem anderen Beispiel wird die Winterschlafhandlung von einer Erkennung des Systems zur Hochfahrzeit initiiert, dass ein vorhandener Bezug fehlt (in diesem letzten Fall brauchen Ausschalthandlungen, die oft zu einem Winterschlafprozess gehören, nicht erfolgen). Diese Beispiele sind nicht abschließend, und andere werden betrachtet.
  • In einer Ausführungsform werden Benachrichtigungen über die Winterschlafhandlung von einer Anwendungsprogrammierschnittstelle (API) 114 initiiert, die für Winterschlaf-/Wiederaufnahmevorgänge 120, 130 eingerichtet ist. Eine Benachrichtigungsfunktion wie zum Beispiel ”get_ready ()” kann für diesen Zweck benutzt werden. Wenn die Benachrichtigungen von einer API 114 versendet wurden, können Nachrichten von jeder der Systemsoftwarekomponenten 116 zu der API 114 zurückübermittelt werden. Zum Beispiel kann eine Funktion wie die gezeigte ”report_ready ()”-Funktion oder ein Äquivalent für diesen Zweck genutzt werden. Die Verwendung einer API 114 für Nachrichten an die Systemsoftwarekomponenten 116 kann ein nützlicher standardisierter Ansatz sein, insbesondere für Winterschlaf-/Wiederaufnahmevorgänge 120, 130, die innerhalb eines Kernel-Raums 111 des Betriebssystems 110 implementiert sind und/oder für solche, die auf einer BIOS-Ebene des Computergerätes 102 implementiert sind.
  • Der Wiederaufnahmeprozess 130 kann durch viele unterschiedliche Ereignisse und für unterschiedliche Situationen oder Zwecke gemäß verschiedenen betrachteten Ausführungsformen der Offenbarung initiiert werden. Zum Beispiel erfolgt der Wiederaufnahmeprozess 130 beim Systemstart, um ein ”schnelles Hochfahren” zu ermöglichen. In einem anderen Beispiel erfolgt der Wiederaufnahmeprozess 130 aus einem Winterschlaf, Schlaf oder anderem Energiesparzustand eines Computergeräts 102. In noch einem anderen Beispiel wird der Wiederaufnahmeprozess 130 durch einen Systemfehler ausgelöst (welcher ein Wiedereinschalten und dann Wiederaufnehmen auslöst oder welcher ein Systemrücksetzen/-wiederherstellen und dann Wiederaufnehmen auslöst). In ähnlicher Weise kann der Wiederaufnahmeprozess 130 durch irgendein Ausnahmeereignis ausgelöst werden als Teil eines Wiederherstellungsprozesses aus einem unbekannten Zustand, aus einem fehlerhaften Verhalten und dergleichen (das heißt, der Wiederaufnahmeprozess 130 aus einer bekannten Momentaufnahme kann als Teil eines Ausnahmebehandlungsprozesses erfolgen). In einer Ausführungsform können unterschiedliche Momentaufnahmen 122 (zum Beispiel eine Bezugs-Momentaufnahme, eine Wiederherstellungs-Momentaufnahme und dergleichen) durch das Computergerät 102 gespeichert werden und mit den unterschiedlichen Wiederaufnahmeprozess-Situationen verknüpft werden.
  • Davon unabhängig werden, sobald der Wiederaufnahmeprozess 130 initiiert ist, Einschaltmaßnahmen (wenn benötigt) ergriffen, um die Systemkomponenten wieder mit Leistung zu versorgen. Auf die Momentaufnahme 122, die in einem nichtflüchtigen Speicher gespeichert ist, wird zugegriffen, und sie wird gelesen, wodurch zuvor gespeicherte Zustandsinformation 124 in flüchtigen Speicher geladen wird. Anders als bei Realisierungen aus dem Stand der Technik ist der gesicherte Zustand 124 einer, den zuvor ausgeführte Softwaresystemkomponenten 116 durch betriebliches Ausführen einer Menge von Vor-Winterschlaf-Handlungen vorbereiten konnten, wodurch die mittels Momentaufnahme 122 gespeicherte Version jeder der Systemsoftwarekomponenten 116 in einen Bereitschaftszustand für Wiederaufnahme versetzt wird. Somit ist es im Vergleich zu den konventionellen Winterschlafprozessen weniger wahrscheinlich, dass die Systemsoftwarekomponenten 116 Synchronisationsprobleme beim Wiederaufnehmen aus dem Winterschlaf erfahren. Zum Beispiel kann der Bereitschaftszustand für Wiederaufnahme für die Systemsoftwarekomponenten 116 ein Zustand sein, der besteht, unmittelbar bevor Variablen beschafft werden, die sich während einer Ausschaltzeitspanne des Winterschlafs ändern können (zum Beispiel können Werte, die einer mechanischen Steuerung des Geräts 112 zugeordnet sind, aus dem Bereitschaftszustand für Wiederaufnahme initiiert werden). In ähnlicher Weise kann der Bereitschaftszustand für Wiederaufnahme an einem Ausführungsort positioniert werden, an dem das Betriebssystem 110 überprüft, ob Änderungen an entfernbaren Peripheriegeräten stattgefunden haben (zum Beispiel an einem Universellen Seriellen Bus oder anderen Plug-and-play-Geräten), bevor Handlungen, die von diesen Geräten abhängig sind, unternommen werden.
  • In einer Ausführungsform können Zeitreihenfolgen und Abhängigkeiten zwischen Variablen des Betriebssystems 110 und/oder der Systemsoftwarekomponenten 116 betrachtet werden. Somit können Variablen, Werte und andere Nachrichten zwischen den Systemsoftwarekomponenten 116 und dem Betriebssystem 110 während des Wiederaufnahmeprozesses 130 auftreten. Zum Beispiel können unterschiedliche der Systemsoftwarekomponenten 116 eine Menge von Mehrfachprozessen und/oder sogar untergeordneten Prozessen einschließen. Zum Beispiel kann eine der Softwarekomponenten 116 Vorgänge A, B und C und untergeordnete Prozesse A1 und B1 einschließen, wie gezeigt. Diese Prozesse und untergeordneten Prozesse können zueinander und/oder zu anderen laufenden Prozessen oder untergeordneten Prozessen des Betriebssystems 110 in eine Reihenfolge gebracht werden. Zustandsgesicherte Variablen 124 können erfordern, dass diese Zeitreihenfolgen fehlerfrei in eine Reihenfolge gebracht sind und/oder zueinander synchronisiert sind, welches in der Offenbarung aufgrund der Softwarekomponenten 116 möglich ist, die in der Lage sind, Vor-Winterschlaf-Aktivitäten auszuführen, um jede in einen Bereitschaftszustand für Wiederaufnahme oder Ausführungsposition zu versetzen, bevor die Momentaufnahme 122 gemacht wird. Das ordnungsgemäße In-eine-Reihenfolge-bringen stellt einfach sicher, dass ein ordnungsgemäßer Zustand 124 erreicht wird, wie in der Momentaufnahme 122 spezifiziert. Außerdem können Vor-Winterschlaf-Aktivitäten Optimierungen einschließen, die dafür vorgesehen sind, ein Computergerät 102 beim Ausführen eines Wiederaufnahmeprozesses 130 schnell in seinen vorherigen Zustand (oder in einen Default-, Bezugs- oder Grundzustand) zurückzuversetzen.
  • Im Winterschlafprozess 120 befindet sich jede der Systemsoftwarekomponenten 116 in einem zufälligen Zustand, wenn eine Nachricht zum Vorbereiten auf einen Winterschlaf empfangen wird. Vor-Winterschlaf-Aktivitäten überführen jede der Systemsoftwarekomponenten 116 aus diesem zufälligen Zustand in einen Bereitschaftszustand für Wiederaufnahme. In einem Fall kann ein Bereitschaftszustand für Wiederaufnahme ein Zustand sein, in dem Softwarekomponenten 116 vorbereitet sind, um Initialisierungshandlungen bei der Wiederaufnahme (zum Beispiel Wiederaufnahmeprozess 130) auszuführen. Zum Beispiel kann eine Systemsoftwarekomponente 116 in einen Bereitschaftszustand für Wiederaufnahme überführt werden durch Bewegen des Ausführungszeigers, um eine Initialisierungshandlung beim Wiederaufnehmen auszuführen. Es sollte gewürdigt werden, dass der Winterschlafprozess 120 eine oder mehrere Betriebsarten einschließen kann, einschließlich einer geschützten Betriebsart und einer beaufsichtigten Betriebsart, wobei die unterschiedlichen Betriebsarten eine Wirkung auf Vor-Winterschlaf-Aktivitäten haben können, die durch die Systemsoftwarekomponenten 116 ausgeführt werden.
  • Im Allgemeinen ist der Winterschlafprozess 120 einer, in dem das Computergerät 102 in der Lage ist, auszuschalten, während es seine Zustandsinformation (zum Beispiel Zustand 124) behält. In einer Ausführungsform ist der Ausschaltprozess optional, während das Sichern der Zustandsinformation in eine Momentaufnahme 122 verlangt wird. Das heißt, beim Versetzen in den Winterschlaf sichert das Computergerät 102 Inhalte seines flüchtigen Speichers (zum Beispiel Speicher für wahlfreien Zugriff oder RAM) in einen nichtflüchtigen Speicher als eine Momentaufnahme 122. Das Computergerät 102 kann dann in einer Ausführungsform vollständig ausgeschaltet werden, welches Energie spart. Der Wiederaufnahmeprozess 130 verursacht, dass das Computergerät 102 eingeschaltet wird und dann die gesicherte Zustandsinformation 124 aus der Momentaufnahme 122 rückgewinnt.
  • Der hier verwendete Winterschlafprozess 120 kann von einem Schlafprozess darin unterschieden werden, dass ein Schlafprozess einem nichtflüchtigen Speicher Energie bereitstellt, so dass gespeicherte Zustandsinformation behalten wird, wodurch sich eine Notwendigkeit erübrigt, die Zustandsinformation 124 in einer Momentaufnahme 122 (das heißt, in einem nichtflüchtigen Speicher) zu sichern. Techniken zum Benachrichtigen von Systemsoftwarekomponenten können auf einen Schlafprozess angewendet werden, wie auch auf einen Winterschlafprozess 120, wie hier im Einzelnen dargestellt. Darüber hinaus kann der Winterschlafprozess 120 der Offenbarung ein hybrider Winterschlaf-/Schlafprozess sein, in dem Inhalt von flüchtigem Speicher zu einem nichtflüchtigen Speicher als eine Momentaufnahme kopiert wird, wenn das Computergerät 102 in einen Schlafmodus eintritt, wodurch ein Zustand wiederhergestellt werden kann, sogar wenn eine Energieversorgung zu dem Gerät 102 verloren geht. In einer Ausführungsform sind der Winterschlaf- 120 und Wiederaufnahme- 130 -prozess dazu vorgesehen, im Wesentlichen verträglich mit der Advanced-Configuration-and-Power-Interface-(ACPI)-Spezifikation zu sein. In anderen betrachteten Ausführungsformen kann die ACPI-Spezifikation selbst erweitert werden, um Innovationen einzuschließen, die hier im Einzelnen dargestellt sind. Alternativ können die Winterschlaf- 120 und Wiederaufnahmeprozesse 130 in einer proprietären Weise implementiert werden, die mit der ACPI-Spezifikation verträglich ist. Es sollte beachtet werden, dass Situationen betrachtet werden (wie eine Wiederherstellung im Fehlerfalle mittels einer zuvor gespeicherten Momentaufnahme 122), wobei ein Wiederaufnahmeprozess 130 nicht erfordert, dass ein Winterschlafprozess 120 stattfindet, sondern nur erfordert, dass eine geeignete Momentaufnahme 120 vorhanden ist.
  • Das Betriebssystem 110 kann sich auf eine Menge von ausführbarem Code beziehen, der Computerhardwareressourcen verwalten kann und gemeinsame Dienste bereitstellen kann. Das Betriebssystem 110 kann Hardware-Gerätetreiber einschließen, die einer niedrigen Ebene zugeordnet sind.
  • In einer Ausführungsform kann das Betriebssystem 110 dargestellt werden als eine virtuelle Speicherdarstellung eines physikalischen Speichers (RAM), die das Betriebssystem in einen Kernel-Raum 111 und einen Nutzerraum 113 aufteilt. Der Kernel-Raum 111 kann einen virtuellen Speicher einschließen, der zum Ausführen des Kernels 112, von Kernel-112-Erweiterungen (zum Beispiel Module), von Gerätetreibern und dergleichen reserviert ist. Zum Beispiel kann Kernel-Raum 111 dazu verwendet werden, um Kernel-112-Operationen auszuführen. Der Kernel 112 kann, aber muss nicht, einen monolithischen Kernel, einen Mikrokernel, einen Hybridkernel, einen modularen Kernel, einen Nanokernel, einen Exokernel und dergleichen einschließen.
  • Der Benutzerraum 113 kann virtuellen Speicher einschließen, der zum Ausführen von Systemsoftwarekomponenten genutzt wird, die nicht notwendigerweise einschließen: eine Winterschlaf-Anwendungsprogrammierschnittstelle (API) 114, Systemsoftwarekomponenten 116, Treiber, Hilfssoftware und dergleichen. Der Benutzerraum 113 kann Mehrfachprozesse (zum Beispiel Prozess A, Prozess B) und untergeordnete Prozesse (zum Beispiel untergeordnete Prozesse A1 und B1) einschließen, die Systemdiensten (zum Beispiel Netzwerkdiensten, Verzeichnisdiensten usw.) zugeordnet sind.
  • API 114 stellt eine Sammlung von Funktionalitäten dar, die verbesserte Winterschlaf- und Wiederaufnahmeprozesse 120, 130 ermöglichen, die hier beschrieben sind. API 114 ermöglicht einem Benutzerraum, dass Systemsoftwarekomponenten 116 in einen Bereitschaftszustand für Wiederaufnahme eintreten, bevor ein Versetzen in den Winterschlaf erfolgt. API 114 kann, aber muss nicht, eine Bibliothek, ein Framework und dergleichen einschließen. API 114 kann zu herkömmlichen und oder proprietären Sprachen passen, einschließlich, aber nicht beschränkt auf C, C++, JAVA und dergleichen.
  • Jede der Systemsoftwarekomponenten 116 kann eine Komponente sein, die innerhalb eines Nutzerraums 113 ausgeführt werden kann. Jede Komponente 116 manipuliert und/oder verbraucht Hardware- und/oder Softwareressourcen des Computergeräts 102. Systemsoftwarekomponenten 116 können, aber müssen nicht einen Prozess, einen Thread, einen Dämon und dergleichen einschließen. Das heißt, Systemsoftwarekomponenten 116 können eine Menge von einem oder mehreren Prozessen (zum Beispiel Prozess A, Prozess B), untergeordnete Prozesse (zum Beispiel untergeordneten Prozess A1 und B1) und dergleichen einschließen. In einem Fall teilen Systemsoftwarekomponenten 116 Hardware- und/oder Softwarekonstrukte mit anderen Systemsoftwarekomponenten 116, um während eines Ausführungszustands ausgeführt zu werden. Zum Beispiel können ein Prozess A und ein Prozess B, die einem oder mehreren Softwarekomponenten 116 zugeordnet sind, einen Semaphor nutzen, um miteinander zu kommunizieren. In einer Ausführungsform stellt API 114 Funktionalität zum Erkennen und Handhaben von Prozessausnahmen bereit. In der Ausführungsform erkennt und reagiert API 114 angemessen auf einen nicht reagierenden Prozess (zum Beispiel Zombie-Prozess), einen Speicherverlust, einen ausgesetzten Prozess und dergleichen.
  • Die Momentaufnahme 122 kann ein Prozessabbild sein, das den Bereitschaftszustand für Wiederaufnahme der Systemsoftwarekomponenten 116 wiederspiegelt. In einem Fall schließt die Zustands-124-Information der Momentaufnahme 122 eine genaue Replik eines Prozesssteuerungsblocks ein, der zu den Systemsoftwarekomponenten 116 gehört, näherungsweise zu einer Zeit, als die Momentaufnahme 122 gemacht wurde. Die Zustandsinformation 124 kann, aber muss nicht, einschließen: Prozesszustände, Zustände von untergeordneten Prozessen, Objektinformation (zum Beispiel Objektzustand), Adressinformation (zum Beispiel Ausführungszeiger, Datenzeiger), Prozesskennungsnummer (zum Beispiel PID) Registerinhalte, Flag-Zustand, Schaltzustand, Adressrauminformation (zum Beispiel obere und untere Speichergrenzen), offene Dateien, Prozesspriorität, I/O-Gerätezustand und dergleichen.
  • In einer Ausführungsform wird die Momentaufnahme 122 benutzt, um den Systemsoftwarekomponenten-116-Zustand unabhängig von dem vorherigen Zustand wiederherzustellen. Das heißt, die Momentaufnahme 122 wird dazu verwendet, ein wiederverwendbares Abbild zu ermöglichen, welches dazu verwendet werden kann, um eine oder mehrere der Softwarekomponenten 116 in einen speziellen Zustand schnell wiederherzustellen. In einem Fall wird eine Momentaufnahme 122 in einem Herstellbetrieb erzeugt und kann bei jeder Wiederaufnahme genutzt werden, um das Gerät in einen Auslieferungszustand zurückzuversetzen. Wenn Änderungen an der Hardwarekonfiguration des Computergeräts 102 und/oder den Softwarekomponenten 116 durchgeführt werden, wird ein ”Fabrik-” oder Bezugszustand einer Momentaufnahme 112 aktualisiert, um diese Änderungen wiederzuspiegeln.
  • Das Verwenden einer Bezugs-Momentaufnahme 122 kann die für einen Winterschlafprozess 120 erforderliche Zeit erheblich verringern. Außerdem kann in einer Ausführungsform ein ”Bezugs”-Winterschlafzustand mit variablen Werten für ein Betriebssystem der Systemsoftwarekomponenten 116 angereichert werden. Diese Werte können explizit ermittelt und für die Momentaufnahme 122 als Teil des Vorbereitens jeder der Systemsoftwarekomponenten 116 auf den Winterschlaf verfügbar gemacht werden.
  • 2 ist ein Flussdiagramm für Verfahren 201, 250 zum Verbessern eines Winterschlaf- und Wiederaufnahmeprozesses gemäß einer Ausführungsform der erfinderischen Anordnungen, die hier offenbart sind. Verfahren 201 ist ein Winterschlafprozess für eine Reihenfolge von Schritten, die für ein Aussetzen eines Betriebssystems oder einer Systemsoftware vorgesehen sind. Wie zuvor angemerkt, kann es Momentaufnahmen geben, die durch andere Prozesse als den Winterschlafprozess 201 erzeugt wurden, wie ”vorinstallierte”-Momentaufnahmen (”born ready” snapshots), die in einer Fabrik erzeugt und mit einer Maschine ausgeliefert wurden. Verfahren 250 ist ein Wiederaufnahmeprozess für eine Reihenfolge von Schritten, die für das Wiederaufnehmen eines Betriebssystems und/oder Systemsoftware aus einer Momentaufnahme vorgesehen sind, die in einem nichtflüchtigen Speicher gespeichert ist.
  • Der Winterschlafprozess 201 beginnt, wenn eine Systemnachricht oder Benachrichtigung an laufende Softwarekomponenten versandt wurde, womit diese Komponenten darüber informiert werden, dass ein Winterschlafprozess initiiert wurde. In Reaktion auf das Empfangen dieser Benachrichtigung oder Nachricht kann jede Softwarekomponente eine Menge von Vor-Winterschlaf-Handlungen ausführen, um sich selbst in einen Bereitschaftszustand für Wiederaufnahme zu versetzen. Zum Beispiel, und wie mit Schritt 205 gezeigt, erkennt eine Systemkomponente ein Winterschlafereignis und/oder -benachrichtigung. Diese Benachrichtigung kann in verschiedenen Weisen erfolgen. In einer Ausführungsform kann es ein TIF_FREEZE-Flag zum Initiieren eines Winterschlaf-Vorbereitungsverfahrens geben.
  • In einer alternativen Ausführungsform kann ein Nicht-Winterschlaf-Ereignis ersetzt werden, das eine Erzeugung einer Momentaufnahme auslöst; aber das führt nicht notwendigerweise dazu, dass ein Computergerät in einen Ausschalt- oder Energiesparmodus eintritt. Wenn zum Beispiel für ein Computergerät beim Laden keine Grund-Momentaufnahme erkannt wird, kann in einer Ausführungsform der Offenbarung ein Momentaufnahme-Erzeugungsereignis automatisch ausgelöst werden.
  • In Schritt 210 wird eine Vorbereitungs- oder Vor-Winterschlaf-(oder Vor-Momentaufnahme-Erzeugungs-)Handlung, die mit dem Winterschlafereignis verbunden ist, durch den Softwareinhalt initiiert. Die Vorbereitungsaktion kann einschließen: Anhalten einer Thread-Erzeugung, Konsolidieren von Speichernutzung, Löschen eines Cache, Leeren einer Warteschlange/eines Puffers und dergleichen. In Schritt 215 wird eine Benachrichtigung der anhängigen Winterschlafhandlung optional zu abhängigen Prozessen übermittelt. In Schritt 220 können ein oder mehrere Prozesse oder untergeordnete Prozesse der Softwarekomponente eine oder mehrere in Benutzung befindliche Ressourcen freigeben. Zum Beispiel kann eine Softwarekomponente als Teil eines Winterschlafvorbereitungsprozesses vor Versetzen in den Winterschlaf sich gegenseitig ausschließende Ressourcen freigeben. In Schritt 225 setzt das Verfahren mit Schritt 230 fort, wenn die Softwarekomponente für Winterschlaf bereit ist (wenn zum Beispiel alle Vor-Winterschlaf-Aktivitäten ausgeführt wurden). Ansonsten werden zusätzliche Vor-Winterschlaf-Aktivitäten für jene Softwarekomponente ausgeführt, wie durch das Verfahren zum Ausdruck gebracht, das von Schritt 225 zu Schritt 210 fortschreitet.
  • In Schritt 230 hat die Softwarekomponente einen Bereitschaftszustand für Wiederaufnahme erreicht. Dies kann in einer Ausführungsform ein ”spezieller Zustand” sein, in welchem die Softwarekomponente nicht länger auf andere Anfragen als eine Wiederaufnahmeanfrage reagiert. In Schritt 240 sendet die Softwarekomponente eine Benachrichtigung, dass sie für Winterschlaf bereit ist. Schritte 205 bis 240 können durch jede laufende Softwarekomponente ausgeführt werden.
  • Der Winterschlafprozess kann verzögert werden, bis alle Softwarekomponenten berichtet haben, dass sie für den Winterschlaf bereit sind, wie durch die Verzögerungsschleife des Entscheidungsblocks 242 gezeigt. In einer Ausführungsform sind Zeitablaufüberprüfungen vorgesehen, um zu gewährleisten, dass eine Winterschlafaktivität als nicht erfolgreich abgebrochen wird, nachdem eine zuvor festgelegte Zeitdauer abgelaufen ist. In einer anderen Ausführungsform erfolgt nach einer Zeitablaufzeitspanne zum Antworten eine Winterschlafaktivität auch, wenn nicht alle Softwarekomponenten berichtet haben, dass sie bereit für den Winterschlaf sind. Sobald alle die Softwarekomponenten für den Winterschlaf bereit sind (oder eine Zeitablauf-Zeitspanne abgelaufen ist), wird das Versetzen in den Winterschlaf initiiert, wobei eine Momentaufnahme erzeugt wird, wie mit Schritt 244 gezeigt.
  • Der Wiederaufnahmeprozess 250 beginnt in Schritt 255, wo eine Wiederaufnahmebenachrichtigung von einem Betriebssystem empfangen wird. In Schritt 260 wird ausgehend von der Benachrichtigung eine passende Momentaufnahme ausgewählt. In einem Fall ermöglicht die Benachrichtigung der Systemsoftware eine fehlerfreie Wiederaufnahme, wenn sie innerhalb eines Betriebssystems ausgeführt wird, das mehrfache Betriebsmodi oder Benutzer unterstützt, wobei die passende Momentaufnahme für einen gegenwärtigen Betriebsmodus oder Nutzer spezifisch ist. In einem anderen Fall kann die ausgewählte Momentaufnahme eine besondere Momentaufnahme sein, wie eine Bezugs-/Grund-Momentaufnahme, eine Hochfahr-Momentaufnahme, eine Wiederherstell-Momentaufnahme und dergleichen. In Schritt 265 wird die Momentaufnahme dazu benutzt, um die Softwareausführung wiederaufzunehmen. Die Momentaufnahme kann dazu benutzt werden, jede Systemsoftwarekomponente in ihren Bereitschaftszustand für Wiederaufnahme zurückzuversetzen, wie mit Schritt 270 gezeigt.
  • Der Bereitschaftszustand für Wiederaufnahme ist einer, in welchem eine Softwarekomponente bereit zum Wiederaufnehmen ist, wobei sie unbekannte Bedingungen überprüft, die sich während des Winterschlafs verändern können. Zum Beispiel ist der Bereitschaftszustand für Wiederaufnahme einer Softwarekomponente einer, in welchem jene Softwarekomponente zuerst einen Zustand einer mechanischen Steuerung oder eines Schalters liest und ausgehend von dieser gelesenen Position entsprechende Werte einstellt. Der Bereitschaftszustand für Wiederaufnahme überprüft auch einen Betriebssystemzustand und ob notwendige Computerkomponenten (welche deaktiviert oder von einem Computergerät getrennt oder an das Computergerät wiederangeschlossen sein können, wie USB-Peripheriegeräte) in einem erwarteten Zustand sind. Wenn nicht, können Werte dieser Softwarekomponente schnell in einer angemessenen Weise eingestellt werden, im Gegensatz zu der Softwarekomponente, die versucht, abhängig von einer Ressource, die nicht verfügbar ist, einen Betrieb zu versuchen, welches ein bekanntes Problem von Softwarekomponenten ist, die in einem beliebigen Ausführungszustand eingefroren oder in den Winterschlaf versetzt wurden (im Gegensatz zu dem neuen Bereitschaftszustand für Wiederaufnahme).
  • Es sollte gewürdigt werden, dass zum Versetzen in den Winterschlaf und/oder Wiederaufnehmen der verschiedenen Systemsoftwarekomponenten unterschiedliche Zeitabfolgen eingerichtet werden können. Das heißt, in einer Ausführungsform ist ein mehrfach abgestufter Winterschlaf-/Wiederaufnahmeprozess vorgesehen, in dem es vorkommen kann, dass verschiedene der Systemsoftwarekomponenten warten müssen, bis andere der Systemsoftwarekomponenten einen Ausführungszustand erreicht haben, bevor jene Komponente gemäß einem abgestuften Winterschlaf-/Wiederaufnahmeprozess ”eingefroren” oder ”aufgetaut” ist. So kann eine der Systemsoftwarekomponenten sehr schnell aus einer Momentaufnahme reaktiviert werden im Verhältnis zu einer anderen der Systemsoftwarekomponenten. In einer Ausführungsform können softwarekomponentenspezifische ”TAUE AUF”- und/oder ”FRIERE EIN”- oder ”NEHME WIEDER AUF”-Nachrichten benutzt werden, um während der Winterschlaf- 201 oder Wiederaufnahme-250-Prozesse Zeiteinteilung und Ablaufplanung zu steuern.
  • Zusätzlich gewährleistet in einer betrachteten Ausführungsform ein mehrfach abgestufter Winterschlaf-/Wiederaufnahmeprozess, dass jede Stufe gruppierte Teilmengen von Systemsoftwarekomponenten aufweist, die erforderlich sind, um Endnutzerfunktionalität bereitzustellen. Dies kann es ermöglichen, ”Kernfunktionalität” eines Computergeräts zur Endnutzerverwendung schnellstmöglich wiederherzustellen, in Reaktion auf einen initiierten Wiederaufnahmeprozess 250. Zum Beispiel kann in einem Smartphone-Computergerät eine Stufe Kern-Telefonfunktionalität bereitstellen, eine spätere Stufe kann grundlegende Nutzerschnittstellenfunktionalität bereitstellen, und eine letzte Stufe kann Funktionalität bereitstellen, um auf das Netz mittels eines Browsers und/oder nicht-wesentlicher Anwendungen zuzugreifen, die auf dem Gerät installiert sind. Außerdem kann in einer betrachteten Ausführungsform der mehrfach abgestufte Wiederaufnahmeprozess 250 situationsabhängig zugeschnitten sein. Wenn zum Beispiel ein Wiederaufnahmeprozess 250 ausgehend von einem schwerwiegenden Fehler ausgelöst wird (das heißt, der Wiederaufnahmeprozess 250 wird benutzt, um eine Wiederherstellung nach einem Fehler durchzuführen), kann dann Funktionalität, die der Nutzer zum Zeitpunkt des Fehlers genutzt hat (wenn bekannt), in einer priorisierten Weise vor Funktionalität wiederhergestellt werden, die der Nutzer zum Zeitpunkt des Fehlers nicht benutzt hat. So wird der Endnutzer in die Lage versetzt, die gewünschte Funktionalität schnellstmöglich zu nutzen, was bedeutet, dass die wahrgenommene oder effektive Wiederaufnahmedauer mittels einer mehrfach abgestuften Wiederaufnahmetechnik minimiert wird.
  • 3 zeigt ein Nachrichtenabfolgediagramm 300 eines Einfrier-/Winterschlafprozesses gemäß einer Ausführungsform der erfinderischen Anordnungen, die hier offenbart sind. Das Nachrichtenabfolgediagramm 300 zeigt einen Momentaufnahme-Erzeugungsvorgang während einer Hochfahrabfolge, wie sie automatisch erfolgen kann, wenn keine vorhandene Momentaufnahme für ein Computergerät gespeichert ist. Das Nachrichtenabfolgediagramm 300 zeigt, dass während des Hochfahrprozesses ein Einfrier-Dämon 316 gestartet wird. Der Einfrier-Dämon 316 kann auf Nachrichten von anderen Komponenten 318326 des Systems warten, bis sie anzeigen, dass sie bereit sind, eingefroren zu werden. Sobald alle die Komponenten 318326 berichtet haben, dass sie bereit sind, kann der Einfrier-Dämon 316 eine Nachricht an den Kernel 312 senden, um den Einfrierprozess zu starten.
  • Um bei Diagramm 300 mehr ins Detail zu gehen: vom Hochfahr-Lader 310 wird eine Startnachricht an den Kernel 312 gesendet. Bei dem Kernel 312 können ein Initialisierungsprozess 340, ein Starttreiberprozess 342, ein Dateieinhängsystemprozess 344 und ein Ladeinitiierungsprogrammprozess 346 ausgeführt werden. Der Initialisierungsprozess 314 kann Android® (oder ein anderes Betriebssystem) hochfahren. Als Teil des Initialisierungsprozesses 314 kann ein Einfrier-Dämon 316, ein Audiosystem 318, ein Push-to-talk-(PTT)-Handler 320, ein Dispatch-Audio-Handler 322, eine Dispatch-Anwendung 324 und ein DekTec-Application-Programming-Interface (DTAPI) 326, wie in Diagramm 300 gezeigt, durch eine Reihe von Startnachrichten gestartet werden. Der Einfrier-Dämon 316, das Audiosystem 318, der Push-to-talk-(PTT)-Handler 320, der Dispatch-Audio-Handler 322, die Dispatch-Anwendung 324 und das DekTec-Application-Programming-Interface (DTAPI) 326 sind veranschaulichende Systemsoftwarekomponenten, die in Menge und Art von Computergerät zu Computergerät variieren, wobei auch andere in Frage kommen.
  • Beim Starten wartet der Einfrier-Dämon 316 auf Einfriernachrichten von den anderen Komponenten 318326. Jede Komponente 318326 führt optional eine Menge von Vor-Winterschlaf- oder Vor-Momentaufnahme-Aktivitäten durch, sendet dann eine ”FRIERE MICH EIN”-Nachricht zu dem Einfrier-Dämon 316. Mittels Sendens der ”FRIERE MICH EIN”-Nachricht zeigt jede Komponente 318326 an, dass sie sich selbst in einen Bereitschaftszustand für Wiederaufnahme versetzt hat. Während sie sich in diesem Bereitschaftszustand für Wiederaufnahme befindet, kann jede Komponente 318326 auf eine TAUE-AUF-Nachricht warten, wie mit den Warteprozessen 352, 354, 356, 358 und 360 jeweils gezeigt.
  • Der Einfrier-Dämon 316 sendet eine ”FRIERE SYSTEM EIN”-Nachricht zu dem Kernel 312, der daraufhin ein System-Einfrieren 362 ausführt.
  • 4 zeigt ein Nachrichtenablaufdiagramm 400 eines Auftau-/Wiederaufnahmeprozesses gemäß einer Ausführungsform der hier offenbarten erfinderischen Anordnungen. Das Nachrichtenablaufdiagramm 400 zeigt, dass während eines Einschaltprozesses der Kernel 312 ein Abbild oder eine Momentaufnahme erkennt und sie dann lädt. Nachdem das Abbild geladen ist, führt das System eine Wiederaufnahme in einem Zustand aus, in dem es zuvor eingefroren wurde. Der Einfrier-Dämon kann alle die wartenden Komponenten 320326 informieren, dass sie aufgetaut werden können.
  • Um näher auf Diagramm 400 einzugehen, wird eine Startnachricht von dem Hochfahr-Lader 310 zu dem Kernel 312 gesendet. Bei dem Kernel 312 kann ein Initialisierungsprozess 340 und ein Starttreiberprozess 342 laufen. Dann kann ein Abbild oder eine Momentaufnahme durch einen Prozess 410 erkannt werden, der in dem Kernel 312 läuft. Das Abbild kann durch Prozess 412 geladen werden. Ein Wiederaufnahmeprozess kann durch Prozess 412 initiiert werden. Zum Schluss kann eine Aufwachnachricht von dem Kernel 312 zu dem Einfrier-Dämon gesendet werden. Auftaunachrichten können zu jeder der Systemsoftwarekomponenten 320326 gesendet werden, welche, wie gezeigt, vor den Auftaunachricht(en) in einem Wartezustand 352360 waren. Der Einfrier-Dämon 316 kann für eine Zeitspanne (zum Beispiel 3 Sekunden) warten, nachdem ein Nach-Auftauen-Skript ausgeführt wurde 420.
  • 5 ist ein schematisches Diagramm, das ein System 500 zum Realisieren eines Winterschlaf- und Wiederaufnahmeprozesses gemäß den Ausführungsformen der Offenbarung darstellt.
  • Wie hier verwendet, kann der Winterschlaf ein Andauern (persisting) von Systemsoftwarekomponenten-Zustandsinformation, die in einem flüchtigen Speicher 524 angesiedelt ist, in einem nichtflüchtigen Speicher 526, insbesondere in eine Momentaufnahme 560, einschließen. Wiederaufnehmen kann das Laden von Systemsoftwarekomponenten-Zustandsinformation aus einer gespeicherten Momentaufnahme 560 in einen flüchtigen Speicher 524 einschließen. In einer Ausführungsform ist die Momentaufnahme 560 eine digital codierte Datenstruktur, die Softwarekomponenten-Zustandsinformation dauerhaft erhalten kann. In verschiedenen Ausführungsformen der Offenbarung braucht nicht jede Momentaufnahme 560 durch einen Winterschlafprozess erzeugt werden (das heißt, einige Momentaufnahmen 560 können ”bei Herstellung fertig sein”), und nicht jeder Wiederaufnahmeprozess braucht aus einem Winterschlafzustand erfolgen (das heißt, der Wiederaufnahmeprozess kann aus einem Schlafzustand erfolgen, aus einem Fehlerzustand und dergleichen).
  • Das Computergerät 510 kann eine Hardware-/Softwareeinheit sein, die die Ausführung des Betriebssystems 530 ermöglicht. Das Gerät 510 kann Hardware 512, Software 514, Firmware und dergleichen einschließen. In verschiedenen Ausführungsformen kann das Computergerät 510, aber muss nicht, ein mobiles Computergerät, ein Mobiltelefon, ein Zweiwegfunkgerät, ein Laptop, ein Desktop-Computer, ein Tablet-Computer, ein Personal Digital Assistant und dergleichen sein.
  • Die Hardware 512 kann, aber muss nicht, einen Prozessor 520, einen Bus 522, einen flüchtigen Speicher 524, einen nichtflüchtigen Speicher 526 und dergleichen einschließen. Zusätzliche Hardwarekomponenten 512 (nicht gezeigt) wie Eingabe-/Ausgabegeräte, Netzwerk-Sendeempfänger, Audiowandler und dergleichen können für das Computergerät 510 auch bestehen.
  • Die Software 514 kann, aber muss nicht, ein Betriebssystem 530, eine Systemsoftware 536, eine Momentaufnahme 560 und dergleichen einschließen.
  • Das Betriebssystem (OS) 530 kann, aber muss nicht, einen Kernel 532, ausführbaren Code 534 und dergleichen einschließen. Das Betriebssystem 530 kann, aber muss nicht, einen Grafik-Manager einschließen. In einer Ausführungsform kann das Betriebssystem 530, aber muss nicht, GNU LINUX, UNIX, WINDOWS® und andere Betriebssysteme einschließen, die einen Winterschlaf-/Wiederaufnahmeprozess implementieren.
  • Ausführbarer Code 534 stellt eine oder mehrere Anweisungsmengen zum Aufbauen einer Benutzerraum-Initialisierung zum Durchführen von Winterschlaf und Wiederaufnahme dar. Ausführbarer Code 534 kann, aber muss nicht, einen Prozessverwalter 542, einen Momentaufnahme-Handler 544, Einstellungen 546 und dergleichen einschließen. Die Funktionalität des Codes 534 kann, aber muss nicht, eine Leistungssteuerung des Geräts 510, eine Zustandsübergangsfunktionalität und dergleichen einschließen. Zum Beispiel kann der Code 534 ein Nutzerraumdienst sein, der in der Lage ist, Winterschlafvorbereitungshandlungen zu initiieren, die der Systemsoftware 536 zugeordnet sind.
  • Der Prozessverwalter 542 kann ein Teil eines ausführbaren Codes sein, der in der Lage ist, Winterschlaf- und Wiederaufnahmefunktionalität innerhalb eines Benutzerraums auszuführen. Verwalter-542-Funktionalität kann, aber muss nicht, Prozesskommunikation, Prozessregistrierung, Prozessderegistrierung und dergleichen einschließen. In einem Fall kann der Verwalter 542 benutzt werden, um einen Prozesszustand zu verfolgen. Beispielsweise kann der Verwalter 542 die Software 536 abfragen, um eine Winterschlafbereitschaft zu ermitteln. In einer Ausführungsform kann der Verwalter 542 konfiguriert werden, um auf Software-536-Fehler zu reagieren. In einer Konfiguration der Ausführungsform kann, wenn die Software 536 hängt, der Verwalter 542 eine angemessene historische Momentaufnahme bestimmen und automatisch den Prozess beenden. In der Konfiguration kann die historische Momentaufnahme genutzt werden, um den Prozess beim Wiederaufnehmen erneut zu starten. In einer anderen Konfiguration der Ausführungsform kann, wenn die Software 536 hängt, der Verwalter 542 eine Benachrichtigung an ein Nutzerinterface übermitteln. In einer Ausführungsform kann der Verwalter 542 Einstellungen 550 nutzen, um Winterschlaf- und/oder Wiederaufnahme zu steuern. Die Einstellungen 550 können Zustandsdaten darstellen, die für Softwarekomponenten gesichert sind, die auf einen Winterschlafprozess reagieren.
  • Der Momentaufnahme-Handler 544 kann eine Softwareeinheit zum Handhaben einer Momentaufnahme 560 sein. Handler-544-Funktionalität kann, aber muss nicht, eine Momentaufnahme-560-Erzeugung, eine Augenblicksaufnahme-560-Löschung, eine Momentaufnahme-560-Manipulation, eine Augenblicksaufname-560-Wiedergewinnung und dergleichen einschließen. Der Handler 544 kann herkömmliche und/oder proprietäre Mechanismen zum Erzeugen und/oder Verwalten der Momentaufnahme 560 nutzen. In einem Fall kann der Handler 544 eine Prozesskennung nutzen, um eine Momentaufnahme eindeutig mit einer Software zu erkennen. In einer Ausführungsform kann der Handler 544 herkömmliche und/oder proprietäre Kompressionsmechanismen einsetzen, um eine verringerte Momentaufnahmengröße zu ermöglichen. In der Ausführungsform kann der Handler 544 genutzt werden, um die Momentaufnahme 560 zu komprimieren und/oder zu optimieren.
  • Einstellungen 546 können einen oder mehrere Regelwerke zum Einrichten des Verhaltens des Geräts 510, des Systems 530, des ausführbaren Codes 534 und/oder der Systemsoftware 536 einschließen. Die Einstellungen 546 können, aber müssen nicht, einen Prozessverwalter 542, einen Momentaufnahme-Handler 544 und dergleichen einschließen. Die Einstellungen 546 können manuell und/oder automatisch bestimmt werden. In einem Fall können die Einstellungen 546 mittels einer Benutzerschnittstelle 562 konfiguriert werden.
  • Die obige Offenbarung erlaubt in Ausführung befindlichen Softwarekomponenten (Prozessen, Anwendungen, Treibern usw.), auf einen anhängigen Winterschlafprozess (oder irgendeinen Prozess, der eine Momentaufnahme erzeugt, so dass die Softwarekomponenten in einen Bereitschaftszustand für Wiederaufnahme eintreten können) aufmerksam zu werden. Diese zusätzliche Wahrnehmungsfähigkeit ermöglicht den Softwarekomponenten, in einen für Neustart passenden Punkt zu gelangen, der als Bereitschaftszustand für Wiederaufnahme bezeichnet wird. Diese Wahrnehmungsfähigkeit überwindet Probleme mit Anwendungen, die in einem beliebigen Zustand eingefroren werden. Diese Wahrnehmungsfähigkeit (und Vor-Winterschlaf-Aktivitäten, die in Reaktion erfolgen) erlauben der Offenbarung, Probleme mit Änderungen an Hardware und/oder mechanischen Steuerungen zu überwinden, die für ein Gerät auftreten, während es sich in einem Winterschlafzustand befindet.
  • Anwender legen Wert darauf, dass in einem typischen Winterschlafprozess Treiber angewiesen werden, in einen Ruhezustand zu wechseln. Die Offenbarung nähert sich dem Versetzen in den Winterschlaf von der entgegengesetzten Richtung und ermöglicht Systemsoftwarekomponenten, dem Kernel mitzuteilen, dass sie bereit sind, eingefroren zu werden, nachdem alle Vor-Einfrier-Initialisierungs-Handlungen (Vor-Winterschlafaktivitäten) ausgeführt wurden. In einer Ausführungsform kann eine Momentaufnahme automatisch beim Systemeinschalten oder zur Hochlaufzeit erzeugt werden, in der Annahme, dass keine Momentaufnahme für ein Computergerät vorhanden ist. In einer Ausführungsform kann eine gesicherte Momentaufnahme genutzt werden, um schnell eine Wiederherstellung aus einem Fehlerzustand mittels Wiedereinschaltens und Wiederaufnehmens aus der gesicherten Momentaufnahme durchzuführen.
  • Zusätzlich können in einer Ausführungsform Merkmale implementiert werden, die ermöglichen, eingefrorene Systemsoftwarekomponenten in einer festgelegten Reihenfolge aufzutauen, wodurch eine aus Nutzersicht wahrgenommene Wiederaufnahmedauer verringert werden kann und Optimierungen für Parallelverarbeitung ermöglicht werden können. Somit erfassen Ausführungsformen der Offenbarung Einzelheiten entsprechend der Reihenfolge, in der Systemsoftwarekomponenten aufgeweckt werden müssen. Außerdem kann eine Momentaufnahme während Ordnungsarbeiten durchgeführt werden (Ausschaltvorgänge können, aber brauchen nicht, erfolgen), so dass, wenn ein Computergerät später wiederaufgenommen wird, diese Reihenfolge befolgt werden kann. Damit wird für eine maximale Menge von Paralleltätigkeiten die Aufweckdauer minimiert. In einer Ausführungsform können ”bereits bei Herstellung fertige” Momentaufnahmen in einer Fabrik (oder danach) für eine besondere Gerätekonfiguration erzeugt werden. Bereis bei Herstellung fertige Momentaufnahmen können manuell, halbmanuell oder automatisch erzeugt werden, um zu gewährleisten, dass sie in verschiedenen betrachteten Ausführungsformen hoch optimiert sind.
  • In der vorhergehenden Beschreibung wurden besondere Ausführungsformen beschrieben. Jedoch weiß eine Person mit durchschnittlichen Fähigkeiten auf dem Fachgebiet zu würdigen, dass verschiedene Abwandlungen und Änderungen vorgenommen werden können, ohne von dem Rahmen der Erfindung abzuweichen, wie sie in den unten aufgeführten Ansprüchen dargelegt ist. Entsprechend sind die Beschreibung und die Zeichnungen eher in einem veranschaulichenden als in einem einschränkenden Sinn zu verstehen, und alle solche Abwandlungen sollen in dem Rahmen der vorliegenden Lehren eingeschlossen sein.
  • Die Nutzen, Vorteile und Lösungen von Problemen und jedes Teil/alle Teile, die irgendeinen Nutzen, Vorteil oder Lösung hervorrufen können oder deutlicher werden lassen, dürfen nicht als entscheidende, notwendige oder wesentliche Merkmale oder Teile irgendeines oder aller Ansprüche ausgelegt werden. Die Erfindung ist ausschließlich durch die anhängenden Ansprüche einschließlich etwaiger Abwandlungen definiert, die während der Anhängigkeit dieser Anmeldung erfolgen, und durch alle Äquivalente jener Ansprüche, wie veröffentlicht.
  • Außerdem können in diesem Dokument relative Ausdrücke wie erster und zweiter, oben und unten, und dergleichen ausschließlich dazu benutzt werden, eine Einheit oder Handlung von einer anderen Einheit oder Handlung zu unterscheiden, ohne notwendigerweise irgendeine tatsächliche solche Beziehung oder Reihenfolge zwischen solchen Einheiten oder Handlungen zu verlangen oder zu unterstellen. Die Ausdrücke ”umfasst”, ”umfassend”, ”hat” oder ”weist auf”, ”aufweisend”, ”schließt ein”, ”einschließend”, ”beinhaltet”, ”beinhaltend” oder jede andere Abwandlung davon sollen eine nicht-ausschließliche Einbeziehung darstellen, so dass ein Prozess, Verfahren, Gegenstand oder Gerät, der oder das eine Reihe von Teilen umfasst, aufweist, einschließt, beinhaltet nicht nur jene Teile einschließt, sondern andere Teile einschließen kann, die nicht ausdrücklich aufgezählt sind oder von Natur aus zu so einem Prozess, Verfahren, Gegenstand oder Gerät gehören. Ein Teil, dem die Formulierung ”umfasst ... ein”, ”weist ein ... auf”, ”schließt ein ... ein”, ”beinhaltet ein ...” vorausgeht, schließt nicht – ohne weitere Einschränkungen – das Vorhandensein von zusätzlichen identischen Teilen in dem Prozess, Verfahren, Artikel oder Gerät aus, das das Teil umfasst, aufweist, einschließt, beinhaltet. Die Ausdrücke ”ein”, ”eine” und ”einer” sind definiert als ein oder mehrere, sofern hier nicht ausdrücklich anders angegeben. Die Ausdrücke ”substantiell”, ”wesentlich”, ”näherungsweise”, ”ungefähr” oder jede andere Version davon sind nahe dem definiert, wie sie von jemandem mit durchschnittlichen Fähigkeiten auf dem Fachgebiet verstanden werden; und in einer nicht einschränkenden Ausführungsform ist der Ausdruck als innerhalb 10% liegend definiert, in einer anderen Ausführungsform innerhalb 5%, in einer anderen Ausführungsform innerhalb 1% und in einer anderen Ausführungsform innerhalb 0,5%. Der Ausdruck ”gekuppelt” wie hier benutzt, ist definiert als verbunden, obwohl nicht notwendigerweise direkt und nicht notwendigerweise mechanisch. Ein Gerät oder eine Struktur, die in einer bestimmten Weise ”konfiguriert ist”, ist in wenigstens jener Weise konfiguriert, aber kann auch in Weisen konfiguriert sein, die nicht aufgezählt sind.
  • Es ist zu würdigen, dass einige Ausführungsformen aus einem oder mehreren generischen oder spezialisierten Prozessoren (oder ”Verarbeitungsvorrichtungen”) wie Mikroprozessoren, digitalen Signalprozessoren, kundenspezifischen Prozessoren und Field Programmable Gate Arrays (FPGAs) und besonderen gespeicherten Programmanweisungen (einschließlich sowohl Software wie auch Firmware) bestehen können, die den einen oder mehrere Prozessoren steuern, um in Verbindung mit bestimmten prozessorfreien Schaltkreisen, einige, die meisten oder alle Funktionen des Verfahrens und/oder des Geräts zu implementieren, das hier beschrieben ist. Alternativ könnten einige oder alle Funktionen durch eine Zustandsmaschine implementiert werden, die keine gespeicherten Programmanweisungen aufweist, oder in einer oder mehreren anwendungsspezifischen integrierten Schaltungen (ASICs), in denen jede Funktion oder einige Kombinationen von bestimmten der Funktionen als benutzerspezifische Logik implementiert sind. Natürlich könnte eine Kombination der zwei Herangehensweisen genutzt werden.
  • Darüber hinaus kann eine Ausführungsform als ein computer-lesbares Speichermedium implementiert werden, das darauf gespeicherten computer-lesbaren Code aufweist, um einen Computer (der zum Beispiel einen Prozessor umfasst) zu programmieren, um ein Verfahren, wie hier beschrieben und beansprucht, auszuführen. Beispiele für solche computer-lesbaren Speichermedien schließen Folgendes ein, sind aber nicht beschränkt darauf: eine Festplatte, eine CD-ROM, ein optisches Speichergerät, ein magnetisches Speichergerät, ein ROM (Nur-Lese-Speicher), ein PROM (programmierbarer Nur-Lese-Speicher), ein EPROM (löschbarer programmierbarer Nur-Lese-Speicher), ein EEPROM (elektrisch löschbarer programmierbarer Nur-Lese-Speicher) und einen Flash-Speicher. Des Weiteren wird erwartet, dass jemand mit durchschnittlichem Sachverstand, möglicherweise nicht ohne erhebliche Anstrengungen und durch viele Entwurfsmöglichkeiten angeregt, beispielsweise verfügbare Zeit, gegenwärtige Technologie und wirtschaftliche Überlegungen, ohne Weiteres in der Lage sein wird, solche Programmanweisungen und Programme und integrierten Schaltkreise (ICs) mit minimalem Experimentieren zu erzeugen, wenn er durch die Konzepte und Prinzipien, die hier offenbart sind, angeleitet wird.
  • Die Zusammenfassung der Beschreibung ist bereitgestellt, um dem Leser zu ermöglichen, schnell die Art der technischen Offenbarung zu ermitteln. Sie wird eingereicht in der Annahme, dass sie nicht benutzt wird, um den Rahmen oder die Bedeutung der Ansprüche auszulegen oder zu beschränken. Außerdem kann in der vorausgehenden detaillierten Beschreibung gesehen werden, dass zum Zwecke einer Straffung der Offenbarung verschiedene Merkmale in verschiedenen Ausführungsformen zusammengesellt wurden. Dieses Verfahren der Offenbarung ist nicht als eine Wiederspiegelung einer Absicht auszulegen, dass die beanspruchten Ausführungsformen mehr Merkmale erfordern würden, als ausdrücklich in jedem Anspruch genannt. Es ist eher so, wie die folgenden Ansprüche wiederspiegeln, dass erfinderische Materie in weniger besteht als allen Merkmalen einer einzelnen offenbarten Ausführungsform. Somit werden die folgenden Ansprüche hiermit in die detaillierte Beschreibung einbezogen, wobei jeder Anspruch für sich alleine als ein getrennt beanspruchter Gegenstand steht.

Claims (20)

  1. Verfahren zum Versetzen in einen Winterschlaf (hibernation) und Wiederaufnehmen von Systemsoftware, umfassend: vor Versetzen eines Computergerätes in den Winterschlaf: Benachrichtigen von Systemsoftwarekomponenten über einen bevorstehenden Winterschlafprozess; wenigstens ein Teil der Systemsoftwarekomponenten führt eine Vor-Winterschlaf-Aktivität aus, um die Systemsoftwarekomponente in einen Bereitschaftszustand für Wiederaufnahme zu versetzen; und jede Systemsoftwarekomponente zeigt an, dass die Systemsoftwarekomponente für Winterschlaf bereit ist, wobei der Winterschlafprozess nicht abgeschlossen wird, um eine Momentaufnahme der Systemsoftwarekomponenten in dem Bereitschaftszustand für Wiederaufnahme zu erzeugen, bis jede der Systemsoftwarekomponenten angezeigt hat, dass sie für Winterschlaf bereit ist.
  2. Verfahren nach Anspruch 1, außerdem umfassend: in Reaktion auf Empfangen einer Anzeige von jeder der Systemsoftwarekomponenten, die anzeigt, dass jede der Systemsoftwarekomponenten für Winterschlaf bereit ist: Abschließen des Winterschlafprozesses, der eine Momentaufnahme in einem nichtflüchtigen Speicher erzeugt, wobei die Momentaufnahme Zustandsinformation für jede der Systemsoftwarekomponenten sichert, wobei die Zustandsinformation für den Bereitschaftszustand für Wiederaufnahme der Systemsoftwarekomponenten vorgesehen ist.
  3. Verfahren nach Anspruch 2, außerdem umfassend: in Reaktion auf Sichern der Momentaufnahme in dem nichtflüchtigen Speicher: Ausschalten des Computergeräts.
  4. Verfahren nach Anspruch 2, außerdem umfassend: Empfangen einer Anfrage, eine Wiederaufnahme des Computergeräts durchzuführen, das in den Winterschlaf versetzt wurde; und Laden der Zustandsinformation aus der Momentaufnahme in einen flüchtigen Speicher während eines Wiederaufnahmeprozesses, der die Systemsoftwarekomponenten in den Bereitschaftszustand für Wiederaufnahme versetzt.
  5. Verfahren nach Anspruch 1, wobei das Benachrichtigen der Systemsoftwarekomponenten über eine Anwendungsprogrammierschnittstelle (API) erfolgt, wobei das Anzeigen über die Anwendungsprogrammierschnittstelle (API) erfolgt.
  6. Verfahren nach Anspruch 1, wobei die Systemsoftwarekomponenten in einem Benutzerraum eines Betriebssystems laufen, wobei der Winterschlafprozess in einem Kernel-Raum des Betriebssystems initiiert und abgeschlossen wird.
  7. Verfahren nach Anspruch 6, wobei winterschlaf- und wiederaufnahmespezifische Kommunikationen zwischen dem Kernel-Raum und dem Benutzerraum über eine Anwendungsprogrammierschnittstelle des Betriebssystems erfolgen.
  8. Verfahren nach Anspruch 1, wobei für wenigstens eine der Systemsoftwarekomponenten der Bereitschaftszustand für Wiederaufnahme ein Zustand ist, der sofort besteht, wenn ein Wert ermittelt wird, der mit einer mechanischen Steuerung verbunden ist, wobei beim Wiederaufnehmen die wenigstens eine Systemsoftwarekomponente die mechanische Steuerung überprüft, um den Wert zu ermitteln, bevor der Wert von jener Systemsoftwarekomponente genutzt wird oder sie versucht, den Wert zu nutzen.
  9. Verfahren nach Anspruch 1, wobei für wenigstens eine der Systemsoftwarekomponenten der Bereitschaftszustand für Wiederaufnahme ein Zustand ist, in dem Verbindungen auf ein Vorhandensein oder Nichtvorhandensein einer Hardware-Ressource überprüft oder initialisiert werden, von der der Betrieb jener Systemsoftwarekomponente abhängig ist, wobei die Hardware-Ressource fähig ist, während einer Zeitspanne an das Computergerät angeschlossen und von ihm getrennt zu werden, in der sich das Computergerät infolge des Winterschlafprozesses in einem Ausschalt-Zustand befindet.
  10. Verfahren nach Anspruch 1, wobei die Systemsoftwarekomponenten die Benachrichtigung über den bevorstehenden Winterschlafprozess empfangen, während sie sich in einem beliebigen Zustand befinden, wobei, wenn die Momentaufnahme Zustandsinformation der Systemsoftwarekomponenten in dem beliebigen Zustand speichern würde, beim Wiederaufnehmen wenigstens eine fehlerhafte Handlung erfolgen würde, wobei, wenn eine Wiederaufnahme des Computergeräts aus der erzeugten Momentaufnahme durchführt wird, die gespeicherte Zustandsinformation der Systemsoftwarekomponenten in dem Bereitschaftszustand für Wiederaufnahme enthält, keine fehlerhafte Handlung beim Wiederaufnehmen erfolgt.
  11. Verfahren nach Anspruch 1, außerdem umfassend: Erkennen während eines Hochfahrprozesses des Computergeräts eines Fehlens einer gespeicherten Momentaufnahme; und automatisches Initiieren des Versetzens in den Winterschlaf, um die Momentaufnahme zu erzeugen, um das Fehlen zu überwinden, wobei das automatisch initiierte Versetzen in den Winterschlaf das Computergerät nicht abschaltet oder das Computergerät in einen Energiesparmodus versetzt.
  12. Verfahren nach Anspruch 1, außerdem umfassend: automatisches Erkennen eines Fehlers oder problematischen Zustands in laufender Software des Computergeräts; und in Reaktion auf Erkennen des Fehlers oder des problematischen Zustands der laufenden Software: Reinitialisieren des Computergeräts aus der Momentaufnahme, wobei sich das Computergerät von dem Fehler oder des problematischen Zustands in einer verhältnismäßig schnellen Weise mittels der Momentaufnahme zum Wiederherstellen wiederherstellt.
  13. Verfahren nach Anspruch 1, wobei der Bereitschaftszustand für Wiederaufnahme für die Systemsoftwarekomponenten ein Zustand ist, in dem jede der Systemsoftwarekomponenten vor Wiederaufnehmen auf eine Auftaunachricht wartet, wobei die Auftaunachricht während eines Wiederaufnahmeprozesses übermittelt wird, der aus der erzeugten Momentaufnahme wiederaufnimmt.
  14. Verfahren nach Anspruch 13, außerdem umfassend: Initialisieren eines Wiederaufnahmeprozesses aus der erzeugten Momentaufnahme; während des Wiederaufnahmeprozesses: Übermitteln unterschiedlicher Auftaunachrichten zu unterschiedlichen Zeiten zu den Systemsoftwarekomponenten, wobei jede auf eine Auftaunachricht wartet, wenn sie sich in dem Bereitschaftszustand für Wiederaufnahme befindet, wodurch ein Zeitablauf für die Systemsoftwarekomponenten gesteuert wird, wobei sich der Zeitablauf auf eine Geschwindigkeit bezieht, mit der die Systemsoftwarekomponenten aus dem Bereitschaftszustand für Wiederaufnahme im Verhältnis zu anderen der Systemsoftwarekomponenten wiederhergestellt werden.
  15. Verfahren nach Anspruch 1, außerdem umfassend: Empfangen einer Anfrage, um das Computergerät wiederaufzunehmen; und Ausführen eines mehrstufigen Wiederaufnahmeprozesses mittels der Zustandsinformation aus der Momentaufnahme, wobei der mehrstufige Wiederaufnahmeprozess Gruppierungen von Endnutzer-Funktionalität in unterschiedlichen Stufen bereitstellt durch Auftauen der Systemsoftwarekomponenten in einer Zeitabfolge, wodurch sichergestellt wird, dass eine Teilmenge der Endnutzer-Funktionalität für das Computergerät gemäß bestimmten Stufen des mehrstufigen Prozesses bereitgestellt wird, obwohl der mehrstufige Wiederaufnahmeprozess noch zu einer Zeit abschließen muss, zu der die Teilmenge der Endnutzer-Funktionalität zur Nutzung durch den Endnutzer erstmals verfügbar ist.
  16. Computerprogrammprodukt umfassend: ein oder mehrere computerlesbare Speichergeräte; Programmanweisungen, die auf wenigstens einem des einen oder der mehreren Speichergeräte gespeichert sind, um vor Versetzen eines Computergeräts in den Winterschlaf Systemsoftwarekomponenten über einen bevorstehenden Winterschlafprozess zu benachrichtigen; Programmanweisungen, die auf wenigstens einem des einen oder der mehreren Speichergeräte gespeichert sind, um wenigstens einen Teil der Systemsoftwarekomponenten zu veranlassen, eine Vor-Winterschlaf-Aktivität auszuführen, um jene Systemsoftwarekomponente in einen Bereitschaftszustand für Wiederaufnahme zu versetzen; Programmanweisungen, die auf wenigstens einem des einen oder der mehreren Speichergeräte gespeichert sind, um jede Systemsoftwarekomponente zu veranlassen, anzuzeigen, dass jene Systemsoftwarekomponente für Winterschlaf bereit ist, wobei der Winterschlafprozess nicht abgeschlossen wird, um eine Momentaufnahme der Systemsoftwarekomponenten in dem Bereitschaftszustand für Wiederaufnahme zu erzeugen, bis jede der Systemsoftwarekomponenten angezeigt hat, dass sie für Winterschlaf bereit ist.
  17. Computerprogrammprodukt nach Anspruch 16, außerdem umfassend: Programmanweisungen, die auf wenigstens einem des einen oder der mehreren Speichergeräte gespeichert sind, um in Reaktion auf Empfangen einer Anzeige von jeder der Systemsoftwarekomponenten, die anzeigt, dass jede der Systemsoftwarekomponenten für Winterschlaf bereit ist, den Winterschlafprozess abzuschließen, welcher eine Momentaufnahme in einem nichtflüchtigen Speicher erzeugt, wobei die Momentaufnahme Zustandsinformation für jede der Systemsoftwarekomponenten sichert, wobei die Zustandsinformation für den Bereitschaftszustand für Wiederaufnahme der Systemsoftwarekomponenten vorgesehen ist, wobei die Systemsoftwarekomponenten in einem Benutzerraum eines Betriebssystems laufen, wobei der Winterschlafprozess innerhalb eines Kernel-Raums des Betriebssystems initiiert und abgeschlossen wird, wobei winterschlaf- und wiederaufnahmespezifische Kommunikationen zwischen dem Kernel-Raum und dem Nutzer-Raum über eine Anwendungsprogrammierschnittstelle (API) des Betriebssystems erfolgen.
  18. Computersystem zum Versetzen in den Winterschlaf und Wiederaufnehmen von Systemsoftware, umfassend: einen oder mehrere Prozessoren, einen oder mehrere computerlesbare Speicher und einen oder mehrere computerlesbare Speichergeräte; Programmanweisungen, die auf wenigstens einem des einen oder der mehreren Speichergeräte zum Ausführen durch wenigstens einen des einen oder der mehreren Prozessoren über wenigstens einen des einen oder der mehreren Speicher gespeichert sind, um vor Versetzen eines Computergeräts in den Winterschlaf Systemsoftwarekomponenten über einen bevorstehenden Winterschlafprozess zu benachrichtigen; Programmanweisungen, die auf wenigstens einem des einen oder der mehreren Speichergeräte zum Ausführen durch wenigstens einen des einen oder der mehreren Prozessoren über wenigstens einen des einen oder der mehreren Speicher gespeichert sind, um wenigstens einen Teil der Systemsoftwarekomponenten zu veranlassen, eine Vor-Winterschlaf-Aktivität auszuführen, um jene Systemsoftwarekomponente in einen Bereitschaftszustand für Wiederaufnahme zu versetzen; Programmanweisungen, die auf wenigstens einem des einen oder der mehreren Speichergeräte zum Ausführen durch wenigstens einen des einen oder der mehreren Prozessoren mittels wenigstens eines des einen oder der mehreren Speicher gespeichert sind, um jede Systemsoftwarekomponente zu veranlassen, anzuzeigen, dass jene Systemsoftwarekomponente für Winterschlaf bereit ist, wobei der Winterschlafprozess nicht abgeschlossen wird, um eine Momentaufnahme der Systemsoftwarekomponenten in dem Bereitschaftszustand für Wiederaufnahme zu erzeugen, bis jede der Systemsoftwarekomponenten angezeigt hat, dass sie für Winterschlaf bereit ist.
  19. Computersystem nach Anspruch 18, wobei für wenigstens eine der Systemsoftwarekomponenten der Bereitschaftszustand für Wiederaufnahme ein Zustand ist, für den sofort ein Wert ermittelt wird, der mit einer mechanischen Steuerung verbunden ist, wobei beim Wiederaufnehmen die wenigstens eine Systemsoftwarekomponente die mechanische Steuerung überprüft, um den Wert zu ermitteln, bevor der Wert durch jene Systemsoftwarekomponente genutzt wird oder sie versucht, ihn zu nutzen.
  20. Computersystem nach Anspruch 18, wobei die Systemsoftwarekomponenten die Benachrichtigung über den bevorstehenden Winterschlafprozess empfangen, während sie sich in einem beliebigen Zustand befinden, wobei, wenn die Momentaufnahme Zustandsinformation der Systemsoftwarekomponenten in dem beliebigen Zustand speichern würde, beim Wiederaufnehmen wenigstens eine fehlerhafte Handlung erfolgen würde, wobei, wenn eine Wiederaufnahme des Computergeräts aus der erzeugten Momentaufnahme durchgeführt wird, die gespeicherte Zustandsinformation der Systemsoftwarekomponenten in dem Bereitschaftszustand für Wiederaufnahme beinhaltet, beim Wiederaufnehmen keine fehlerhafte Handlung erfolgt.
DE112013001805.5T 2012-03-30 2013-03-04 Verfahren und Gerät zum Verbessern eines Winterschlaf- und Wiederaufnahmeprozesses mittels Benutzerraum-Synchronisation Pending DE112013001805T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/435,991 US8977879B2 (en) 2012-03-30 2012-03-30 Method and apparatus for enhancing a multi-stage hibernate and resume process
US13/435,991 2012-03-30
PCT/US2013/028895 WO2013148074A1 (en) 2012-03-30 2013-03-04 Method and apparatus for enhancing a hibernate and resume process using user space synchronization

Publications (1)

Publication Number Publication Date
DE112013001805T5 true DE112013001805T5 (de) 2014-12-11

Family

ID=47913578

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013001805.5T Pending DE112013001805T5 (de) 2012-03-30 2013-03-04 Verfahren und Gerät zum Verbessern eines Winterschlaf- und Wiederaufnahmeprozesses mittels Benutzerraum-Synchronisation

Country Status (8)

Country Link
US (2) US8977879B2 (de)
KR (1) KR101689450B1 (de)
CN (1) CN104220985B (de)
AU (1) AU2013240458B2 (de)
CA (1) CA2868322C (de)
DE (1) DE112013001805T5 (de)
GB (1) GB2516180B (de)
WO (1) WO2013148074A1 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110126186A1 (en) * 2009-11-23 2011-05-26 Srinivasan Kattiganehalli Y Appliance maintenance in computing system environment
JP5681689B2 (ja) * 2012-11-16 2015-03-11 レノボ・シンガポール・プライベート・リミテッド 省電力状態からの復帰時間を短縮する方法およびコンピュータ
US9223388B2 (en) * 2013-01-29 2015-12-29 Hewlett Packard Enterprise Development Lp Power state transition saving session information
JP6087662B2 (ja) * 2013-02-28 2017-03-01 株式会社東芝 制御装置、制御プログラム及び情報処理システム
US20160196145A1 (en) * 2013-08-08 2016-07-07 Hewlett-Packard Development Company, L.P. Boot from modified factory image
CN103678040A (zh) * 2013-12-06 2014-03-26 北京明朝万达科技有限公司 一种基于计算机系统的快照和回退方法及系统
JP6399916B2 (ja) * 2014-01-20 2018-10-03 キヤノン株式会社 情報処理装置およびその制御方法
KR102101308B1 (ko) * 2014-02-05 2020-04-16 애플 인크. 제어기와 액세서리 사이의 통신을 위한 균일한 통신 프로토콜
US9430407B2 (en) * 2014-10-31 2016-08-30 Qualcomm Incorporated Method and system for secure storage and retrieval of machine state
CN104615465B (zh) * 2015-01-30 2019-04-23 深圳市金立通信设备有限公司 一种终端
CN105589711B (zh) * 2015-07-07 2019-02-22 新华三技术有限公司 一种设备升级方法和装置
CN106775609A (zh) * 2015-11-19 2017-05-31 飞思卡尔半导体公司 用于减少休眠及恢复时间的系统及方法
JP6665520B2 (ja) * 2015-12-17 2020-03-13 コニカミノルタ株式会社 画像形成装置およびプログラム
US10512053B2 (en) * 2016-05-10 2019-12-17 Servicenow, Inc. System and method for selectively hibernating and restarting a node of an application instance
JP6747283B2 (ja) * 2016-12-27 2020-08-26 コニカミノルタ株式会社 画像処理装置、起動方法および起動プログラム
JP6931184B2 (ja) * 2017-05-16 2021-09-01 コニカミノルタ株式会社 画像形成装置およびプログラム
US10649515B2 (en) * 2018-02-12 2020-05-12 Saudi Arabian Oil Company Power management of computing and communications systems during power fluctuation and sudden power failure events
US10671407B2 (en) 2018-06-07 2020-06-02 Oracle International Corporation Suspending and resuming a card computing device
US10705927B2 (en) * 2018-07-19 2020-07-07 Hewlett Packard Enterprise Development Lp Freeze a volume of a replication set and unfreeze the volume based on at least one of a snapshot permit message, a snapshot abort message, and expiration of a timeout
US10896093B2 (en) 2019-01-15 2021-01-19 International Business Machines Corporation System reboot maintenance
US11467858B2 (en) 2019-03-27 2022-10-11 Amazon Technologies, Inc. Techniques for performing continuation workflows
US11366681B2 (en) * 2019-03-27 2022-06-21 Amazon Technologies, Inc. Chaining virtual machines
US11163602B2 (en) * 2019-10-18 2021-11-02 EMC IP Holding Company LLC Migration from an asynchronous execution model to a synchronous execution model
KR20220017331A (ko) * 2020-08-04 2022-02-11 삼성전자주식회사 재부팅을 하는 방법 및 이를 지원하는 전자 장치
CN112026788A (zh) * 2020-09-07 2020-12-04 湖南行必达网联科技有限公司 车机电源管理方法及装置、电子设备、存储介质
US11467850B2 (en) 2020-11-11 2022-10-11 Micron Technology, Inc. Computing device reboot
CN113360257B (zh) * 2021-04-16 2022-12-20 山东英信计算机技术有限公司 一种基于bios的信息操作方法、装置、存储介质及设备
CN114253617A (zh) * 2021-12-20 2022-03-29 先临三维科技股份有限公司 一种系统组件休眠方法和装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4688574A (en) * 1985-06-17 1987-08-25 Minnesota Mining And Manufacturing Company Electrical stimulator for biological tissue having mode control
US5784628A (en) * 1996-03-12 1998-07-21 Microsoft Corporation Method and system for controlling power consumption in a computer system
US5974473A (en) * 1996-06-14 1999-10-26 Texas Instruments Incorporated System for controlling insertion, locking, and removal of modules by removing plurality of device drivers for module to be removed from BIOS and informing BIOS of module removal
SG83684A1 (en) 1998-07-07 2001-10-16 Compaq Computer Corp Computer system performing machine specific tasks before going to a low power state
US6636963B1 (en) 1999-12-30 2003-10-21 Cardiac Pacemakers, Inc. Quick starting for microprocessor-based system by retrieving a target state memory image and a target state data structure from an image storage medium
US7000102B2 (en) 2001-06-29 2006-02-14 Intel Corporation Platform and method for supporting hibernate operations
US20030101312A1 (en) 2001-11-26 2003-05-29 Doan Trung T. Machine state storage apparatus and method
JP4743479B2 (ja) * 2004-12-03 2011-08-10 株式会社ソニー・コンピュータエンタテインメント 電子装置および電子装置の制御方法
US20070033356A1 (en) 2005-08-03 2007-02-08 Boris Erlikhman System for Enabling Secure and Automatic Data Backup and Instant Recovery
US20070038850A1 (en) 2005-08-10 2007-02-15 Matthews Jeanna N System boot and resume time reduction method
JP4622770B2 (ja) * 2005-09-20 2011-02-02 ブラザー工業株式会社 通信システム、情報処理装置、周辺装置、及び通信方法
US7533277B2 (en) * 2006-04-04 2009-05-12 Microsoft Corporation Operating system shut down
US7519808B2 (en) * 2006-04-25 2009-04-14 Apple Inc. Method and apparatus for quickly reanimating devices from hibernation
US8069362B2 (en) * 2008-02-26 2011-11-29 Sap Ag Automated electrical power savings in virtualization environments
JP5365051B2 (ja) * 2008-03-31 2013-12-11 富士通株式会社 管理プログラム、管理装置及び管理方法
US20100318746A1 (en) * 2009-06-12 2010-12-16 Seakr Engineering, Incorporated Memory change track logging
US8464038B2 (en) * 2009-10-13 2013-06-11 Google Inc. Computing device with developer mode
KR20120041582A (ko) * 2010-10-21 2012-05-02 삼성전자주식회사 스냅샷 이미지 분할 처리 장치 및 스냅샷 이미지 분할 처리 방법
TWI437395B (zh) * 2010-10-22 2014-05-11 Chan Li Machinery Co Ltd Optimized PID Control Method for Process Equipment System
US9032194B2 (en) 2010-12-06 2015-05-12 Microsoft Technology Licensing, Llc Fast computer startup
US8996194B2 (en) * 2011-01-03 2015-03-31 Ems Technologies, Inc. Vehicle mount computer with configurable ignition switch behavior
KR102023146B1 (ko) 2011-07-26 2019-09-20 마벨 월드 트레이드 리미티드 인스턴트 온을 갖는 제로 전력 하이버네이션 모드
CN104158531A (zh) * 2013-05-13 2014-11-19 鸿富锦精密工业(深圳)有限公司 电子装置

Also Published As

Publication number Publication date
WO2013148074A1 (en) 2013-10-03
CA2868322A1 (en) 2013-10-02
GB201417238D0 (en) 2014-11-12
CA2868322C (en) 2017-05-30
CN104220985A (zh) 2014-12-17
US9411608B2 (en) 2016-08-09
AU2013240458B2 (en) 2016-07-21
KR101689450B1 (ko) 2016-12-23
US20150143099A1 (en) 2015-05-21
GB2516180B (en) 2020-01-29
CN104220985B (zh) 2017-11-17
US20130262898A1 (en) 2013-10-03
WO2013148074A4 (en) 2013-11-07
GB2516180A (en) 2015-01-14
KR20140131981A (ko) 2014-11-14
US8977879B2 (en) 2015-03-10
AU2013240458A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
DE112013001805T5 (de) Verfahren und Gerät zum Verbessern eines Winterschlaf- und Wiederaufnahmeprozesses mittels Benutzerraum-Synchronisation
DE102016200514B4 (de) Verfahren und Vorrichtungen für gesteuerte Wiederherstellung von Fehlerinformationen zwischen unabhängig voneinander betreibbaren Prozessoren
DE112008003520B4 (de) System und Verfahren für einen schnellen Ruhezustand einer Plattform und die Wiederaufnahme
DE102005001451B4 (de) Informationsverarbeitungsvorrichtung und Spannungsversorgungs-Steuerungsverfahren
DE69635409T2 (de) Ein rechnersystem mit unbewachter auf-anfrage-verfügbarkeit
JP6132009B2 (ja) システム変更後におけるコンピューティング装置の適切な動作を確認するための方法及びシステム
DE112013007279T5 (de) Ereignisausgelöstes speichern von Daten in einem nicht flüchtigen Speicher
DE112005002404T5 (de) Selbstüberwachung und Aktualisierung von Firmware über ein Netzwerk
EP2400387B1 (de) Verfahren zur Performanceverbesserung von Computern
DE112012005118T5 (de) Sichern von Firmware während der Initialisierung einer Einheit
DE112013002254T5 (de) Wiederherstellen aus einer Altbetriebssystemumgebung zu einer UEFI-Preboot-Umgebung
DE112011105700T5 (de) Schneller Ruhezustand- und schnelle Wiederinbetriebnahme für eine Plattform von Computersystem
DE102012212441A1 (de) System und Verfahren zum Betreten und Verlassen eines Schlafmodus in einem Graphikuntersystem
DE202009011250U1 (de) Elektronisches Stromspargerät für Computer-Hauptplatinen (Motherboards) im "Standby-Speicher"-Zustand ("Suspend to Memory"-Status)
DE102019112836A1 (de) Einschalttasten-override für persistenzspeichergestützte plattformen
DE112020001693T5 (de) Autonomer kernperimeter für prozessorzustände mit geringer leistung
DE102020133809A1 (de) Schnittstelle und warm-rücksetzpfad für speichervorrichtungsfirmware-upgrades
JP2010224847A (ja) 計算機システム及び設定管理方法
DE112019005498T5 (de) Datenverbindung zwischen flüchtigem speicher und nichtflüchtigem speicher
EP2159667B1 (de) Computersystem und Verfahren zum Energie sparenden Betrieb eines Computersystems
US8468388B2 (en) Restoring programs after operating system failure
DE112017004917T5 (de) Speichermonitor
US8656149B2 (en) Rapid activation of service management processor subsystem for server device
CN111078452A (zh) 一种bmc固件镜像恢复方法与装置
EP2596429B1 (de) Verfahren zum ausführen eines dienstprogramms, computersystem und computerprogrammprodukt

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: MOTOROLA SOLUTIONS, INC., CHICAGO, US

Free format text: FORMER OWNER: MOTOROLA SOLUTIONS, INC., SCHAUMBURG, ILL., US

R082 Change of representative

Representative=s name: SCHUMACHER & WILLSAU PATENTANWALTSGESELLSCHAFT, DE

R016 Response to examination communication
R016 Response to examination communication