DE69635409T2 - Ein rechnersystem mit unbewachter auf-anfrage-verfügbarkeit - Google Patents

Ein rechnersystem mit unbewachter auf-anfrage-verfügbarkeit Download PDF

Info

Publication number
DE69635409T2
DE69635409T2 DE69635409T DE69635409T DE69635409T2 DE 69635409 T2 DE69635409 T2 DE 69635409T2 DE 69635409 T DE69635409 T DE 69635409T DE 69635409 T DE69635409 T DE 69635409T DE 69635409 T2 DE69635409 T2 DE 69635409T2
Authority
DE
Germany
Prior art keywords
instanton
application
registration
application process
service broker
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.)
Expired - Lifetime
Application number
DE69635409T
Other languages
English (en)
Other versions
DE69635409D1 (de
Inventor
T. Stephen CHOU
J. Russell FENGER
J. Mohan KUMAR
B. Victor LORTZ
L. Benjamin MANNY
Mil Travnicek
Chih-Kan Wang
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE69635409D1 publication Critical patent/DE69635409D1/de
Application granted granted Critical
Publication of DE69635409T2 publication Critical patent/DE69635409T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3265Power saving in display device
    • 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • 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/1441Resetting or repowering
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft das Gebiet der Computersysteme. Insbesondere bezieht sich diese Erfindung auf das Zulassen einer kontinuierlichen Verfügbarkeit eines Computersystems für Anwender.
  • Hintergrund
  • Die Computertechnologie macht ständig Fortschritte. Es werden Computersysteme mit ständig verbesserter Leistungsfähigkeit bereitgestellt. Diese verbesserte Leistungsfähigkeit hat es Softwareanwendungen ermöglicht, sich zu verbessern. Dies führt zu besseren Ausführungsgeschwindigkeiten und zur Erweiterung der Aufgabenarten, zu deren Ausführung die Software im Stande ist. Diese Verbesserungen in der Computer- und Softwaretechnologie haben eine erhöhte Verwendung von Computersystemen und Software in einer umfangreichen Vielfalt von kommerziellen, privaten und akademischen Gebieten erzeugt.
  • Viele handelsübliche Computersysteme stellen zwei Leistungsstufen bereit: Aus und Ein. Während das Computersystem aus ist, können vom System keine Rechenoperationen ausgeführt werden. Sobald die Systemspannung eingeschaltet ist, erfolgt ein „Kaltstart", bei dem sich das Computersystem selbst für einen Systembetrieb initialisiert und die Ausführung von im Speicher des Systems gespeicherten Softwareanwendungen beginnt. Verfügt man nur über Aus- und Ein-Leistungsstufen, ergeben sich jedoch verschiedene Probleme. Ein derartiges Problem besteht darin, dass das Computersystem eingeschaltet sein muß, damit das System dem Anwender zur Ausführung irgendwelcher Funktionen zur Verfügung steht. Üblicherweise muß ein Anwender anwesend sein, um vorher manuell Einzuschalten. Wenn zum Beispiel auf diese Weise der Computer als ein Anrufbeantworter arbeiten soll, muß das Computersystem eingeschaltet bleiben oder jedes Mal vom Anwender eingeschaltet werden, wenn der Anwender seinen oder ihren Anrufbeantworters betriebsbereit wünscht.
  • Ein zusätzliches Problem ist der Energieverbrauch des Systems. Wenn es eingeschaltet ist, bezieht das Computersystem die volle Leistung, selbst wenn das System für eine ausgedehnte Zeitspanne inaktiv ist, wie zum Beispiel beim Warten auf einen Anruf. Noch ein weiteres Problem ist die vom System zur Durchführung eines Kaltstarts erforderliche Zeitdauer. Ein Kaltstart benötigt üblicherweise eine übermäßig lange Zeitspanne. Diese ist problematisch, wenn der Anwender eine sofortige Aktion des Computers benötigt. Wenn zum Beispiel der Anwender das Telefon klingeln hört und die Entgegennahme des Anrufs durch den Computer wünscht, muß der Anwender den Computer einschalten und auf den Ausführungsbeginn des geeigneten Programms warten. Diese Zeitspanne ist üblicherweise länger, als der Zeitumfang, den die anrufende Person auf jemanden zur Entgegennahme des Anrufs warten wird, bevor sie auflegt.
  • Eine Lösung des Problems der Bereitstellung von nur Aus- und Ein-Leistungsstufen besteht darin, Zwischenleistungsstufen einzubeziehen, wie zum Beispiel Standby [Bereitschaft] oder Suspend [Unterbrechen/Pausieren]. Zwischenleistungsstufen können bei reduzierten Stufen der Systemfunktionalität eine Leistungseinsparung bereitstellen. Die Leistungsstufe Standby beinhaltet moderate Energieeinsparungen bei einer nahezu vollständigen Systemfunktionalität, wohingegen die Leistungsstufe Suspend eine weiter eingeschränkte Systemfunktionalität und größere Energieeinsparungen beinhaltet. Nicht alle Rechensysteme müssen sowohl Suspend als auch Standby unterstützen. Diese Leistungsstufen sind im Wesentlichen Kennzeichnungen für Bereiche im Leistungseinsparungsspektrum zwischen vollständig Ein und vollständig Aus. Standby repräsentiert den Bereich näher zu Ein und Suspend repräsentiert den Bereich näher zu Aus. Wenn sich das System in einem Zwischenleistungszustand befindet, muß es zur Ausführung von durch den Anwender angeforderten Aufgaben die vollständige Leistung wiederherstellen. Die zur Wiederherstellung der vollständigen Leistung erforderliche Zeit ist implementierungsabhängig, wird aber im Allgemeinen für einen Standby-Zustand kürzer als für einen Suspend-Zustand sein. Darüber hinaus kann ein System in einem Suspend-Zustand nicht im Stande sein, auf bestimmte Einrichtungs-Interrupts zu reagieren, die ein System in Standby zur Wiederaufnahme der vollständigen Leistung veranlassen würden. Die Fähigkeit zur Reaktion auf Einrichtungs-Interrupts ist zum Erreichen der vollständigen Verfügbarkeit des Rechensystems sehr wichtig.
  • Tragbare und Laptop-Computer umfassen oft eine Unterstützung für äußerst leistungsarme Suspend-Energiesparmodi. In einem batteriebetriebenen System ist diese Lösung notwendig. Auf einem Desktop-PC gibt es jedoch einen geringen Bedarf an drastischen Energieeinsparungen, wenn die Systemleistungsfähigkeiten bei etwas höheren Leistungsstufen wesentlich verbessert werden könnten.
  • Mit einer zunehmenden Verbesserung der Computersysteme werden die von ihnen ausführbaren Funktionen für Menschen in allen Bereichen immer vorteilhafter. Dadurch wird Computersystemen eine stärkere Integration in unser tägliches Leben ermöglicht. Mit zunehmender Integration der Computersysteme in unser tägliches Leben wird jedoch die Zeitdauer, die diese Systeme zum Reagieren auf eine Anforderung im Stande sein müssen, immer größer und erreicht schließlich einen Punkt, an dem das System 24 Stunden am Tag zum Reagieren auf eine Anforderung im Stande sein sollte. Wenn das System einfach eingeschaltet gelassen wird, führt eine derartige On-Demand [Auf-Anforderung] -Verfügbarkeit jedoch zu einem erheblichen Energieverbrauch. Folglich wäre die Bereitstellung eines nur auf Anforderung verfügbaren Computersystems vorteilhaft, das die volle Leistung nur bezieht, wenn es zur Ausführung von Systemaufgaben erforderlich ist. Zum Beispiel ein System, das automatisch Faxe für den Anwender empfängt, wenn der Anwender keine erwartet oder zur Reduzierung von Ferngesprächsgebühren automatisch bestimmte Dokumente außerhalb der Hauptverkehrszeit faxt, ohne dass es erforderlich ist, das Computersystem eingeschaltet zu lassen.
  • Da einzelne Anwender beginnen, sich immer mehr auf Computersysteme zu verlassen, sollte zusätzlich die Vertrauenswür digkeit von Computersystemen gemäß diesem Vertrauen aufrechterhalten werden. Das heißt, das Computersystem sollte nach Bedarf des Anwenders verfügbar und betriebsbereit sein. Folglich wäre die Bereitstellung eines Computersystems vorteilhaft, das einem Anwender die Programmierung des Computersystems für bestimmte Aktionen gestattet, die es in seiner/ihrer Abwesenheit ausführen soll und dann die Aktionen ausführt, wenn der festgelegte Zeitpunkt oder das Ereignis eintritt. Zum Beispiel sollte der Systemanwender im Stande sein, das Einschalten des Computersystems zur erforderlichen Zeit zur Ausführung dieser Aktionen zu vergessen und sollte nicht damit beschäftigt sein, ob Stromausfälle zwischen dem Zeitpunkt des Programmierens und dem Zeitpunkt der Aktivität aufgetreten sind.
  • Darüber hinaus wäre mit einer zunehmenden Integration der Computersysteme in das Leben der Anwender die Bereitstellung eines Computersystems vorteilhaft, das gegenüber Softwarefehler und Stromausfälle tolerant ist. Das heißt, ein sich nach einem Absturz einer Softwareanwendung oder einem Auftreten eines Stromausfalls automatisch selbst wiederherstellendes Computersystem.
  • Beispiele von Anordnungen des Standes der Technik werden in Patentkurzfassungen aus Japan, Band 008, Nr. 265(p-318), 5. Dezember 1984, und der japanischen Patentanmeldung Nr. JP59133620A (Fujitsu KK), vom 1. August 1984, behandelt. Diese behandelt ein automatisches Betriebssystem zum Neustart von Aufträgen nach einem Stromausfall. Ferner wird in EP-A-0635778 (IBM) ein eine Fähigkeit zum Suspend/Resume [Unterbrechen/Fortsetzen] umfassendes Computersystem beschrieben.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • In den beigefügten Ansprüchen wird ein Verfahren zur Bereitstellung eines Computersystems mit einer unbeaufsichtigten On-Demand-Verfügbarkeit beschrieben und dargelegt. Das Verfahren kann Energieeinsparungsmerkmale umfassen, die das System in einen Standby-Modus versetzen, so oft das System inaktiv ist oder nicht verwendet wird. Vor dem Eintritt in einen Standby-Modus kann das Verfahren einen Hardware-Zeitgeber set zen, der anzeigt, wann das nächste geplante Ereignis im System ausgeführt werden soll. Wenn entweder der Zeitgeber abläuft oder ein anderes, einen Systembetrieb erforderndes Ereignis auftritt, nimmt das Verfahren ohne einen Anwendereingriff den Ein-Leistungszustand wieder ein.
  • In einem Ausführungsbeispiel gestattet das Verfahren der vorliegenden Erfindung Anwendungen ein periodisches Speichern ihrer Betriebszustände. Durch ein Speichern ihrer Betriebszustände sind Anwendungen im Stande, Stromausfällen und Abstürzen vorzubeugen. Wenn ein Stromausfall oder ein Absturz auftritt, konsultiert das Verfahren Neustart-Richtlinien und falls es geeignet ist, startet es Anwendungen automatisch neu auf ihre zuletzt gespeicherten Betriebszustände, sobald der Strom wiederhergestellt ist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird als Beispiel und nicht als Begrenzung in den Fig. der beigefügten Zeichnungen veranschaulicht, in denen gleiche Bezüge ähnliche Elemente anzeigen und in denen:
  • 1 ist eine vereinfachte Blockdarstellung der Systemarchitektur eines Ausführungsbeispiels der vorliegenden Erfindung;
  • 2 zeigt eine Übersicht eines Beispielmehrprozeßorcomputersystems der vorliegenden Erfindung;
  • 3 ist ein Ablaufdiagramm, das die bei der Ausführung von Aufgaben und dem Übergang zwischen verschiedenen Leistungsstufen befolgten Schritte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • 4 zeigt einen Registrierungsdatensatz gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 5 ist ein Ablaufdiagramm, das die zur Registrierung eines Prozeßes befolgten Schritte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • 6 zeigt einen Planungsdatensatz gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 7A, /B, 7C und 7D zeigen Beispielereignisfelder für Planungsereignisse gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 8 ist ein Ablaufdiagramm, das die zur Planung von Aufgaben und zur Ausführung geplanter Aufgaben befolgten Schritte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • 9 zeigt einen Fixpunktdatensatz gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 10 ist ein Ablaufdiagramm, das die beim Zugriff auf Fixpunktinformationen befolgten Schritte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • 11 ist eine Zeitlinie, die Beispielausführungssitzungen eines Anwendungsprozeßes auf einem Computersystem zeigt;
  • 12 zeigt ein, registrierte und geplante Anwendungen anzeigendes Benutzerschnittstellenfenster gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 13 zeigt ein, Anwendungsregistrierungsinformationen anzeigendes Benutzerschnittstellenfenster gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 14 zeigt ein, geplante Aufgaben anzeigendes Benutzerschnittstellenplanungsfenster gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG
  • In der nachfolgenden detaillierten Beschreibung werden zur Bereitstellung eines vollständigen Verständnisses der vorliegenden Erfindung zahlreiche spezielle Einzelheiten dargelegt. Es wird jedoch von den Fachleuten verstanden werden, dass die vorliegende Erfindung ohne diese spezifischen Details umgesetzt werden kann. In anderen Fällen wurden bekannte Verfahren, Vorgehensweisen, Komponenten und Schaltungen nicht detailliert beschrieben, um die vorliegende Erfindung nicht zu verdecken.
  • Einige Teile der nachfolgenden detaillierten Beschreibungen werden in Form von Algorithmen und symbolischen Darstellungen von Operationen auf Datenbits innerhalb eines Computer speichers dargestellt. Diese algorithmischen Beschreibungen und Darstellungen sind die von den Fachleuten der Datenverarbeitung verwendeten Mittel, um anderen Fachleuten das wesentliche ihrer Arbeit am wirksamsten zu vermitteln. Ein Algorithmus wird hier und allgemein als eine in sich geschlossene Folge von Schritten verstanden, die zu einem gewünschten Ergebnis führt. Die Schritte sind diejenigen, die physikalische Manipulationen physikalischer Größen erfordern. Üblicherweise, aber nicht notwendigerweise, nehmen diese Größen die Form elektrische oder magnetische Signale an, die geeignet sind, gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert zu werden. Es hat sich zeitweise als zweckmäßig erwiesen, primär aus Gründen der allgemeinen Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen oder dergleichen zu bezeichnen. Es sollte jedoch berücksichtigt werden, dass all diese und ähnliche Ausdrücke den entsprechenden physikalischen Größen zugeordnet und lediglich auf diese Größen angewendete, geeignete Kennzeichnungen sind. wenn es nicht speziell anders als aus den folgenden Erörterungen ersichtlich angegeben ist, ist in der vorliegenden Erfindung immer zu verstehen, dass sich Erörterungen, die Begriffe wie zum Beispiel „Verarbeiten" oder „Berechnen" oder „Rechnen" oder „Bestimmen" oder „Darstellen" oder dergleichen verwenden, sich auf die Aktion und die Prozeße eines Computersystems oder einer ähnlichen elektronischen Recheneinrichtung beziehen, die Daten, die als physikalische (elektronische) Größen in den Registern und Speichern eines Computersystems dargestellt sind, in andere Daten manipulieren und umwandeln, die in gleicher Weise als physikalische Größen in den Computersystemspeichern oder -Registern oder anderen derartigen Informationsspeicher-, Übertragungs- oder Anzeigeeinrichtungen dargestellt werden.
  • Die nachfolgenden Beschreibungen behandeln vier verschiedene Leistungsstufen oder Modi: Aus, Ein, Suspend und Standby. Der Aus-Leistungsmodus bezieht sich darauf, dass keine Komponenten im System Leistung vom Netzteil des Systems beziehen. Dies tritt zum Beispiel auf, wenn der Stecker des Computersy stems aus einer elektrischen Steckdose herausgezogen ist. Der Ein-Leistungsmodus bezieht sich darauf, dass allen Systemkomponenten die vollständige Leistung zur Verfügung steht. Es sei angemerkt, dass sich einige Einrichtungen immer noch in einem Energiesparmodus befinden können, wenn das System eingeschaltet ist. Bei Bedarf sind sie jedoch zu einer schnellen Reaktion im Stande. Das System befindet sich zum Beispiel im Ein-Leistungsmodus, wenn das System von einem Individuum aktiv verwendet wird. Als weiteres Beispiel befindet sich das System auch im Ein-Leistungsmodus, wenn das System zum Empfang eines Faxes eingeschaltet ist, selbst wenn der Monitor oder eine andere Anzeigeeinrichtung keine Leistung empfängt.
  • Der Suspend-Leistungsmodus bezieht sich auf das Computersystem, das sehr wenig Leistung vom Netzteil des Systems bezieht. Die meisten Systemkomponenten empfangen keine Leistung und können folglich keine Interrupts erzeugen. Der Betriebszustand des Systems ist jedoch in einem nichtflüchtigen Speicher im System gespeichert. Einmal im Suspend-Leistungsmodus kann das System neu gestartet und durch das erneute Laden von Anwendungen in den Hauptspeicher und der Bereitstellung der gespeicherten Betriebszustandsinformationen an sie in diesen gleichen Betriebszustand wiederhergestellt werden.
  • Der Standby-Leistungsmodus bezieht sich auf in einem Energieeinsparungsmodus befindliche Systemkomponenten und auf ein, eine sehr geringe Leistungsmenge verbrauchendes Gesamtsystem. Die Systemkomponenten empfangen immer noch Leistung und sind deshalb zur Erzeugung von Interrupts zum Wecken der zentralen Verarbeitungseinheit (CPU) aus ihrem Modus mit geringer Leistungsaufnahme im Stande. Ausgeführte Anwendungen verbleiben im Hauptspeicher. Dadurch wird dem System die schnelle Überführung in den Ein-Leistungsmodus ermöglicht, ohne dass ein erneutes Laden der Anwendungen von einer anderen Speichereinrichtung erforderlich ist.
  • Einer der Vorteile des Standby-Modus gegenüber dem Suspend-Modus ist, dass das Computersystem zu einer schnelleren Reaktion auf Dienstanforderungen und zum Erreichen der vollen Betriebsbereitschaft mit nur geringen Verzögerungen im Stande ist. Ein Computersystem im Standby-Modus ist auch besser zu einer Reaktion auf Anforderungen im Stande, die von Einrichtungen erzeugt werden, die Ereignisse in der externen Welt erfassen.
  • In einem Ausführungsbeispiel werden Anwendungsprozeße von einem Serverprozeß überwacht, der die für ihren Neustart und zur Wiederherstellung ihres internen Zustandes benötigten Informationen aufrechterhält, falls es notwendig werden sollte. Durch den Aufruf von durch den Serverprozeß bereitgestellten Funktionen können Anwendungen die Bedingungen angeben, unter denen sie neu gestartet werden sollen, Betriebszustandsinformationen zur Verwendung nach dem Neustart speichern, die zukünftige Ausführung ihrer selbst oder anderer Anwendungen planen und zu sich selbst oder anderen Anwendungen zu übergebende Nachrichten planen. Durch die Speicherung ihrer Betriebszustände sind Anwendungen im Stande, Stromausfällen und Softwareabstürzen vorzubeugen. Sobald die Zustandsinformationen gespeichert sind, kann darüber hinaus eine Anwendung ihre zukünftige Ausführung planen und sich dann absichtlich beenden. Wenn die geplante Zeit oder ein anderes auslösendes Ereignis auftritt, wird die Anwendung neu gestartet und kann ihren vorherigen Betriebszustand wiederherstellen und die Ausführung fortsetzen.
  • Die Fähigkeit zur Wiederherstellung nach Stromausfällen und verschiedenen Arten von Softwarefehlern verbessert die Nützlichkeit eines konstant verfügbaren Computersystems signifikant. Die Merkmale der vorliegenden Erfindung verwendende Anwendungen werden zum Erreichen höherer Zuverlässigkeitsstufen im Stande sein und dadurch ihre Fähigkeit zur Ausführung einer Tätigkeit ohne Mitwirkung des Anwenders verbessern. Darüber hinaus werden die Vorteile der vorliegenden Erfindung unter Nutzung allgemein verfügbarer, herkömmlicher Hardware erreicht.
  • Durch die Verwendung eines energiesparenden Standby-Modus reduziert die vorliegende Erfindung die Energiekosten wesentlich, die mit dem konstanten zur Verfügung stellen eines Computersystems verbunden sind. Durch eine Kombination dieser Energieeinsparung mit den die Anwendungszuverlässigkeit verbessernden Softwaremerkmalen erhöht die vorliegende Erfindung die Wahrscheinlichkeit, dass das Computersystem durch den Anwender spezifizierte Aufgaben ausführen wird.
  • Architektur eines Ausführungsbeispiels der vorliegenden Erfindung
  • 1 ist eine vereinfachte Blockdarstellung der Systemarchitektur eines Ausführungsbeispiels der vorliegenden Erfindung. Wie gezeigt, umfaßt das System das Basisdatenaustauschsystem (BIOS) 110, das Betriebssystem 120 und den InstantON-Dienstvermittler 140 [InstantON = Linux-Tool der Firma Intervideo für eine eine schnelle Verfügbarkeit bereitstellende Technik mit Patentschutz: US-Patent Nr. 6,765,788]. Das BIOS 110 stellt eine Schnittstelle zwischen dem Betriebssystem 120 und den verschiedenen, mit dem System gekoppelten Eingabe-/Ausgabe(I/O)-Einrichtungen bereit. Das Betriebssystem 120 ist eine Softwareanwendung, die eine Schnittstelle zwischen dem BIOS 110 und anderen, auf dem System laufenden Softwareanwendungen, einschließlich dem InstantON-Dienstvermittler 140, bereitstellt.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung ist das BIOS 110 ein BIOS mit erweitertem Energiemanagement (APM). Das APM BIOS stellt dem Computersystem die vier Leistungsstufen bereit: Aus, Ein, Suspend und Standby. Das APM BIOS kann entweder zur Wiederherstellung des gesamten Systems zur vollständigen Leistung nach dem Auftreten bestimmter Ereignisse oder zur Wiederherstellung nur bestimmter Komponenten zur vollständigen Leistung nach dem Auftreten bestimmter Ereignisse programmiert werden. Weitere Informationen über das APM BIOS können in der von Intel Corporation aus Santa Clara, Kalifornien, erhältlichen "Advanced Power Management (APM) BIOS Interface Specification" gefunden werden. Das APM BIOS ist den Fachleuten bekannt und wird folglich nicht weiter behandelt werden.
  • Das Betriebssystem 120 ist eine auf dem Computersystem ausgeführte Softwareanwendung, die eine Schnittstelle zwischen dem BIOS 110 und anderen, auf dem System in Betrieb befindlichen Softwareanwendungen bereitstellt. Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist das Betriebssystem 120 das von Microsoft Corporation aus Redmond, Washington, hergestellte WindowsTM 95. Man muß jedoch verstehen, dass die vorliegende Erfindung jedes andere herkömmliche, die Leistungsmodi Aus, Ein und Standby unterstützendes Betriebssystem nutzen kann und nicht ausdrücklich auf die Nutzung des Betriebssystems WindowsTM 95 begrenzt ist.
  • Der InstantON-Dienstvermittler 140 stellt eine Schnittstelle zwischen den auf dem System in Betrieb befindlichen, die InstantON-Dienste nutzenden Anwendungen und dem Betriebssystem 120 bereit. In einem Ausführungsbeispiel ist der InstantON-Dienstvermittler 140 eine Folge von in der Programmiersprache C++ geschriebenen Softwarebefehlen und -Routinen, die die hier beschriebenen Funktionen ausführen. Man muß jedoch verstehen, dass der InstantON-Dienstvermittler der vorliegenden Erfindung unter Verwendung irgendeiner aus einer umfangreichen Vielfalt von Programmiersprachen ausgeführt werden kann.
  • InstantON-Dienstvermittler 140 umfaßt die Leistungsüberwachung 145, die Prozeßüberwachung 150 und die Zeitgeberüberwachung 152. Die Leistungsüberwachung 145 beobachtet die für bestimmte Leistungsstufenänderungen geplanten Aufgaben. Immer wenn im System eine Leistungsstufenänderung auftritt, sendet die Leistungsüberwachung 145 irgendwelche geplanten Nachrichten, die für die Leistungsstufenänderung geplant sind (z.B. wenn das System vor dem Eintritt in den Standby-Modus steht oder gerade wieder in den Ein-Leistungsmodus eingetreten ist). Die Prozeßüberwachung 150 beobachtet die gegenwärtig auf dem Computersystem laufenden Prozeße und die Richtlinien für einen Neustart nach einem Absturz der gegenwärtig beim InstantON-Dienstvermittler 140 registrierten Anwendungen. Auf diese Weise kann der InstantON-Dienstvermittler 140 im Falle eines Systemabsturzes ohne weiteres bestimmen, welche Anwendungen zum Zeitpunkt des Absturzes ausgeführt wurden und welche Anwendungen neu gestartet werden sollen, wenn sich das System wieder herstellt. Im Falle eines Absturzes einer einzelnen Anwendung erfaßt der InstantON-Dienstvermittler 140 den erzwungenen Programmabbruch dieses Anwendungsprozeßes und verwendet die Richtlinie des Prozeßes für einen Neustart nach einem Absturz, um zu bestimmen, ob er die Anwendung neu starten soll.
  • Die Zeitgeberüberwachung 152 setzt Softwarezeitgeber und führt beim Ablauf der Zeitgeber geplante Aktionen aus. Die Zeitgeberüberwachung 152 wandelt auch beim Übergang des Systems in den Standby-Modus deren nächstliegendste Warnungszeit in eine Weckzeit für den Hardwarezeitgeber 105 um, wie nachstehend ausführlicher behandelt wird.
  • InstantON-Dienstvermittler 140 ist auch mit der Planungsdatenbank 155, der Log-Datenbank 160, der Fixpunkt-Datenbank 165 und der Registrierungsdatenbank 170 gekoppelt. Diese vier Datenbanken speichern die vom InstantON-Dienstvermittler 140 zur Bereitstellung der InstantON-Dienste der vorliegenden Erfindung verwendeten Informationen. Die Planungsdatenbank 155 enthält zur Aufgabenplanung verwendete Planungsdatensätze. Die Log-Datenbank 160 enthält zur Beobachtung signifikanter Ereignisse oder Aktivitäten von Anwendungen zeitgestempelte Log-Datensätze. Die Fixpunkt-Datenbank 165 enthält zur Systemwiederherstellung verwendete Fixpunktdatensätze. Die Registrierungsdatenbank 170 enthält für die Registrierungsdienste der vorliegenden Erfindung verwendete Registrierungsdatensätze.
  • InstantON-Dienstvermittler 140 kommuniziert mit dem Betriebssystem 120 sowohl direkt als auch über VIOND 130. In einer Implementierung sind sowohl VIOND 130 als auch VPOWERD 135 virtuelle WindowsTM-Gerätetreiber. In einer Implementierung ist VPOWERD 135 ein als Teil des Betriebssystems WindowsTM 95 enthaltener virtueller Gerätetreiber. VIOND 130 empfängt vom VPOWERD 135 ausgegebene Leistungsnachrichten. Eine dieser Leistungsnachrichten zeigt an, dass das Computersystem gerade vom Standby-Leistungsmodus in den Ein-Leistungsmodus eingetreten ist und eine zweite Nachricht zeigt an, dass das Computersystem vor dem Eintritt in den Standby-Leistungsmodus steht. Wenn der InstantON-Dienstvermittler 140 bestimmt, dass das System in den Standby-Modus versetzt werden soll, gibt VIOND 130 zusätzlich einen Aufruf VPOWERD Set System Power State(x) an VPOWERD 135 aus, der die Anwendung des als „x" angezeigten Leistungsmodus durch das Systems veranlaßt.
  • In einem Ausführungsbeispiel werden alle Energiemanagementkommunikationen zum und vom Betriebssystem 120 über VIOND 130 übertragen. Immer wenn vom Betriebssystem 120 eine Anforderung zum Eintritt in den Suspend-Modus empfangen wird, gibt in einer Implementierung VPOWERD 135 eine den Empfang einer Anforderung zum Eintritt in den Suspend-Modus anzeigende Nachricht aus. Als Antwort sendet VIOND 130 eine den Suspend-Modus zurückweisende Nachricht an VPOWERD 135 und sendet dann eine Anforderung zum Eintritt in den Standby-Modus an VPOWERD 135. Auf diese Weise tritt das Computersystem in diesem Ausführungsbeispiel nicht in den Suspend-Modus ein; jede Anforderung zum Eintritt in den Suspend-Modus veranlaßt den Eintritt des Systems in den Standby-Modus.
  • In einem alternativen Ausführungsbeispiel der vorliegenden Erfindung ist dem System der Eintritt in den Suspend-Modus gestattet. In diesem Ausführungsbeispiel ist die zur Wiederaufnahme des Betriebes erforderliche Zeit verlängert und einige Einrichtungen sind bis zum Eintritt des Systems in einen Standby- oder einen Ein-Modus nicht zur Erzeugung von Interrupts im Stande. Die Verwendung des Hardwarezeitgebers zum Wecken des Systems zu einem vorgegebenen Zeitpunkt für die Ausführung geplanter Aktivitäten ist jedoch immer noch möglich.
  • Das BIOS 110 ist auch mit einem Hardware-Zeitgeber 105 gekoppelt. Der Zeitgeber 105 wird vom InstantON-Dienstvermittler 140 vor dem Eintritt in den Standby-Modus zur Anzeige der Zeitdauer bis zum Auftreten der nächsten geplanten Aufgabe programmiert, wie nachstehend ausführlicher behandelt wird. Der Zeitgeber 105 ist ein herkömmlicher rückwärtszählender Zeitgeber, der vom Netzteil des Computersystems Leistung empfängt, wenn sich das System im Ein-Leistungsmodus oder im Standby-Leistungsmodus befindet. Sobald der Zeitgeber 105 mit einem Wert programmiert ist, zählt er auf diese Weise kontinuierlich rückwärts, unabhängig davon, ob das Computersystem in den Standby-Modus versetzt und/oder aus ihm herausgenommen wird. In einem Ausführungsbeispiel wird der Zeitgeber 105 nur zum Herausholen des Systems aus dem Standby-Modus zur Ausführung einer geplanten Aufgabe(n) verwendet. In diesem Ausführungsbeispiel nutzt der InstantON-Dienstvermittler 140 zur Identifizierung der Zeit(en) einer geplanten Aufgabe(n) Softwarezeitgeber, wenn das System sich im Ein-Leistungsmodus befindet.
  • Wenn der Zeitgeber 105 Null erreicht, gibt er ein Signal an eine Interrupt-Steuereinrichtung aus. Dieses Signal zeigt der Interrupt-Steuereinrichtung an, dass eine geplante Aufgabe zum aktuellen Zeitpunkt auftreten soll. Ein mit der APM-Spezifikation konformes System beendet als Reaktion auf einen Prozeßor-Interrupt von der Interrupt-Steuereinrichtung seinen Modus mit geringer Leistungsaufnahme (das heißt, es erwacht). Als Reaktion auf den Prozeßor-Interrupt, der durch einen eine Null erreichenden Zeitgeber 105 veranlaßt wurde, beendet auf diese Weise die CPU ihren Modus mit geringer Leistungsaufnahme und der InstantON-Dienstvermittler 140 überprüft zur Bestimmung der für den aktuellen Zeitpunkt geplanten Aufgabe(n) die Planungsdatenbank 155 und führt diese Aufgabe(n) aus.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung können zusätzliche Signaleingaben in das Computersystem einen Interrupt veranlassen, der das System aus dem Standby-Modus herausholt. Wenn zum Beispiel vom Computersystem ein, einen eingehenden Telefonanruf anzeigendes Signal von einer Telefonleitung empfangen wird, signalisiert der Interrupt dem BIOS 110, dass das Computersystem zur Beantwortung des Anrufs zum Ein-Leistungsmodus heraufgesetzt werden soll. Als weiteres Beispiel kann das System von einem Systemanwender zum Beispiel durch das Drücken einer Taste auf dem Computersystem aus dem Standby-Modus eingeschaltet werden. Das Drücken dieser Taste veranlaßt das BIOS 110, das Computersystem zur Behandlung der Anforderungen des Anwenders in den Ein-Leistungsmodus zu bringen.
  • In einem Ausführungsbeispiel bestimmt der InstantON-Dienstvermittler 140 nach dem Empfang einer Nachricht, die den Eintritt des Systems in den Ein-Leistungsmodus anzeigt, ob die Anzeigeeinrichtung des Systems aktiviert werden soll. In diesem Ausführungsbeispiel verweist das BIOS 110 die Steuerung der Wiederaufnahme der Anzeige an VIOND 130. VIOND 130 bestimmt, ob die Anzeigeeinrichtung aktiviert werden soll durch eine Überprüfung, ob das den Eintritt des Systems in den Ein-Leistungsmodus veranlassendes Ereignis eine Anwenderaktivität war (wie zum Beispiel ein Tastatur- oder ein Mausereignis). Wenn das Ereignis eine Anwenderaktivität war, dann wird die Anzeigeeinrichtung aktiviert. Wenn das Ereignis jedoch keine Anwenderaktivität war, sendet VIOND 130 zur Aktivierung der Anzeigeeinrichtung über VPOWERD 135 eine Nachricht zum BIOS 110.
  • Wenn das System inaktiv wird, programmiert der InstantON-Dienstvermittler 140 basierend auf den in der Planungsdatenbank 155 enthaltenen Aufgaben den Zeitgeber 105 mit der Zeitdauer bis zum Auftritt der nächsten geplanten Aufgabe neu. Nach der Neuprogrammierung des Zeitgebers 105 gibt der InstantON-Dienstvermittler 140 über VIOND 130 einen Aufruf VPOWERD_Set_System-Power State(Standby) an VPOWERD 135 aus. Dieser veranlaßt das System zur Rückkehr in den Standby-Modus.
  • Der InstantON-Dienstvermittler 140 ist auch mit der InstantON-Benutzerschnittstelle 180 und den Benutzeranwendungen 185 gekoppelt. Die InstantON-Benutzerschnittstelle 180 ist eine, eine Schnittstelle zwischen dem Systemanwender und dem InstantON-Dienstvermittler 140 bereitstellende Softwareanwendung. In einem Ausführungsbeispiel ist die Schnittstelle 180 eine grafische Benutzerschnittstelle (GUI), wie nachfolgend mit Bezug auf die 1214 ausführlicher behandelt wird.
  • Die Benutzeranwendungen 185 umfassen irgendeine umfangreiche Vielfalt herkömmlicher, auf einem Computersystem ausführbare Softwareanwendungen. Die Benutzeranwendungen 185 rufen unter Verwendung von Prozeduraufrufen der Anwendungsprogrammschnittstelle (API) den InstantON-Dienstvermittler 140 direkt auf, wie nachstehend ausführlicher behandelt wird. Eine Benutzeranwendung 185 kann den InstantON-Dienstvermittler 140 zum Beispiel zum Speichern von Fixpunktdaten oder zur Anzeige aufrufen, dass das System in den Standby-Modus versetzt werden soll, wie nachstehend ausführlicher behandelt wird.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung werden von der Schnittstelle 180 und den Anwendungen 185 verschiedene Prozeduraufrufe zur Interaktion mit dem InstantON-Dienstvermittler 140 genutzt. In einer Implementierung umfassen diese Aufrufe IonEnterStandbyState [IbeiEintrittZustand-Standby] und IonMonitorAutoOn [IbeiMonitorAutoEin]. Der Prozeduraufruf IonEnterStandbyState veranlaßt den InstantON-Dienstvermittler 140 zum Übergang des Systems in den Standby-Modus zur Ausgabe eines Aufrufes VPOWERD_Set_System_Power_State(Standby) an VPOWERD über VIOND. Der Prozeduraufruf IonMonitorAutoOn zeigt dem InstantON-Dienstvermittler 140 an, ob die Anzeigeeinrichtung oder der Monitor nach dem Übergang vom Standby-Modus in den Ein-Leistungsmodus automatisch eingeschaltet werden soll. Der aufrufende Prozeß umfaßt als einen Parameter eine boolesche variable, die anzeigt, ob die Anzeigeeinrichtung aktiviert werden soll. Der InstantON-Dienstvermittler 140 übergibt diese Anforderung an VIOND 130, der diese Variable speichert und basierend auf der den Übergang in den Ein-Leistungsmodus veranlassenden Aktivität und dem Wert dieser gespeicherten Variable die Anzeigeeinrichtung beim Wiedereintritt in den Ein-Leistungsmodus aktiviert.
  • Ein Computersystem eines Ausführungsbeispiels der vorliegenden Erfindung
  • 2 zeigt eine Übersicht eines Beispielmehrprozeßorcomputersystems der vorliegenden Erfindung. Das Computersystem 200 weist üblicherweise einen Prozeßor-Speicher-Bus oder andere Kommunikationsmittel 201 zur Kommunikation von Informationen zwischen einem oder mehreren Prozeßoren 202 und 203 auf. Der Prozeßor-Speicher-Bus 201 umfaßt Adreß-, Daten- und Steuerbusse und ist mit mehreren Einrichtungen oder Vermittlern gekoppelt. Die Prozeßoren 202 und 203 können einen allgemein als Level-Eins-(L1)-Cache-Speicher [Zwischenspeicher-Einrichtung] bezeichneten, kleinen, außerordentlich schnellen, internen Cache-Speicher zur temporären Speicherung von Daten und Befehlen auf dem Chip umfassen. Zusätzlich kann mit dem Prozeßor 202 ein größerer, langsamerer Level-Zwei-(L2)-Cache-Speicher 204 zur temporären Speicherung von durch den Prozeßor 202 zu verwendenden Daten und Befehlen gekoppelt sein. In einem Ausführungsbeispiel sind die Prozeßoren 202 und 203 Intel®-Architektur kompatible Mikroprozeßoren. Die vorliegende Erfindung kann jedoch jede Art von Mikroprozeßoren nutzen, die eine Leistungsmanagementunterstützung umfassen, einschließlich verschiedener Arten von Prozeßoren.
  • Der Prozeßor 203 ist zur Verarbeitung von Informationen in Verbindung mit dem Prozeßor 202 auch mit dem Prozeßor-Speicher-Bus 201 gekoppelt. Der Prozeßor 203 kann einen parallelen Prozeßor aufweisen, wie zum Beispiel einen ähnlichen oder den gleichen Prozeßor, wie Prozeßor 202. Alternativ kann der Prozeßor 203 einen Co-Prozeßor aufweisen, wie zum Beispiel einen digitalen Signalprozeßor. Der Prozeßor-Speicher-Bus 201 stellt einen Systemzugriff auf den Speicher und die Eingabe/Ausgabe (I/O) -Teilsysteme bereit. Zur Steuerung des Zugriffs auf einen Speicher mit wahlfreiem Zugriff (RAM) oder eine andere dynamische Speichereinrichtung 221 (allgemein als ein Hauptspeicher bezeichnet) ist zur Speicherung von Informationen und Befehlen für den Prozeßor 202 und den Prozeßor 203 eine Speichersteuereinrichtung 222 mit dem Prozeßor-Speicher-Bus 201 gekoppelt. Mit dem Prozeßor-Speicher-Bus 201 sind zur Speicherung von Informationen und Befehlen eine Massendatenspeichereinrichtung 225, wie zum Beispiel eine Magnetplatte und ein Plattenlaufwerk, und zur Anzeige von Informationen für den Computeranwender eine Anzeigeeinrichtung 223, wie zum Beispiel eine Kathodenstrahlröhre (CRT), Flüssigkristallanzeige (LCD) etc., gekoppelt.
  • Zur Bereitstellung eines Kommunikationspfades oder eines Gateways [Übergabevermittlung] für Einrichtungen auf entweder dem Prozeßor-Speicher-Bus 201 oder dem I/O-Bus 231 zum Zugriff oder zur Übertragung von Daten zwischen Einrichtungen auf dem anderen Bus ist eine Eingabe/Ausgabe (I/O) -Brücke 224 mit dem Prozeßor-Speicher-Bus 201 und dem System-I/O-Bus 231 gekoppelt. Die Brücke 224 ist im Wesentlichen eine Schnittstelle zwischen dem System-I/O-Bus 231 und dem Prozeßor-Speicher-Bus 201.
  • Der System-I/O-Bus 231 kommuniziert Informationen zwischen peripheren Einrichtungen im Computersystem. Mit dem System-I/O-Bus 231 koppelbare Einrichtungen umfassen eine Anzeigeeinrichtung 232, wie zum Beispiel eine Kathodenstrahlröhre, eine Flüssigkristallanzeige etc., eine alphanumerische und andere Tasten umfassende alphanumerische Eingabeeinrichtung 233 etc. zur Kommunikation von Informationen und Befehlsauswahlen an andere Einrichtungen im Computersystem (zum Beispiel dem Prozeßor 202) und eine Cursor-Steuerungseinrichtung 234 zur Steuerung der Cursor-Bewegung. Darüber hinaus kann mit dem System-I/O-Bus 231 zur Bereitstellung einer visuellen Darstellung der Computerbilder auch eine Druckausgabeeinrichtung 235, wie zum Beispiel ein Plotter oder ein Drucker, und zur Speicherung von Informationen und Befehlen eine Massenspeichereinrichtung 236, zum Beispiel eine Magnetplatte und ein Plattenlaufwerk, gekoppelt sein.
  • Bestimmte Implementierungen der vorliegenden Erfindung können nicht alle der vorstehenden Komponenten erfordern, noch umfassen. Das System kann zum Beispiel nur den einzelnen Prozeßor 202 enthalten. Zusätzlich können bestimmte Implementierungen der vorliegenden Erfindung zusätzliche Prozeßoren oder andere Komponenten umfassen. Zum Beispiel können der Prozeßor 203, die Anzeigeeinrichtung 223 oder die Massenspeichereinrichtung 225 nicht mit dem Prozeßor-Speicher-Bus 201 gekoppelt sein. Darüber hinaus können die mit dem System-I/O-Bus 231 gekoppelt gezeigten peripheren Einrichtungen mit dem Prozeßor-Speicher-Bus 201 gekoppelt sein. Zusätzlich kann in einigen Implementierungen nur ein einzelner Bus existieren. Dabei sind die Prozeßoren 202 und 203, die Speichersteuereinrichtung 222 und die peripheren Einrichtungen 232 bis 236 mit dem einzelnen Bus gekoppelt.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung ist das BIOS 110 von 1 im Computersystem 200 in einem Nur-Lese-Speicher (ROM) gespeichert, der ein Teil des Hauptspeichers 221 ist. In einem alternativen Ausführungsbeispiel ist das BIOS 110 in einer Massenspeichereinrichtung 225 gespeichert. In einem weiteren alternativen Ausführungsbeispiel ist das BIOS 110 in einer separaten, mit dem Prozeßor-Speicher-Bus 201 gekoppelten Speichereinrichtung gespeichert, wie zum Beispiel eine separate ROM-Einrichtung, eine Flash-Speichereinrichtung oder andere nichtflüchtige Speichereinrichtungen.
  • Das Betriebssystem 120 von 1 ist gemäß einem Ausführungsbeispiel der vorliegenden Erfindung in einer Massenspeichereinrichtung 225 von 2 gespeichert. Alternativ kann das Betriebssystem 120 in einer Massenspeichereinrichtung 236 oder einer mit dem Prozeßor-Speicher-Bus 201 oder dem System-I/O-Bus 231 gekoppelten, separaten Speichereinrichtung gespeichert sein, wie zum Beispiel eine separate ROM-Einrichtung oder eine Flash-Speichereinrichtung. Sobald das Computersystem in den Ein-Leistungsmodus versetzt wurde, wird das Betriebssystem 120 zum Hauptspeicher 221 übertragen. Das System 200 kann das gesamte Betriebssystem 120 oder nur die gegenwärtig benötigten Teile übertragen. Das Laden eines Betriebssystems in einen Hauptspeicher ist den Fachleuten bekannt und wird folglich nicht weiter beschrieben.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung beginnt das Betriebssystem 120 den InstantON-Dienstvermittler 140 in Betrieb zu nehmen, sobald das Betriebssystem 120 in Betrieb ist. Der InstantON-Dienstvermittler 140 wird durch das Kopieren der in der Massenspeichereinrichtung 225 gespeicherten Software-Routinen in den Hauptspeicher 221 und die Ausführung dieser Software-Routinen in Betrieb gesetzt. Es sollte verstanden werden, dass der InstantON-Dienstvermittler 140 in jeder Speichereinrichtung des Systems 200 gespeichert werden kann, wie zum Beispiel der Massenspeichereinrichtung 236 oder der mit dem Prozeßor-Speicher-Bus 201 oder dem System-I/O-Bus 231 gekoppelten Flash-Speichereinrichtung.
  • Es sollte auch verstanden werden, dass das Computersystem 200 von 2 irgendeines einer umfangreichen Vielfalt von Rechensystemen oder Einrichtungen sein kann. Das System 200 kann zum Beispiel ein entweder zur Heim- oder Büroanwendung ausgelegter Desktop-Personal-Computer oder ein größeres Großrechner- oder File-Server-System sein. Als weiteres Beispiel kann das System 200 eine Recheneinrichtung innerhalb eines Faxgerätes oder einer Haustechnikmerkmale und/oder Haussicherheitseinrichtungen steuernden Recheneinrichtung sein.
  • Von der vorliegenden Erfindung verwendete Leistungsstufen
  • 3 ist ein Ablaufdiagramm, das die bei der Ausführung von Aufgaben und dem Übergang zwischen verschiedenen Leistungsstufen befolgten Schritte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt. Ein Computersystem, wie zum Beispiel das System 200 von 2 beginnt den Betrieb von der Aus-Leistungsstufe mit der Durchführung eines Kaltstarts, Schritt 305. Während eines Kaltstarts initialisiert das Computersystem die Speicherkomponenten des Systems und setzt die verschiedenen Systemkomponenten zurück, sobald die Computersystemleistung ein stabiles Betriebsniveau erreicht hat. Diese Initialisierungs- und Rücksetzungsoperation versetzt alle Systemkomponenten in einen bekannten Betriebszustand, damit das Computersystem synchronisiert ist und in einer richtigen Art und Weise arbeiten kann. Sobald die Initialisierungs- und Rücksetzungsoperationen abgeschlossen sind, werden das BIOS und das Betriebssystem in den Hauptspeicher geladen.
  • Sobald das Betriebssystem in Betrieb ist, wird der InstantON-Dienstvermittler 140 ausgeführt, Schritt 310. In einem Ausführungsbeispiel wird auch die InstantON-Manager-Benutzerschnittstelle 180 in Schritt 310 ausgeführt. Sobald er in Betrieb ist, führt der InstantON-Dienstvermittler 140 irgendwelche, für den aktuellen Zeitpunkt geplante Aufgaben aus, Schritt 315.
  • Zusätzlich zur Ausführung irgendwelcher geplanten Aufgaben führen der InstantON-Dienstvermittler 140 und das Betriebssystem 120 irgendwelche vom Systemanwender eingegebene Befehle aus, Schritt 320. Diese Befehle können irgendwelche herkömmlichen Computerbefehle sein, wie zum Beispiel der Zugriff auf bestimmte Dateien oder Speicherstellen oder die Eingabe von Daten (zum Beispiel über ein Textverarbeitungsprogramm). Zusätzlich können diese Befehle Eingaben zur Planung von Aufgaben für den InstantON-Dienstvermittler 140 sein, was nachstehend ausführlicher behandelt wird.
  • Der InstantON-Dienstvermittler 140 überprüft auch, ob eine Anwendung oder der Systemanwender den Einritt in den Standby-Modus angefordert hat, Schritt 325. Diese Anforderung kann direkt von einem Systemanwender kommen oder kann ein, von einer auf dem System in Betrieb befindlichen Anwendung ausgegebener Prozeduraufruf sein. In einem Ausführungsbeispiel der vorliegenden Erfindung kann der Systemanwender den Eintritt in den Standby-Modus durch das Umschalten des Leistungsversorgungssystems in die Position "Aus" anfordern. In diesem Ausführungsbeispiel ist der herkömmliche Aus/Ein-Leistungsschalter eines Computersystems neu konfiguriert, um beim Plazieren des Schalters in die Position "Aus" den Eintritt des Systems in den Standby-Modus zu veranlassen und nicht in den Aus-Leistungsmodus. Auf diese Weise schaltet sich das System in diesem Ausführungsbeispiel nicht "aus". Daher fährt beim Auftritt eines Stromausfalls das System hoch, sobald die Leistungsversorgung wiederhergestellt ist. In einer Implementierung umfaßt das Computersystem auch einen zusätzlichen Leistungsschalter, der bei Betätigung den Eintritt des Systems in den Aus-Leistungsmodus veranlaßt. In einem alternativen Ausführungsbeispiel kann der Systemanwender den Eintritt des Systems in die Standby-Leistungsstufe durch die Auswahl einer durch das Betriebssystem 120 oder den InstantON-Manager 180 bereitgestellten Menüschaltfläche oder durch die Aktivierung einer vorgegebenen Tastenfolge, analog zu der zum Rücksetzen einiger Personal-Computer verwendeten Folge Strg-Alt-Entf, veranlassen. Die Betätigung der vorgegebenen Tastenfolge durch den Systemanwender wird vom Betriebssystem empfangen, das über VPOWERD 135 ein den bevorstehenden Eintritt des Systems in den Standby-Modus anzeigendes Signal an den InstantON-Dienstvermittler 140 ausgibt.
  • Wenn keine Anforderung zum Eintritt in den Standby-Modus empfangen wurde, überprüft das BIOS 110, ob irgendeine Anwen deraktivität erfaßt wurde, Schritt 330. Das BIOS 110 führt diese Überprüfung durch, indem bestimmt wird, ob eine Aktivität ausgeführt wird, wie zum Beispiel Mausereignisse, Tastaturereignisse oder Zugriffe auf ein Festplattenlaufwerk. wenn eine Anwenderaktivität erfaßt wird, wird ein Inaktivitäts-Unterbrechungs-Systemzeitgeber zurückgesetzt, Schritt 335. Wenn keine Anwenderaktivität erfaßt wird, setzt das System die Ausführung von Befehlen und Aufgaben in den Schritten 315 bis 340 fort.
  • Wenn keine Anwenderaktivität erfaßt wird, überprüft das BIOS 110, ob der vorgegebene Inaktivitäts-Unterbrechungs-Zeitabschnitt abgelaufen ist, Schritt 340. Das BIOS 110 führt diese Überprüfung durch, indem bestimmt wird, ob der Inaktivitäts-Unterbrechungs-Systemzeitgeber abgelaufen ist. Wenn der Unterbrechungs-Zeitabschnitt abläuft, setzt das System zu Schritt 345 fort, um den Prozeß des Eintritts in den Standby-Modus zu beginnen. Wenn der Unterbrechungs-Zeitabschnitt nicht abgelaufen ist, setzt das System in den Schritten 315 bis 340 mit der Ausführung von Befehlen und Aufgaben fort, bis eine Anforderung zum Eintritt in den Standby-Modus empfangen wird oder ein vorgegebener Inaktivitäts-Unterbrechungs-Zeitabschnitt abgelaufen ist.
  • Wenn der Inaktivitäts-Unterbrechungs-Zeitabschnitt abgelaufen ist oder ein Systemanwender den Eintritt in den Standby-Modus anfordert oder eine Anwendung den Eintritt in den Standby-Modus anfordert, beginnt das System den Prozeß des Übergangs in den Standby-Modus. Der InstantON-Dienstvermittler 140 führt jegliche für dieses Leistungsereignis geplanten Aufgaben aus und weist VIOND 130 zur Programmierung des Zeitgebers 105 an. Der InstantON-Dienstvermittler 140 gibt dann einen Aufruf VPOWERD_Set_System_Power_State(Standby) an VPOWERD 135 aus, der den Eintritt des Systems in den Standby-Modus veranlaßt. In einem Ausführungsbeispiel speichert der InstantON-Dienstvermittler 140 vor der Ausgabe des Aufrufs VPOWERD_Set_System_Power_State(Standby) jegliche notwendigen Fixpunktdaten durch ein Senden von Fixpunkterinnerungsnachrichten an verbundene Anwendungsprozeße. Die Speicherung der Fixpunkt daten gewährleistet, dass sich das System in den gleichen Betriebszustand selbst wiederherstellen kann, sobald das System zum Ein-Leistungsmodus zurückgekehrt ist. Die Fixpunktdaten werden nachstehend mit Bezug auf 9 ausführlicher behandelt. Es sollte jedoch verstanden werden, dass eine Speicherung von Fixpunktdaten im Schritt 345 nicht notwendig ist, da Daten und Anwendungen unversehrt im Hauptspeicher verbleiben, wenn sich das System im Standby-Modus befindet.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung stellt der InstantON-Dienstvermittler 140 dem Systemanwender einen den bevorstehenden Eintritt des Systems in den Standby-Modus anzeigenden Bedienerhinweis bereit. Der Anwender kann den Eintritt in den Standby-Modus annehmen oder ein Verbleiben im Ein-Leistungsmodus auswählen. Wenn der Anwender das Verbleiben im Ein-Leistungsmodus auswählt, setzt die Verarbeitung im Schritt 315 fort und der Inaktivitäts-Unterbrechungs-Systemzeitgeber wird zurückgesetzt. Auf diese Weise ist in diesem Ausführungsbeispiel der Systemanwender zum Aufheben des Eintritts in den Standby-Modus und zum Verbleiben im Ein-Leistungsmodus im Stande.
  • Das System verbleibt bis zum Auftreten eines Interrupts im Standby-Modus, der das System zur Wiederaufnahme veranlaßt, Schritte 350 und 355. Sobald ein die Wiederaufnahme des Systems veranlassender Interrupt auftritt, tritt das System in den Ein-Leistungsmodus ein, Schritt 360. Das System setzt dann zur Ausführung jeglicher geplanter Ereignisse oder Anwenderbefehle in den Schritten 315340 fort.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung können verschiedene, einen Interrupt initiierende Ereignisse auftreten, die das System zur Wiederaufnahme (das heißt zur Rückkehr in den Ein-Leistungsmodus) veranlassen. Wie vorstehend behandelt, tritt das System tatsächlich in den Standby-Modus ein, wenn ein Systemanwender den herkömmlichen Leistungsschalter auf dem Computersystem auf die Position "Aus" betätigt. Wenn der Systemanwender den Leistungsschalter auf die Position "Ein" betätigt, geht das System vom Standby-Leistungsmodus zum Ein-Leistungsmodus über.
  • Zusätzlich kann auf Grund des Ablaufs eines Systemzeitgebers ein die Systemwiederherstellung veranlassender Interrupt auftreten. Wenn sich das System im Standby-Modus befindet, empfängt der Zeitgeber 105 von 1 wie vorstehend behandelt Leistung. Wenn der Zeitgeber 105 abläuft, verursacht er einen Interrupt. Die Interruptsteuereinrichtung empfängt diesen Interrupt und gibt ein Signal an das BIOS 110 aus, um das System zur Ausführung der geplanten Aufgabe in den Ein-Leistungsmodus zu bringen.
  • Zusätzlich kann ein eine Systemwiederaufnahme veranlassender Interrupt auch auf Grund eines "eingehenden Ereignisses" auftreten. Ein eingehendes Ereignis bezieht sich auf eine, einen Zugriff auf das Computersystem versuchende Einrichtung außerhalb des Computersystems. Ein eingehendes Ereignis kann zum Beispiel die Aktivierung einer Telefonleitung auf Grund eines eingehenden Faxes oder ein eingehendes Signal von einem Temperaturmeßinstrument sein, das die Überschreitung der Temperatur eines ganz bestimmten Niveaus in einem speziellen Raum anzeigt. Das Stattfinden eines eingehenden Ereignisses veranlaßt einen Interrupt, der zum Eintritt des Systems in den Ein-Leistungsmodus führt, analog zum vorstehend behandelten Ablauf des Zeitgebers.
  • Ein Systemanwender kann zum Beispiel den Empfang jeglicher zum Anwender gesendeten Faxe durch das Computersystem wünschen, gleichgültig ob sich das System im Ein-Leistungsmodus befindet. Der Anwender aktiviert die Fax-Softwareanwendung und kann dem Computersystem den Eintritt in den Standby-Modus gestatten. Wenn dann das Telefon klingelt, führt der durch das Telefonklingeln veranlaßte Interrupt dazu, das das Computersystem in den Ein-Leistungsmodus geht. Da der, den Übergang in den Ein-Leistungsmodus veranlassende Interrupt keine Anwenderaktivität war, wird der Monitor nicht aktiviert. Die anderen Komponenten des Computersystems werden aber aktiviert. Die Fax-Softwareanwendung empfängt dann das Fax und speichert oder druckt die empfangenen Daten. Das System tritt dann wieder in den Standby-Modus ein und wartet auf das Auftreten des nächsten Ereignisses, das es aus dem Standby-Modus herausnimmt.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung enthält das Computersystem eine Aktivitätsanzeige, die aktiviert wird, immer wenn das System nach dem Empfang eines eingehenden Ereignisses in den Standby-Modus eintritt. In einer Implementierung ist die Aktivitätsanzeige eine beim Empfang von Leistung aktivierte Leuchtdiode (LED). Die Aktivitätsanzeige wird vom BIOS 110 gesteuert und von VIOND 130 durch das Senden einer Anforderung zu ihrer Aktivierung oder Deaktivierung an das BIOS 110 aktiviert oder deaktiviert. Wenn das System später in den Ein-Leistungsmodus eintritt und auf die die Aktivierung der Aktivitätsanzeige veranlassende Anwendung vom Systemanwender zugegriffen wird, wird die Ereignisanzeige deaktiviert. Auf diese Weise kann die Aktivitätsanzeige zur Anzeige des Auftretens eines eingehenden Ereignisses an den Systemanwender verwendet werden, das für den Anwender interessant sein kann, wie zum Beispiel der Empfang eines Faxes.
  • Anwendungsregistrierung gemäß der vorliegenden Erfindung
  • In einem Ausführungsbeispiel der vorliegenden Erfindung sind die Softwareanwendungen beim InstantON-Dienstvermittler 140 registriert, damit die Anwendungen sowohl von den Fixpunktdiensten als auch den Aufgabenplanungsdiensten des InstantON-Dienstvermittler profitieren können. Die Anwendungen werden beim InstantON-Dienstvermittler 140 durch einen Prozeduraufruf IonRegister registriert. Wenn sich eine Anwendung beim InstantON-Dienstvermittler 140 registriert, wird der Anwendung eine eindeutige Registrierungskennung bereitgestellt und sie ist auch zur Auswahl einer Neustart-Richtlinie im Stande, wie nachstehend behandelt. Wenn eine Anwendung den Prozeduraufruf IonRegister das erste Mal vornimmt, wird vom InstantON-Dienstvermittler 140 ein Registrierungsdatensatz erzeugt. Jegliche nachfolgenden IonRegister-Aufrufe der gleichen Anwendung werden zum Zugriff des InstantON-Dienstvermittler 140 auf den gleichen Registrierungsdatensatz führen, vorausgesetzt, dass eine ganz bestimmte Richtlinie (das heißt, dass nachstehend behandelte one_only-Flag) festgelegt ist, wenn der(die) nachfolgende(n) Aufruf(e) vorgenommen werden.
  • Zusätzlich zu ihrer bestehenden Registrierung können Anwendungsprozeße auch mit dem InstantON-Dienstvermittler 140 verbunden sein. Eine bestehende Verbindung bezieht sich auf eine Zuordnung der InstantON-Registrierungskennung zur Betriebssystemprozeßkennung eines Prozeß. Es sei angemerkt, dass eine Anwendung nicht länger mit dem InstantON-Dienstvermittler 140 verbunden ist, wenn die Ausführung der Anwendung endet. Die Anwendung ist jedoch immer noch registriert. Es sei auch angemerkt, dass eine einzelne Anwendung mehrere, gleichzeitig in Betrieb befindliche Instanzen oder Prozeße aufweisen kann.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung ist jeder Registrierungsdatensatz in der Registrierungsdatenbank 170 von 1 gespeichert. Die Registrierungsdatenbank 170 wird in nichtflüchtigem Speicher im System gespeichert, wie zum Beispiel der Massenspeichereinrichtung 255 von 2. Ein Registrierungsdatensatz gemäß einer Implementierung ist in 4 gezeigt. Der Registrierungsdatensatz 400 umfaßt die folgenden Felder: eine Registrierungskennung 405, einen Pfad 410, eine Parameterliste 415, eine Richtlinie 420, einen Zeitstempel 425, eine Prozeßkennung 430, ein Memo 435 und einen Status 440. Die Registrierungskennung 405 ist eine eindeutige, dieser Anwendung durch den InstantON-Dienstvermittler 140 bei der ersten Registrierung der Anwendung zugewiesene Kennung. Die Registrierungskennung ist für diese Anwendung eindeutig und bleibt auf dem Computersystem für alle Zeiten gleich. Auf diese Weise werden alle nachfolgenden Ausführungen der Anwendung diese gleiche Registrierungskennung bei jeder Ausführung der Anwendung nutzen, gleichgültig ob das Computersystem zwischenzeitlich in die Aus- oder Standby-Leistungsmodi übergegangen ist.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung können verschiedene Instanzen oder Prozeße der gleichen Anwendung gleichzeitig in Betrieb sein. Jedem dieser verschiedenen Prozeße wird eine eindeutige Registrierungskennung gegeben. Auf diese Weise können der gleichen Anwendung mehrere Registrierungskennungen zugeordnet sein. Jedem laufenden Prozeß ist jedoch nur eine einzige Registrierungskennung zugeordnet.
  • Jede Instanz einer Anwendung weist einen unterschiedlichen Registrierungsdatensatz auf. Daher ist jede zur Einstellung ihrer eigenen Neustart-Richtlinie und Fixpunktinformationen im Stande.
  • Das Pfad-Feld 410 des Registrierungsdatensatzes 400 enthält die Speicherstelle der Anwendung innerhalb des Computerdateisystems. In einer Implementierung wird diese Speicherstelle durch einen den Namen der ausführbaren Datei enthaltenden, herkömmlichen DOS-Pfadnamen angezeigt, der die Speicherstelle des ausführbaren Codes der Anwendung auf einer Massenspeichereinrichtung anzeigt, wie zum Beispiel einem Festplattenlaufwerk.
  • Das Parameterlistenfeld 415 stellt für eine Anwendung die zum Beginnen der Ausführung notwendigen, zusätzlichen Parameter bereit. Die Anzahl und Beschaffenheit dieser Parameter ist von der Anwendung selbst abhängig. Zum Beispiel erfordern einige Anwendungen keine zusätzlichen Parameter, während andere Anwendungen einen Datendateinamen oder die Auswahl von Konfigurationsoptionen erfordern können.
  • Das Richtlinienfeld 420 stellt eine Registrierungsrichtlinie für die Anwendung bereit, die anzeigt, welche Aktionen, so vorhanden, der InstantON-Dienstvermittler 140 mit Bezug auf die Anwendung nach dem Stattfinden bestimmter Systemereignisse ergreifen soll. In einer Implementierung kann die Richtlinie irgendeine oder mehrere der folgenden Richtlinien sein Nichts, Absturz_Neustart [crash_restart], Inbetriebnehmen [startup], Im-Register-löschen [deregister] und Senden-an-das-oberste-Fenster [send_to_top_window]. Die Nichts-Richtlinie zeigt an, dass für diesen Registrierungsdatensatz keine Registrierungsrichtlinie existiert. Die Absturz_Neustart-Richtlinie zeigt an, dass der InstantON-Dienstvermittler 140 die Anwendung bei jedem fehlerhaften Programmabbruch (z.B. ein Stromausfall oder ein Softwareabsturz) ausführen soll. Die Inbetriebnehmen-Richtlinie zeigt an, dass der InstantON-Dienstvermittler 140 die Anwendung bei jedem Systemübergang vom Aus-Leistungsmodus in den Ein-Leistungsmodus ausführen soll. Die Im-Register-löschen-Richtlinie zeigt an, dass der InstantON-Dienstvermittler 140 die Anwendung bei jedem Programmabbruch der Ausführung der Anwendung im Register löschen soll. Die Senden-an-das-oberste-Fenster-Richtlinie zeigt an, dass der InstantON-Dienstvermittler 140 jegliche Nachrichten zum obersten Fenster der Anwendung übertragen soll. Die Senden-an-das-oberste_Fenster-Richtlinie ist für "Alt"-Anwendungen vorteilhaft, wie nachstehend ausführlicher behandelt wird.
  • Das Zeitstempelfeld 425 des Registrierungsdatensatzes 400 zeigt den Zeitpunkt der jüngsten Änderung des Datensatzes an. Dieses Feld wird bei jeder Modifikation des Registrierungsdatensatzes 400 vom InstantON-Dienstvermittler 140 aktualisiert.
  • Das Prozeßkennungsfeld 430 ist die dem laufenden Anwendungsprozeß vom Betriebssystem zugewiesene Prozeßkennung. In einer Implementierung ist dies die WindowsTM-Prozeßkennung, die sich bei jeder Ausführung der Anwendung ändern kann. Es sei angemerkt, dass obwohl sich die WindowsTM-Prozeßkennung bei jeder Ausführung der Anwendung ändern kann, die Registrierungskennung für die Anwendung gleich bleibt.
  • Das Memo-Feld 435 stellt den Anwendungsprozeß beschreibende Textinformationen bereit. Dies gestattet Anwendungsprogrammierern die Eingabe irgendeines, von ihnen gewünschten, beschreibenden Textes. Das Statusfeld 440 zeigt an, ob der Datensatz einem Anwendungsprozeß zugeordnet ist und ob dieser Prozeß mit dem InstantON-Dienstvermittler 140 verbunden ist.
  • Der InstantON-Dienstvermittler 140 unterstützt verschiedene Prozeduraufrufe. Diese gestatten Anwendungen die Registrierung beim Dienstvermittler und die Vorteile der Registrierungsdatensätze wahrzunehmen. Diese Prozeduraufrufe umfassen: IonRegister [IbeiRegistrierung], IonDeregister [IbeimLöschenInDer Registrierung], IonGetlnfo [IbeiErhalteInformationen], IonConnect [IbeiVerbinden], IonDisconnect [IbeiTrennen], IonSetRegData [IbeiSetzeRegDaten], IonGetNextRegID [IbeiErhalteNächsteRegID], IonCompareRegID [IbeiVergleicheRegID], IonGetRegRecord [IbeiErhalteRegDatensatz] und IonConnectManager [IbeiVerbindeManager].
  • Der Prozeduraufruf IonRegister stellt einer aufrufenden Anwendung ihre eindeutige Registrierungskennung bereit. Der Prozeduraufruf IonRegister kann mit Parametern irgendeines oder mehrerer der im Registrierungsdatensatz 400 gespeicherten Parameterfelder vorgenommen werden. Der Prozeduraufruf IonRegister kann auch mit irgendeinem der verschiedenen Registrierungsflags vorgenommen werden. In einem Ausführungsbeispiel umfassen diese Flags: associate_process [ordne_Prozeß_zu], find_or_create [finde_oder_erzeuge] und one_only [nur_einer]. Das Flag associate_process veranlaßt die automatische Zuordnung des WindowsTM-Prozeßes der Anwendung zur Registrierungskennung. Die WindowsTM-Prozeßkennung wird vom InstantON-Dienstvermittler 140 im Prozeßkennungsfeld 430 des Registrierungsdatensatzes 400 gespeichert. Das Flag find_or_create zeigt dem InstantON-Dienstvermittler 140 an, dass ein nicht bereits einem Anwendungsprozeß zugeordneter, übereinstimmender, existierender Registrierungsdatensatz an die Anwendung zurückzugeben werden wird. Wenn kein übereinstimmender Registrierungsdatensatz existiert, wird ein neuer Registrierungsdatensatz für die Anwendung erzeugt. In einer Implementierung ist ein übereinstimmender Datensatz ein Datensatz, der das gleiche Pfadfeld 410 und Parameterlistenfeld 415 wie die aufrufende Anwendung enthält. Auf diese Weise gestattet das Flag find_or_create einem Prozeß die Nutzung des Registrierungsdatensatzes eines vorherigen Anwendungsprozeßes, vorausgesetzt, der vorherige Prozeß läuft nicht mehr und die Pfad- und Parameterlisten stimmen überein. Das Flag one_only veranlaßt den InstantON-Dienstvermittler 140 zur Rückgabe der Registrierungskennung, vorausgesetzt, dass nur ein Registrierungsdatensatz mit den Pfad- und Parameterfeldern 410 und 415 der aufrufenden Anwendung übereinstimmt. In einer Implementierung gibt der InstantON-Dienstvermittler 140 einen den Erfolg anzeigenden Wert und eine Registrierungskennung zurück. Wenn ein Fehler auftritt, gibt der InstantON-Dienstvermittler 140 die geeignete Fehlermeldung zurück, die anzeigt, dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht, ein ungültiger Pfad bereitgestellt wurde, eine ungültige Registrierungsricht linie bereitgestellt wurde, ein ungültiges Flag bereitgestellt wurde, dem übereinstimmenden Registrierungsdatensatz bereits ein anderer Prozeß zugeordnet ist, wenn das Flag one_only gesetzt war, oder eine ungültige Speicherstelle zum Empfang der Registrierungskennung bereitgestellt wurde.
  • Wenn ein Anwendungsprozeß mit der Richtlinie crash_restart registriert wurde, wird er von der Prozeßüberwachung 150 des InstantON-Dienstvermittlers 140 überwacht. Die Prozeßüberwachung 150 speichert Identifizierungsinformationen für Prozeße mit der Richtlinie crash_restart und irgendwelche anderen, gegenwärtig verbundenen Prozeße im nichtflüchtigen Speicher des Computersystems, wie zum Beispiel der Massenspeichereinrichtung 225 von 2. In einer Implementierung sind die Identifizierungsinformationen der Registrierungsdatensatz 400. Auf diese Weise kann im Falle eines Systemstromausfalls die Prozeßüberwachung 150 bei wiederhergestellter Leistung schnell bestimmen, welche Anwendungen, so vorhanden, zum Zeitpunkt des Stromausfalls ausgeführt wurden und auch welche Anwendungen ausgeführt werden sollen, selbst wenn sie zum Zeitpunkt des Stromausfalls nicht in Betrieb waren.
  • Die Richtlinie crash_restart führt nach einem fehlerhaften Programmabbruch der Anwendung zum Neustart der Anwendung. Ein fehlerhafter Programmabbruch umfaßt zum Beispiel den Absturz der Anwendung, einen Absturz des Betriebssystems oder einen Stromausfall. Sobald sie neu gestartet ist, kann die Anwendung durch das Abrufen irgendwelcher ihrer Fixpunktdatensätze zu ihrem Betriebszustand vor dem Programmabbruch zurückkehren, wie nachstehend behandelt wird.
  • Eine registrierte Anwendung kann unter Verwendung des Prozeduraufrufs IonDeregister im Register gelöscht werden. Der Prozeduraufruf IonDeregister wird mit einem einzelnen Parameter durchgeführt: die Registrierungskennung. Nach dem Empfang eines Aufrufs IonDeregister löscht der InstantON-Dienstvermittler 140 den die Bezeichnung Registrierungskennung aufweisenden Registrierungsdatensatz sowie irgendwelche Fixpunkt-Wiederherstellungsinformationen für die Anwendung von der Prüflistendatenbank. Zusätzlich werden vom InstantON- Dienstvermittler 140 auch irgendwelche auf die im Register gelöschte Anwendungsinstanz gerichteten, anstehenden Nachrichten oder Aktionen zerstört. In einer Implementierung gibt der InstantON-Dienstvermittler 140 einen den Erfolg anzeigenden Wert zurück, eine ungültige Registrierungskennung oder dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht.
  • Der Prozeduraufruf IonGetInfo stellt dem aufrufenden Anwendungsprozeß eine dem Anwendungsprozeß zugeordnete InstantON-Registrierungskennung bereit, vorausgesetzt, der Prozeß wurde durch den InstantON-Dienstvermittler 140 gestartet. Ein Anwendungsprozeß kann vom InstantON-Dienstvermittler 140 gestartet werden, wenn zum Beispiel eine geplante Aufgabe eine gegenwärtig nicht laufende Anwendung erfordert. Als Antwort auf den Prozeduraufrufs IonGetInfo überprüft der InstantON-Dienstvermittler 140, ob die Anwendung registriert ist. Wenn die Anwendung registriert ist, wird die Registrierungskennung an die aufrufende Anwendung zurückgegeben. Wenn die Anwendung nicht registriert ist oder die Anwendung nicht vom InstantON-Dienstvermittler 140 gestartet wurde, wird eine Anzeige "nicht registriert" an die aufrufende Anwendung zurückgegeben. Wenn die Anwendung in der Fixpunktdatenbank 165 gespeicherte Fixpunktdaten aufweist, gibt der InstantON-Dienstvermittler 140 in einem Ausführungsbeispiel auch ein Flag zurück, das anzeigt, dass die Anwendung gespeicherte Fixpunktdaten aufweist. In einem Ausführungsbeispiel gibt der InstantON-Dienstvermittler 140 die angeforderte Registrierungskennung und einen den Erfolg anzeigenden Wert zurück. Wenn ein Fehler auftrat, gibt der InstantON-Dienstvermittler 140 einen Wert zurück, der anzeigt, dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht oder dass eine ungültige Speicherstelle zum Empfang der Registrierungskennung bereitgestellt wurde.
  • Der Prozeduraufruf IonConnect wird vom aufrufenden Anwendungsprozeß zum Verbinden mit dem InstantON-Dienstvermittler 140 und zur Deklaration seiner Bereitschaft zum Empfang von InstantON-Nachrichten von anderen Anwendungen genutzt. Ein nicht verbundener Anwendungsprozeß wird keine InstantON- Nachrichten von anderen Anwendungen empfangen, selbst wenn er gegenwärtig läuft. Beim Aufruf von IonConnect fügt der Anwendungsprozeß als Parameter die Registrierungskennung des Anwendungsprozeßes und eine Nachrichtenbehandlungsroutine und eine Nachrichtenkennung zum Empfang von durch IonScheduleAction geplanten InstantON-Nachrichten ein, wie nachstehend ausführlicher behandelt wird. Nach dem Empfang des Aufrufs IonConnect ordnet der InstantON-Dienstvermittler 140 die durch den Aufruf gelieferte Registrierungskennung dem aufrufenden Anwendungsprozeß zu. In einer Implementierung wird diese Zuordnung durch die Speicherung der Betriebssystemprozeßkennung im Prozeßkennungsfeld 430 des Registrierungsdatensatzes 400 vorgenommen. In einer Implementierung gibt der InstantON-Dienstvermittler 140 einen den Erfolg anzeigenden Wert zurück, eine ungültige Registrierungskennung oder dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht.
  • Der Prozeduraufruf IonDisconnect kann von einem Anwendungsprozeß vorgenommen werden, um sich selbst vom InstantONDienstvermittler 140 zu trennen. Durch die Selbsttrennung deaktiviert der Anwendungsprozeß den Empfang jeglicher InstandON-Nachrichten. In einer Implementierung gibt der InstantON-Dienstvermittler 140 einen den Erfolg kennzeichnenden Wert zurück, eine ungültige Registrierungskennung, dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht oder dass die Anwendung nicht verbunden ist.
  • Der Prozeduraufruf IonSetRegData gestattet einem Anwendungsprozeß jedes Feld des Registrierungsdatensatzes 400 für den aufrufenden Anwendungsprozeß zu ändern. Die Parameter für den Aufruf umfassen die Registrierungskennung und irgendeines oder mehrere der Parameterfelder 410 bis 440, die der Anwendungsprozeß aktualisiert. In einer Implementierung gibt der InstantON-Dienstvermittler 140 einen den Erfolg kennzeichnenden Wert zurück, eine ungültige Registrierungskennung, dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht oder dass eine ungültige Richtlinie bereitgestellt wurde.
  • Der Prozeduraufruf IonGetNextRegID stellt dem aufrufenden Anwendungsprozeß die nächste InstantON-Registrierungskennung bereit. In einem Ausführungsbeispiel werden die Registrierungsdatensätze in numerischer Reihenfolge in der Registrierungsdatenbank 170 gespeichert. Dadurch werden beim Löschen eines Anwendungsprozeßes im Register Lücken zwischen den Registrierungskennungen hinterlassen. Auf diese Weise ist dieser Prozeduraufruf zur Vermeidung von Aufrufen mit ungültigen Registrierungskennungen vorteilhaft. In einer Implementierung gibt der InstantON-Dienstvermittler 140 einen den Erfolg kennzeichnenden Wert zurück oder dass keine nächste Registrierungskennung vorhanden ist.
  • Der Prozeduraufruf IonCompareRegID vergleicht zwei InstantON-Registrierungskennungen. Die Parameter für den Prozeduraufruf sind Zeiger auf die zwei Variablen, die beide Registrierungskennungen enthalten. In einer Implementierung gibt der Prozeduraufruf IonCompareRegID einen Wert Null zurück, wenn die Registrierungskennungen gleich sind, und einen Wert Eins, wenn sie verschieden sind.
  • Der Prozeduraufruf IonGetRegRecord stellt dem aufrufenden Anwendungsprozeß die Fähigkeit zum Abrufen und Prüfen von Registrierungsdatensätzen bereit. Der aufrufende Prozeß umfaßt als Parameter einen Zeiger auf die die Registrierungskennung des angeforderten Registrierungsdatensatzes enthaltende Variable und einen Zeiger auf eine den Registrierungsdatensatz empfangende Variable. Es sei angemerkt, dass von einem Prozeß der gesamte Satz von Registrierungsdatensätzen durch den abwechselnden Aufruf von IonGetNextRegID und IonGetRegRecord geprüft werden kann. In einer Implementierung gibt der InstantON-Dienstvermittler 140 den angeforderten Registrierungsdatensatz und einen den Erfolg kennzeichnenden Wert zurück. Wenn ein Fehler auftrat, gibt der InstantON-Dienstvermittler einen eine ungültige Registrierungskennung anzeigenden Wert zurück, dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht oder dass eine ungültige Speicherstelle zum Empfang des Registrierungsdatensatzes bereitgestellt wurde.
  • Der Prozeduraufruf IonConnectManager verbindet zum Zweck des Empfangs von Datenbankaktualisierungsbenachrichtigungen den aktuellen Prozeß eines InstantON-Managers 180 mit dem In stantON-Dienstvermittler 140. Als Reaktion stellt der InstantON-Dienstvermittler 140 Nachrichten an den InstantON-Manager 180 bereit, die Modifikationen an den InstantON-Datenbanken (z.B. Planungsdatenbank 155, der Log-Datenbank 160, der Fixpunkt-Datenbank 165 und der Registrierungsdatenbank 170) anzeigen. Auf diese Weise ermöglicht der Aufruf IonConnectManager dem InstantON-Manager 180, den aktuellen Zustand der InstantON-Datenbanken effizient zu spiegeln. In einer Implementierung gibt der InstantON-Dienstvermittler 140 einen den Erfolg kennzeichnenden Wert zurück, eine ungültige Registrierungskennung oder dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht.
  • Auf diese Weise gestatten die Registrierungsdienste durch die Verwendung der eindeutigen Registrierungskennung des Ziel-Prozeßes jedem auf dem Computersystem laufenden Anwendungsprozeß über den InstantON-Dienstvermittler 140 eine Kommunikation mit anderen Prozeßen. Wenn die Anwendungen registriert sind, ist zusätzlich der InstantON-Dienstvermittler 140 zur Ausführung von Anwendungen im Stande, wie es zur nachstehend behandelten Aufgabenplanung benötigt wird. Eine Anwendung kann durch die Bereitstellung des Pfadnamens und der Parameter an das Betriebssystem 120 mit einer Anforderung zu ihrer Ausführung ausgeführt werden. Der InstantON-Dienstvermittler 140 ist auch zur Überwachung von registrierten und verbundenen Anwendungen und zur Ausführung der geeigneten Anwendungen bei jeder Wiederherstellung des Systems nach einem Stromausfall, einem Systemabsturz oder einem Softwareabsturz im Stande. Zusätzlich stellen die vorstehend beschriebenen Prozeduraufrufe Prozeßen eine Fähigkeit zum Zugriff und zur Modifikation der in der Registrierungsdatenbank gespeicherten Daten bereit.
  • Folglich steht ein den Registrierungsprozeß der vorliegenden Erfindung nutzendes Computersystem auf Anforderung zur Verfügung. Das System ist im Stande, sich bei Anforderung zur Ausführung notwendiger Aufgaben selbst automatisch aus einem Modus mit geringer Leistungsaufnahme herauszunehmen und ist auch zur Wiederherstellung nach Stromausfällen und Software- oder Systemabstürzen im Stande.
  • 5 ist ein Ablaufdiagramm, das die zur Registrierung eines Prozeßes befolgten Schritte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt. Der aufrufende Prozeß ruft zuerst IonGetInfo auf, um zu bestimmen, ob für diesen Prozeß bereits eine Registrierungskennung existiert, 510. Wie vorstehend behandelt, existiert bereits eine Registrierungskennung, wenn sich der Prozeß vorher beim InstantON-Dienstvermittler 140 registriert hat. Wenn die Anwendung vom InstantON-Dienstvermittler 140 gestartet wurde, wird die Registrierungskennung zurückgegeben.
  • Der aufrufende Prozeß überprüft dann, ob als Antwort auf den Aufruf IonGetInfo eine Registrierungskennung vom InstantON-Dienstvermittler 140 zurückgegeben wurde, Schritt 520. Wenn eine Registrierungskennung zurückgegeben wurde, nimmt der aufrufende Prozeß mit der zurückgegebenen Registrierungskennung einen Prozeduraufruf IonConnect vor, um sich mit dem InstantON-Dienstvermittler 140 zu verbinden, Schritt 540. Wenn jedoch keine Registrierungskennung zurückgegeben wurde, nimmt der aufrufende Prozeß zum Auffinden oder Erzeugen eines Registrierungsdatensatzes einen Aufruf IonRegister vor, Schritt 530. Der aufrufende Prozeß nimmt dann unter Verwendung der vom Aufruf IonRegister zurückgegebenen Registrierungskennung zum Verbinden mit dem InstantON-Dienstvermittler 140 einen Prozeduraufruf IonConnect vor, Schritt 540.
  • In einem Ausführungsbeispiel stellt die vorliegende Erfindung auch eine Unterstützung für "Alt"-Anwendungen bereit. Eine Altanwendung ist eine Anwendung, die ohne die Vorteile der vom InstantON-Dienstvermittler 140 unterstützten Prozeduraufrufe wahrzunehmen, erzeugt wurde. Da eine Altanwendung die Prozeduraufrufe nicht unterstützt, stehen die Registrierungs-, Fixpunkt- und Planungsdienste der vorliegenden Erfindung der Altanwendung ohne eine zusätzliche Unterstützung nicht zur Verfügung.
  • In einer Implementierung wird eine Unterstützung für Altanwendungen durch eine InstantON-Manager-Anwendung bereitgestellt. Die InstantON-Manager-Anwendung kann Teil des Managers 180 von 1 oder alternativ eine der Anwendungen 185 sein.
  • Die InstantON-Manager-Anwendung ist keine Altanwendung. Statt dessen ruft der InstantON-Manager die InstantON-Funktionalität im Auftrag einer Altanwendung auf. Dies wird erreicht, indem zuerst der InstantON-Manager ausgeführt wird. Der InstantON-Manager registriert dann die Anwendung und plant mit dem InstantON-Dienstvermittler 140 eine Startaufgabe (die Aufgabenplanung wird nachstehend ausführlicher behandelt). Die Startaufgabe kann für den aktuellen Zeitpunkt (das heißt jetzt) oder für einen zukünftigen Zeitpunkt sein. Auf diese Weise führt der InstantON-Dienstvermittler 140 die Altanwendung aus und weist sowohl eine Registrierungskennung als auch eine Prozeßkennung für die Altanwendung auf. Durch eine Registrierung der Altanwendung mit der Registrierungsrichtlinie Senden-an-das-oberste-Fenster können von anderen Anwendungen Nachrichten zur Altanwendung gesendet werden. Wenn folglich der InstantON-Dienstvermittler 140 eine auf die Registrierungskennung der Altanwendung gerichtete Nachricht empfängt, leitet er die Nachricht zum obersten Fenster der registrierten Anwendung (das heißt zur Altanwendung) weiter.
  • Aufgabenplanung gemäß der vorliegenden Erfindung
  • Eine Aufgabenplanung bezieht sich auf die Planung verschiedener Aufgaben oder Aktionen, die vom Computersystem zu ganz bestimmten Zeitpunkten durchzuführen sind. Diese Aufgaben umfassen die Ausführung und den Programmabbruch von Anwendungen und das Senden von Nachrichten an mit dem InstantON-Dienstvermittler 140 verbundene Prozeße. Die Zeitpunkte, wann diese Aufgaben auszuführen sind, werden durch spezielle Zeitpunkte oder Zeitspannen gekennzeichnet, das Stattfinden ganz bestimmter Ereignisse, wie zum Beispiel eine Änderung in der Systemleistungsstufe, und Ereignisse der Änderung des Anwendungsstatus, wie zum Beispiel Ausführung, Programmabbruch oder Absturz.
  • Aufgaben können über mehrere Ausführungssitzungen hinweg geplant werden. Die Ausführungssitzungen für einen bestimmten Anwendungsprozeß beziehen sich auf die Zeitabschnitte, während der der Prozeß läuft. Wenn sich das System im Standby-Modus befindet, läuft ein Anwendungsprozeß aktuell nicht, selbst wenn er in den Hauptspeicher geladen ist. Eine Ausführungssitzung kann freiwillig (z.B. die Anwendung oder der Systemanwender entscheidet, die Ausführung zu beenden) oder unfreiwillig (z.B. ein Stromausfall) beendet werden. Aufgaben können für eine gegenwärtig laufende oder zu einem zukünftigen Zeitpunkt zu laufen beginnende Anwendung geplant werden.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung werden Aufgabenplanungsinformationen in einer Planungsdatenbank gespeichert, wie zum Beispiel der Planungsdatenbank 155 von 1. Die Planungsdatenbank wird in einem nichtflüchtigen Speicher gespeichert, wie zum Beispiel der Massenspeichereinrichtung 225 von 2. Jede in der Planungsdatenbank 155 gespeicherte Aufgabe umfaßt ein Ereignis, eine Aktion und eine Richtlinie. Das Ereignis legt fest, was für ein Ereignis die Aktion zur Ausführung veranlassen wird. Die Aktion legt fest, welche Schritte der InstantON-Dienstvermittler 140 ausführen soll und die Richtlinie modifiziert die Art und Weise, in der der InstantON-Dienstvermittler 140 die Aktion ausführt.
  • Jedes zum Auftreten geplante Ereignis wird in einem Planungsdatensatz der Planungsdatenbank gespeichert. Ein Planungsdatensatz gemäß einer Implementierung ist in 6 gezeigt. Der Planungsdatensatz 600 umfaßt die folgenden Felder: eine Aktionskennzeichnung 605, eine Inhaberkennzeichnung 610, eine Zielkennzeichnung 615, ein Ereignisfeld 620, ein Aktionsfeld 625, ein Richtlinienfeld 630, ein Gesamtanzahlfeld 635, ein Restanzahlfeld 640, ein Zeitstempelfeld 645, ein Nachrichtenfeld 650, ein Nächster-Zeitpunkt-Feld 655 und ein Memofeld 660.
  • Das Aktionskennzeichnungsfeld 605 ist ein eindeutiger Kennzeichnungswert für den Planungsdatensatz 600. Das Inhaberkennzeichnungsfeld 610 ist die InstantON-Registrierungskennung für die Anwendung, die den Planungsdatensatz 600 erzeugte. Das Zielkennzeichnungsfeld 615 ist die InstantON-Registrierungskennung für die Anwendung, auf der die geplante Aktion auszuführen ist. Die Aktion kann auf jeder beim InstantON-Dienstvermittler 140 registrierten Anwendung ausgeführt werden, einschließlich der Anwendung, die den Planungsdatensatz erzeugte.
  • Das Ereignisfeld 620 legt fest, was für ein Ereignis das Auftreten der geplanten Aktion veranlassen wird. In einer Implementierung wird das Ereignis durch einen der folgenden Werte angezeigt: Jetzt [now], Zeitpunkt [time], Flexibler_Zeitpunkt [flexible_time], Relativer_Zeitpunkt [relative_time], Leistungs Ereignis [power event] oder Zustand_Änderung [status_change]. Das Ereignisfeld 620 enthält einen dieser Werte. In einer alternativen Implementierung kann das Ereignisfeld 620 irgendeine Kombination dieser Werte enthalten. Der Ereigniswert Jetzt zeigt an, dass die Aktion zum aktuellen Zeitpunkt ausgeführt werden soll. Der Ereigniswert Zeitpunkt zeigt ein einmaliges oder wiederholtes Zeitpunkt-Ereignis an. Der Ereigniswert Flexibler_Zeitpunkt zeigt ein mehrmaliges Ereignis an, das für ganz bestimmte Tage der Woche oder des Monats freigegeben werden kann. Der Ereigniswert Relativer_Zeitpunkt zeigt ein Ereignis an, das sich in einem Verhältnis zu einer anderen, im System einzuleitenden Aktion befindet. Der Ereigniswert Leistungs_Ereignis zeigt ein bei einer Änderung der Leistungsstufe auftretendes Ereignis an. Der Ereigniswert Zustand_Änderung zeigt ein bei einer Änderung des Status eines Prozeße auftretendes Ereignis an.
  • Die im Ereignisfeld 620 gespeicherten Informationen sind vom angezeigten Ereignis abhängig. Der Ereigniswert Jetzt erfordert keine zusätzlichen Informationen. Der Leistungs_Ereignis-Wert zeigt an, dass die geplante Aktion bei einem Ereignis der Leistungsänderung gegenüber dem im Ereignisfeld 620 angezeigten Wert ausgeführt werden soll. In einer Implementierung ist das Ereignis der Leistungsänderung eine Änderung zu entweder der Ein-Leistungsstufe oder der Standby-Leistungsstufe. Jedes Mal, wenn der InstantON-Dienstvermittler 140 ein Ereignis der Leistungsänderung erfaßt, wird auf diese Weise die geplante Aktion ausgeführt.
  • Die 7A, 7B, 7C und 7D zeigen Beispielereignisfelder 620 für ein Ereignis Zeitpunkt, ein Ereignis Flexibler_Zeitpunkt, ein Ereignis Relativer_Zeitpunkt beziehungswei se ein Ereignis Zustand_Änderung. Die in 7A gezeigten Zeitereignisinformationen 700 für ein Ereignis Zeitpunkt umfassen ein Zeitstempelfeld 703 und ein Zeitabschnittfeld 706. Das Zeitstempelfeld 703 zeigt den Zeitpunkt an, an dem die geplante Aktion auftreten soll. Wenn die geplante Aktion eine wiederholte Aktion ist, zeigt das Zeitabschnittfeld 706 die Häufigkeit, mit der das Ereignis wiederholt wird, an. Wenn die geplante Aktion ein einzelner Zeitpunkt ist, enthält das Zeitabschnittfeld einen Wert Null.
  • Die in 7B gezeigten Zeitereignisinformationen 710 für ein Ereignis Flexibler_Zeitpunkt stellen der aufrufenden Anwendung eine Flexibilität zur Programmierung irgendeiner Startzeit, Abschlußzeit oder Periodendauer für das Ereignis bereit. Das Startzeitfeld 712 enthält eine Zeit und ein Datum, das anzeigt, wann die geplante Aktion mit dem Ablauf zu beginnen hat. Die Aktion wird ungeachtet der in den Feldern 714 bis 728 gespeicherten Werte nicht vor dem Zeitpunkt des Startzeitfeldes 712 ausgeführt. Das Abschlußzeitfeld 714 enthält die Zeit und das Datum, wann die geplante Aktion den Ablauf anzuhalten hat. Nach der/dem im Abschlußzeitfeld 714 enthaltenen Zeit und Datum löscht der InstantON-Dienstvermittler 140 den Planungsdatensatz 600.
  • Die ausgewählten Tage für die geplante Aktion können durch das Einstellen des Tag-der-Woche-Feldes 716, des Tag-des-Monats-Feldes 718, des Woche-des-Monats-Feldes 720 und des Monat-des-Jahres-Feldes 722 angezeigt werden. Es kann jede Kombination der Felder 716, 718, 720 und 722 eingestellt werden. Das Tagesstartzeitfeld 724 stellt eine Zeitdauer nach Mitternacht bereit, bei der die geplante Aufgabe auftreten soll. Das Tageszeitabschnittfeld 726 zeigt die Häufigkeit an, mit der die geplante Aktion tagsüber wiederholt wird. Das Tagesanzahlfeld 728 zeigt für die geplante Aktion die maximale Anzahl periodischer Ereignisvorkommen pro Tag an.
  • Die in 7C gezeigten Zeitereignisinformationen 740 für ein Ereignis Relativer_Zeitpunkt umfassen ein Aktionskennzeichnungsfeld 743 und ein Verzögerungsfeld 746. Das Aktionskennzeichnungsfeld 743 enthält die Aktionskennzeichnung des Planungsdatensatzes, mit dem dieses geplante Ereignis im Verhältnis steht. Das Verzögerungsfeld 746 enthält die Zeitdauer, nach der nach dem Auftreten der im Aktionskennzeichnungsfeld 743 angezeigten Aktion diese geplante Aktion auftreten soll. Auf diese Weise kann das Auftreten einer Aktion zu einem vorgegebenen Zeitpunkt nach dem Auftreten einer anderen geplanten Aktion geplant werden.
  • Die in 7D gezeigten Ereignisinformationen 750 für ein Ereignis Zustand_Änderung umfassen ein Registrierungskennungsfeld 753 und ein Typfeld 756. Das Registrierungskennungsfeld 753 enthält die Registrierungskennung der Anwendung, deren Zustand für die vorliegende geplante Aktion überwacht werden soll. Das Typfeld 756 zeigt die Zustandsänderungen an, die vom InstantON-Dienstvermittler 140 für diese Anwendung überwacht werden sollen. In einer Implementierung sind die überwachbaren Zustände: Starten der Anwendung, Normale Beendigung, Absturz der Anwendung, die Anwendung verbindet sich mit dem InstantON-Dienstvermittler 140 und die Anwendung trennt sich vom InstantON-Dienstvermittler 140. Auf diese Weise läuft die geplante Aufgabe ab, so oft die im Typfeld 756 angezeigte Zustandsänderung für die die im Registrierungskennungsfeld 753 angezeigte Registrierungskennung aufweisende Anwendung auftritt.
  • Das Aktionsfeld 625 des Planungsdatensatzes 600 zeigt die auszuführende Aktion an. In einer Implementierung umfassen die vom InstantON-Dienstvermittler 140 ausführbaren Aktionen das Starten oder Ausführen einer Anwendung, das Beenden einer Anwendung und das Senden einer Nachricht zu einer Anwendung.
  • In einem Ausführungsbeispiel führt der InstantON-Dienstvermittler 140 durch ein Bereitstellen des Pfadnamens und der Parameter für die Anwendung, wie sie im Registrierungsdatensatz der Anwendung gespeichert sind, an das Betriebssystem 120 mit einer Anforderung, die Anwendung auszuführen, eine Anwendung aus. Der InstantON-Dienstvermittler 140 kann eine Anwendung durch das Senden einer Anforderung, die Ausführung der Anwendung zu beenden, an das Betriebssystem 120 beenden. Es können verschiedene Arten von Nachrichten gesendet werden, wie nachstehend behandelt wird.
  • Das Richtlinienfeld 630 legt die Planungsrichtlinie für die Aufgabe fest. In einer Implementierung umfassen die Planungsrichtlinien eine Leer-Richtlinie, eine Richtlinie zur späteren Ausführung und eine Neustart-Richtlinie. Die Richtlinie zur späteren Ausführung zeigt an, dass der InstantON-Dienstvermittler 140 die Aktion ausführen soll, selbst wenn die geplante Zeit abgelaufen ist (z.B. war die Systemleistung zum geplanten Zeitpunkt im Aus-Modus). Die Neustart-Richtlinie zeigt an, dass der InstantON-Dienstvermittler 140 die Anwendung erforderlichenfalls neu starten soll, um die Aktion auszuführen. Die Leer-Richtlinie zeigt an, dass keine Richtlinie angezeigt wurde.
  • Das Gesamtanzahlfeld 635 zeigt die Gesamtanzahl der Zeitpunkte an, zu denen die geplante Aktion auftreten soll. Das Gesamtanzahlfeld 635 kann jede von Null bis „Immer" reichende Zahl sein. Das Restanzahlfeld 640 zeigt die Anzahl der Zeitpunkte an, zu denen die geplante Aktion auftreten wird. Wenn das System während eines Zeitpunktes, zu dem ein periodisches Ereignis auftreten würde, nicht in Betrieb ist, wird die Anzahl automatisch reduziert, um die verlorenen Ereignisse zu verrechnen. Dies verhindert das Fortsetzen der periodischen Ereignisse bis zu einem späteren als dem ursprünglich vorgesehenen Zeitpunkt. In einer Implementierung kann das Anzahlfeld 635 auf „Immer" eingestellt werden, um die unbegrenzte Anzahl von Ausführungen der Aktion anzuzeigen. Das Zeitstempelfeld 645 zeigt den Zeitpunkt der letzten Modifikation des Planungsdatensatzes 600 an.
  • Das Nachrichtenfeld 650 zeigt die Art der Nachricht und irgendwelche, dieser Nachricht zugeordneten Daten an. In einer Implementierung kann die Nachrichtart keine Nachricht, eine herkömmliche WindowsTM-Nachricht, eine anwenderdefinierte Nachricht, eine Fixpunktspeichernachricht, eine Anforderung an die Anwendung zum Beenden, eine Nachricht über den bevorstehenden Eintritt in den Standby-Leistungsmodus und eine Nachricht über den gerade erfolgten Eintritt in den normalen Leistungsmodus sein. Wenn in einer Implementierung eine Nachricht zum Senden an eine nicht mit dem InstantON-Dienstvermittler 140 verbunde ne Anwendung geplant ist, stellt der InstantON-Dienstvermittler 140 die Nachricht für eine Zeitdauer in eine Warteschlange und stellt die Nachricht dem Ziel zu, wenn es sich vor dem Beenden des Anwendungsprozeßes verbindet. Wenn sich die Zielanwendung nicht vor dessen Beendigung verbindet, wird die Nachricht gelöscht.
  • In einer anderen Implementierung gestattet der InstantON-Dienstvermittler 140 die Planung von Nachrichten für nicht zu dem Zeitpunkt laufende Anwendungen, zu dem die geplante Aufgabe auftreten soll. Wenn eine geplante Aufgabe eine Nachricht an eine nicht laufende Anwendung zu senden versucht, stellt der InstantON-Dienstvermittler 140 die Nachricht vorübergehend in eine Warteschlange. Der InstantON-Dienstvermittler 140 sendet dann eine Anforderung zur Ausführung der Anwendung basierend auf den in der Registrierungsdatenbank 170 gespeicherten Informationen an das Betriebssystem 120 und stellt die Nachricht der Zielanwendung zu. Sobald die Nachricht empfangen wurde, bleibt die Zielanwendung in Betrieb oder beendet alternativ die Ausführung als Antwort auf eine ihre Beendigung anfordernde Nachricht oder durch eine geplante Aufgabe allein.
  • Das Nächster-Zeitpunkt-Feld 655 zeigt den nächsten geplanten Zeitpunkt für die Aktion des Planungsdatensatzes 600 an. Das heißt, zu welchem Zeitpunkt das nächste Auftreten der Aufgabe geplant ist. Das Memofeld 660 stellt eine anwenderdefinierbare Beschreibung der geplanten Aufgabe bereit.
  • Auf dem Computersystem in Betrieb befindliche Anwendungen sind im Stande, über den InstantON-Dienstvermittler 140 auf die Planungsdatenbank 155 zuzugreifen. In einem Ausführungsbeispiel werden zur Bereitstellung dieses Zugriffs fünf Prozeduraufrufe genutzt: IonScheduleAction [IbeiPlanungAktion], IonDeleteActRecord [IbeiLöschenAktDatensatz], IonGetNextActID [IbeiErhalteNächsteAktID], IonCompareActID [IbeiVergleicheAktID] und IonGetActRecord [IbeiErhalteAktDatensatz]. Jeder Anwendungsprozeß kann auf die Planungsdatenbank 155 zugreifen. In einer Implementierung wird eine Benutzerschnittstelle bereitgestellt, wie zum Beispiel die Benutzerschnittstelle 180 von 1, die einem Anwender den Zugriff auf die Planungsdatenbank 155 gestattet.
  • Eine Anwendung plant unter Nutzung des Prozeduraufrufs IonScheduleAction eine Aufgabe. Der Prozeduraufruf IonScheduleAction wird durch den aufrufenden Anwendungsprozeß unter Nutzung der folgenden Parameter initiiert: eine Zielkennzeichnung, eine Aktion, ein Ereignis, eine Nachricht, ein Memo, eine Richtlinie, eine Gesamtanzahl und ein Zeiger auf eine Variable zum Empfang der Aktionskennzeichnung. Diese Parameter entsprechen den Feldern des Planungsdatensatzes. Nach dem Empfang des Aufrufs erzeugt der InstantON-Dienstvermittler 140 gemäß den bereitgestellten Parametern einen Planungsdatensatz und gibt die Aktionskennzeichnung des neu erzeugten Planungsdatensatzes an den aufrufenden Anwendungsprozeß zurück. In einer Implementierung gibt der InstantON-Dienstvermittler 140 einen den Erfolg anzeigenden Wert zurück, dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht oder dass einer der bereitgestellten Parameter ungültig ist.
  • Aktionen werden von der Planungsdatenbank entweder automatisch oder durch die Verwendung des Prozeduraufrufs IonDeleteActRecord gelöscht. Aktionen können auf verschiedene Arten und Weisen automatisch gelöscht werden. Als erstes werden vom InstantON-Dienstvermittler 140 die zur einmaligen Ausführung geplanten Aktionen nach ihrer Ausführung automatisch gelöscht. Als zweites werden die einen Gesamtanzahlwert aufweisenden Aktionen gelöscht, sobald das Restanzahlfeld Null erreicht. Als drittes werden die Aktionen gelöscht, deren Zielregistrierungskennung mit der Registrierungskennung eines Prozeßes übereinstimmt, der vom InstantON-Dienstvermittler 140 aus dem Register gelöscht wurde.
  • Nicht automatisch gelöschte Aktionen können unter Verwendung des Prozeduraufrufs IonDeleteActRecord gelöscht werden. Die aufrufende Anwendung nimmt mit dem Parameter eines Zeigers auf eine die dem Planungsdatensatz zugeordnete Aktionskennzeichnung enthaltende Variable den Aufruf IonDeleteActRecord vor. Der InstantON-Dienstvermittler 140 empfängt diesen Prozeduraufruf und löscht den die angezeigte Aktionskennzeichnung aufweisenden Datensatz von der Planungsdatenbank. In einer Implementierung gibt der InstantON-Dienstvermittler 140 einen den Erfolg anzeigenden Wert zurück, eine ungültige Aktionskennzeichnung oder dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht.
  • Die Prozeduraufrufe IonGetNextActID, IonCompareActID und IonGetActRecord rufen die nächste Aktionskennzeichnung von der Planungsdatenbank ab, vergleichen zwei Aktionskennzeichnungen und rufen ein Aktionsdatensatz von der Planungsdatenbank ab. Diese Prozeduraufrufe sind analog zu den vorstehend behandelten Prozeduraufrufen IonGetNextRegID, IonCompareRegID und IonGetRegRecord mit der Ausnahme, dass die Werte mit/von der Planungsdatenbank und nicht mit/von der Registrierungsdatenbank verglichen und/oder abgerufen werden.
  • Wenn der InstantON-Dienstvermittler 140 eine geplante Aufgabe von der Planungsdatenbank 155 abschließt, werden erforderlichenfalls das Zeitstempelfeld 645, das Nächster-Zeitpunkt-Feld 655 und das Restanzahlfeld 640 des Planungsdatensatzes 600 aktualisiert.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung werden vom InstantON-Dienstvermittler 140 mehrere Softwarezeitgeber für verschiedene geplante Aufgaben verwendet. In einer Implementierung stellt der InstantON-Dienstvermittler 140 für jede geplante Aufgabe einen Softwarezeitgeber ein. Wenn einer dieser Softwarezeitgeber abläuft, führt der InstantON-Dienstvermittler 140 die geplanten Aufgaben aus und löscht diesen Softwarezeitgeber (periodische Zeitgeber werden jedoch nicht gelöscht, es sei denn, die Restanzahl der geplanten Aufgabe wird Null). In diesem Ausführungsbeispiel programmiert der InstantON-Dienstvermittler 140 beim Eintritt des Systems in den Standby-Modus den Zeitgeber 105 mit dem kleinsten in den Softwarezeitgebern enthaltenen Wert.
  • In einem Ausführungsbeispiel nutzt der InstantON-Dienstvermittler 140 eine mit der Anzahl der geplanten Aufgaben übereinstimmende Anzahl von Softwarezeitgebern. Es sollte jedoch verstanden werden, dass die Anzahl der vom InstantON- Dienstvermittler 140 verwendeten Zeitgeber jeden Wert gleich Eins oder größer annehmen kann.
  • 8 ist ein Ablaufdiagramm, das die zur Planung von Aufgaben und zur Ausführung geplanter Aufgaben befolgten Schritte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt. 8 zeigt die von einem Ausführungsbeispiel der vorliegenden Erfindung befolgte Logik und es sollte verstanden werden, dass der InstantON-Dienstvermittler 140 vom Betriebssystem 120 bis zum Empfang einer Eingabe für den Dienstvermittler 140 blockiert werden kann. Dadurch wird anderen Anwendungen die Nutzung des Prozeßors und anderer Ressourcen des Systems gestattet.
  • Der InstantON-Dienstvermittler 140 überprüft zuerst, ob ein Prozeduraufruf IonScheduleAction empfangen wurde, Schritt 805. wenn ein Aufruf IonScheduleAction empfangen wurde, erzeugt der InstantON-Dienstvermittler 140 einen Planungsdatensatz gemäß den im Aufruf bereitgestellten Informationen, Schritt 810. Der InstantON-Dienstvermittler 140 erzeugt dann für die Aufgabe einen Softwarezeitgeber und stellt den Zeitgeber auf den Wert des Nächster-Zeitpunkt-Feldes 655 des Planungsdatensatzes ein, Schritt 815. Der Softwarezeitgeber enthält die Aktionskennzeichnung für den geplanten Datensatz. Dadurch wird dem InstantON-Dienstvermittler 140 eine schnelle Bestimmung, welcher Planungsdatensatz welchem Softwarezeitgeber entspricht, ermöglicht. Der InstantON-Dienstvermittler 140 kehrt dann zur Fortsetzung der Verarbeitung zu Schritt 805 zurück.
  • Wenn kein Aufruf IonScheduleAction empfangen wurde, überprüft der InstantON-Dienstvermittler 140, ob ein Aufruf IonDeleteActRecord empfangen wurde, Schritt 820. Wenn ein Aufruf IonDeleteActRecord empfangen wurde, löscht der InstantON-Dienstvermittler 140 den vom Aufruf gekennzeichneten Datensatz, Schritt 825. Der InstantON-Dienstvermittler 140 löscht dann den dem gekennzeichneten Planungsdatensatz entsprechenden Softwarezeitgeber, Schritt 830. Der InstantON-Dienstvermittler 140 setzt dann die Verarbeitung in Schritt 805 fort.
  • Wenn kein Aufruf IonDeleteActRecord empfangen wurde, überprüft der InstantON-Dienstvermittler 140, ob ein Softwarezeitgeber einen Interrupt ausgelöst hat, Schritt 835. Wenn kein Zeitgeberinterrupt empfangen wurde, setzt der InstantON-Dienstvermittler 140 die Verarbeitung in Schritt 805 fort.
  • Wenn jedoch ein Zeitgeberinterrupt empfangen wurde, lokalisiert der InstantON-Dienstvermittler 140 mit dem den Interrupt veranlassenden Softwarezeitgeber den Planungsdatensatz, Schritt 840. Dann wird die geplante Aktion ausgeführt, Schritt 845.
  • Wenn eine Aufgabe „Starte Anwendung" oder „Stelle eine Nachricht mit einer Neustart-Richtlinie zu" für einen gegenwärtig nicht laufenden Anwendungsprozeß geplant ist, sendet der InstantON-Dienstvermittler 140 unter Verwendung der im Registrierungsdatensatz für den Prozeß gespeicherten Parameter eine Nachricht zum Laden des als Ziel gesetzten Anwendungsprozeßes in den Hauptspeicher an das Betriebssystem 120. Zusätzlich werden jegliche durch den Anwendungsprozeß gespeicherten Fixpunktdaten auf seine Anforderung an den Prozeß geliefert, wie nachstehend ausführlicher behandelt wird.
  • Wenn eine geplante Aufgabe ausgeführt wird, aktualisiert der InstantON-Dienstvermittler 140 das Nächster-Zeitpunkt-Feld für die Datensätze, deren Aktion ausgeführt wurde, Schritt 850. Wenn der Datensatz eine Restanzahl gleich Null aufweist, löscht der InstantON-Dienstvermittler 140 zusätzlich in Schritt 850 auch den Planungsdatensatz und seinen entsprechenden Softwarezeitgeber. Der InstantON-Dienstvermittler 140 setzt dann die Verarbeitung in Schritt 805 fort.
  • Wenn das System vor dem Eintritt in den Standby-Modus steht, wandelt der InstantON-Dienstvermittler 140 seine nächstliegendste Warnungszeit in eine Weckzeit um, die er in den Hardwarezeitgeber 150 programmiert. In einer Implementierung wird die nächstliegendste Warnungszeit durch das Durchsuchen der Planungsdatenbank 155 nach dem Datensatz bestimmt, der das zur aktuellen Systemzeit nächstliegendste Nächster-Zeitpunkt-Feld 655 aufweist. In einer alternativen Implementierung wird die nächstliegendste Warnungszeit durch das Durchsuchen der Softwarezeitgeber nach dem kleinsten Wert bestimmt.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung programmiert der InstantON-Dienstvermittler 140 den Hardwarezeitgeber 105 zum Ablaufen bei einer vorgegebenen Zeitdauer vor der nächsten geplanten Aktion. Diese vorgegebene Zeitdauer stellt dem System ausreichend Zeit zur Wiederherstellung des Betriebes vor dem Auftreten der geplanten Aktion bereit. Die vorgegebene Zeitdauer stellt zum Beispiel dem System ausreichend Zeit bereit, um einem Plattenlaufwerk im System das Hochdrehen [spin up] zu gestatten. In einer Implementierung beträgt diese vorgegebene Zeitdauer zehn Sekunden.
  • Zusätzlich sind die von der vorliegenden Erfindung genutzten Softwarezeitgeber nicht in Betrieb, wenn sich das System im Standby-Modus befindet. Wenn das System den Betrieb vom Standby-Modus wieder aufnimmt, aktualisiert der InstantON-Dienstvermittler 140 zur Spiegelung der vom System im Standby-Modus verbrachten Zeitdauer die Softwarezeitgeber. Auf diese Weise stellt das Herausbringen des Systems aus dem Standby-Modus vor dem Zeitpunkt des Auftretens der geplanten Aktion dem InstantON-Dienstvermittler 140 genügend Zeit zur Wiederherstellung der Softwarezeitgeber auf ihre geeigneten Werte bereit.
  • Auf diese Weise stellen die Planungsdienste der vorliegenden Erfindung eine zuverlässige Aufgabenplanung bereit. Anwendungen, die zur Ausführung der Aufgabe laufen müssen, werden ausgeführt und Aufgaben werden ungeachtet, ob sich das System beim Auftreten des geplanten Zeitpunkts in einem Modus mit geringer Leistungsaufnahme befindet, ausgeführt. Zusätzlich werden geplante Aufgaben ohne Rücksicht darauf ausgeführt, ob beim Auftreten des geplanten Zeitpunktes die Anwendung läuft, die die Aufgabe plante. Auf diese Weise werden geplante Aufgaben über mehrere Ausführungssitzungen sowohl der Ziel- als auch der Ursprungs-Anwendungsprozeße hinweg ausgeführt.
  • Fixpunktdienste gemäß der vorliegenden Erfindung
  • Der InstantON-Dienstvermittler 140 stellt zur Erleichterung der Wiederherstellung des Computersystems nach einem Absturz oder Stromausfall den Anwendungen Fixpunktdienste bereit. Wie vorstehend behandelt, können sich Anwendungen beim InstantON-Dienstvermittler 140 registrieren, um eine von verschiedenen Neustart-Richtlinien aufzuweisen. Einige davon können den InstantON-Dienstvermittler 140 zum Neustart einer Anwendung bei einem Neustart des Computersystems veranlassen. Der Überwachungsprozeß 150 des InstantON-Dienstvermittlers 140 führt einen Datensatz der mit dem InstantON-Dienstvermittler 140 zu jedem bestimmten Zeitpunkt verbundenen Anwendungen. Folglich kann der InstantON-Dienstvermittler 140 beim Neustart des Computersystems schnell bestimmen, welche Anwendungen beim Absturz des Systems verbunden waren. Wenn das System nach einem Absturz neu startet, prüft der InstantON-Dienstvermittler 140 die Registrierungsdatenbank 170 und startet die Anwendungen neu, die gelaufen sind und eine Richtlinie zum Neustart nach einem Absturz aufwiesen, sowie die Anwendungen mit der Richtlinie zum Start bei Inbetriebnahme.
  • Zur Rückführung einer Anwendung in ihren Betriebszustand zum Zeitpunkt des Systemabsturzes oder Stromausfalls wird ein Datensatz zur Bestimmung dieses Betriebszustandes verwendet. In einem Ausführungsbeispiel der vorliegenden Erfindung wird dieser Datensatz von den Fixpunktdiensten der vorliegenden Erfindung erzeugt. Mit dem InstantON-Dienstvermittler 140 verbundene Anwendungen nehmen periodisch Prozeduraufrufe an den InstantON-Dienstvermittler 140 vor, der die notwendigen Zustandsinformationen für die Anwendung in Fixpunktdatensätzen speichert. Nach dem Neustart stellt dann der InstantON-Dienstvermittler 140 den neu gestarteten Anwendungen auf deren Anforderung die gespeicherten Fixpunktinformationen bereit. Dadurch wird ihnen die Rückkehr in ihren Betriebszustand gestattet, der dem Systemabsturz vorausging. In einer Implementierung ist dieser Betriebszustand der Zustand zum letzten Zeitpunkt des Aufrufs der Fixpunktdienste vor dem Systemabsturz.
  • Die Fixpunktinformationen können auch in der gleichen Art und Weise von einer Anwendung zur Wiederherstellung nach einem Absturz der Anwendung verwendet werden. Wenn die Anwendung abstürzt und eine Richtlinie Absturz Neustart aufweist, führt der InstantON-Dienstvermittler 140 die Anwendung erneut aus und stellt der Anwendung auf deren Anforderung die gespeicherten Fixpunktinformationen bereit.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung beobachtet der InstantON-Dienstvermittler 140 unter Nutzung einer Fixpunktdatenbank die Fixpunktinformationen. In einer Implementierung ist dies die Fixpunktdatensank 165 von 1. Die Fixpunktdatenbank wird in nichtflüchtigem Speicher innerhalb des Systems gespeichert, wie zum Beispiel der Massenspeichereinrichtung 225 oder der Massenspeichereinrichtung 236 von 2.
  • Die Fixpunktdatenbank 165 enthält mehrere Fixpunktdatensätze. Jeder Fixpunktdatensatz enthält auf einen einzelnen Anwendungsprozeß bezogene Fixpunktinformationen. Der InstantON-Dienstvermittler 140 führt auch einen Datensatz, welcher dieser Fixpunktdatensätze welchen Anwendungsprozeßen entspricht. Ein Fixpunktdatensatz gemäß einer Implementierung ist in 9 gezeigt. Der Fixpunktdatensatz 900 enthält eine Fixpunktkennung 910, ein Zeitstempelfeld 920, ein Größenfeld 930 und einen Zwischenspeicher 940. Die Fixpunktkennung 910 ist ein eindeutiger Kennzeichnungswert für den Fixpunktdatensatz 900. Das Zeitstempelfeld 920 zeigt den Zeitpunkt an, zu dem der Fixpunktdatensatz 900 der Fixpunktdatenbank 165 hinzugefügt wurde. Das Größenfeld 930 zeigt die Größe des Zwischenspeichers 940 an. Der Zwischenspeichers 940 besteht aus einen oder mehreren Bytes der Betriebszustandsinformationen, die von der die Erzeugung des Fixpunktdatensatzes 900 anfordernde Anwendung empfangen wurden.
  • Die Anwendungen können unter Verwendung verschiedener Prozeduraufrufe auf die Fixpunktdienste zugreifen. In einem Ausführungsbeispiel sind diese Prozeduraufrufe: IonGetChkInfo [IbeiErhalteChkInfo], IonAddChkRecord [IbeiErgänzeChkDatensatz], IonDeleteChkRecord [IbeiLöscheChkDatensatz], IonReplaceChkRe cord [IbeiErsetzeChkDatensatz], IonGetNextChkID [IbeiErhalteNächsteChkID] und IonGetChkRecord [IbeiErhalteChkDatensatz]. Zur Nutzung der Fixpunktdienste nimmt in einer Implementierung die Anwendung zum Verbinden des Anwendungsprozeßes mit dem InstantON-Dienstvermittler 140 zuerst einen Prozeduraufruf IonConnect vor. Der Prozeduraufruf IonConnect wurde vorstehend behandelt.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung unterstützen die Fixpunktdienste inkrementelle Fixpunktdatensätze. Bei der Verwendung inkrementeller Datensätze stellt der Anwendungsprozeß beim ersten Aufruf des InstantON-Dienstvermittlers 140 durch den Anwendungsprozeß alle Betriebszustandsinformationen bereit. Bei nachfolgenden Aufrufen stellt die Anwendung jedoch nur Änderungen der ursprünglichen Betriebszustandsinformationen bereit. Dies führt üblicherweise dazu, dass der zweite und die nachfolgenden Prozeduraufrufe weniger Informationen als der erste Aufruf aufweisen. Der InstantON-Dienstvermittler 140 speichert beide Datensätze. Dies führt folglich zu mehreren Fixpunktdatensätzen für den Anwendungsprozeß.
  • Der Prozeduraufruf IonGetChkInfo stellt dem aufrufenden Prozeß Informationen über die Fixpunkte für diesen Prozeß bereit. Der aufrufende Prozeß bezieht als Parameter für den Prozeduraufruf einen Zeiger auf eine die InstantON-Registrierungskennung für den aufrufenden Prozeß enthaltende Variable ein. Der InstantON-Dienstvermittler 140 empfängt diese Kennung und überprüft die Fixpunktdatenbank nach den der empfangenen Registrierungskennung entsprechenden Fixpunktdatensätzen. Der InstantON-Dienstvermittler 140 gibt dann eine Nachricht zurück, die anzeigt, dass Datensätze gefunden wurden, den letzten Modifikationszeitstempel dieser gefundenen Datensätze und die Größe des größten Fixpunktdatensatzes für diesen Anwendungsprozeß. Wenn der Aufruf in einer Implementierung nicht erfolgreich ist, gibt der InstantON-Dienstvermittler 140 eine Nachricht zurück, die anzeigt, dass für diese Registrierungskennung kein Datensatz existiert, dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht oder dass ein ungültiger Parameter an den InstantON-Dienstvermittler 140 übergeben wurde.
  • Der Prozeduraufruf IonAddChkRecord gestattet dem aufrufenden Anwendungsprozeß die Erzeugung eines neuen Fixpunktdatensatzes. Der aufrufende Prozeß bezieht als Parameter einen Zeiger auf einen Zwischenspeicher und die Größe dieses Zwischenspeichers ein. Vor dem Ausführen des Prozeduraufrufs erzeugt der Prozeß die für ihn zur Rückkehr in seinen aktuellen Zustand notwendigen Betriebszustandsinformationen. Wenn dies das erste Mal ist, dass der Prozeß die Fixpunktdienste aufgerufen hat, werden alle Betriebszustandsinformationen gespeichert. Wenn dies jedoch ein zweiter oder späterer Aufruf ist, müssen nur inkrementelle Änderungen einbezogen werden. Der Umfang und die Beschaffenheit dieser zu speichernden Fixpunktinformationen sind vom Anwendungsprozeß abhängig. Folglich können die Fixpunktdatensätze für jeden Anwendungsprozeß verschieden sein. Nach Empfang des Aufrufs IonAddChkRecord erzeugt der InstantON-Dienstvermittler 140 für den Prozeß einen Fixpunktdatensatz, der den Zeitpunkt des Aufrufs der Prozedur, die Größe des Zwischenspeichers und die Daten im Zwischenspeicher speichert. Der InstantON-Dienstvermittler 140 beobachtet alle Fixpunktkennungen, die basierend auf der Registrierungskennung für den Prozeß jedem Anwendungsprozeß zugeordnet sind. Auf diese Weise können dem Prozeß mehrere Fixpunktdatensätze zugeordnet werden, ungeachtet ob der Prozeß zwischen der Speicherung der Fixpunktdatensätze beendet und erneut ausgeführt wurde. In einer Implementierung gibt der InstantON-Dienstvermittler 140 eine Nachricht zurück, die anzeigt, dass der Aufruf erfolgreich war, dass der aufrufende Prozeß nicht mit dem InstantON-Dienstvermittler 140 verbunden ist, dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht oder dass ein ungültiger Parameter an den InstantON-Dienstvermittler 140 übergeben wurde.
  • Der Prozeduraufruf IonDeleteChkRecord wird von der aufrufenden Anwendung zum Löschen eines Fixpunktdatensatzes genutzt. Der aufrufende Anwendungsprozeß bezieht als Parameter die Fixpunktkennung für den zu löschenden Datensatz und ein Flag ein. Das Flag zeigt an, ob alle Fixpunktdatensätze für den aufrufenden Anwendungsprozeß gelöscht werden sollen oder nur der die angezeigte Fixpunktkennung aufweisende Fixpunktdatensatz. Der InstantON-Dienstvermittler 140 löscht nach dem Empfang des Aufrufs den(die) angezeigten Fixpunktdatensatz(e). In einer Implementierung gibt der InstantON-Dienstvermittler 140 eine Nachricht zurück, die anzeigt, dass der Aufruf erfolgreich war, dass der aufrufende Prozeß nicht mit dem InstantON-Dienstvermittler 140 verbunden ist, dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht oder dass die empfangene Fixpunktkennung ungültig war.
  • Der Prozeduraufruf IonReplaceChkRecord gestattet dem aufrufenden Prozeß das Ersetzen aller existierenden Fixpunktdatensätze für diesen Prozeß. Dies kann zum Beispiel für einen aufrufenden Prozeß zum Ersetzen verschiedener inkrementeller Fixpunktdatensätze durch einen einzelnen Datensatz verwendet werden. Der aufrufende Prozeß bezieht als Parameter für den Aufruf einen Zeiger auf eine Variable, die die Fixpunktkennung für den zu ersetzende Datensatz enthält, die Größe des neuen Zwischenspeichers, einen Zeiger auf den neuen Zwischenspeicher und ein Flag ein. Das Flag zeigt an, ob alle Fixpunktdatensätze für den aufrufenden Anwendungsprozeß ersetzt werden sollen oder nur der angezeigte Fixpunktdatensatz. Der InstantON-Dienstvermittler 140 erzeugt nach dem Empfang des Aufrufs IonReplaceChkRecord einen neuen Fixpunktdatensatz für die neuen Daten und löscht dann den(die) ersetzten Fixpunktdatensatz(e). Auf diese Weise würden beim Auftreten eines Stromausfalls während der Speicherung des neuen Fixpunktdatensatzes die alten Fixpunktdatensätze immer noch zur Verwendung beim Neustart zur Verfügung stehen. In einer Implementierung gibt der InstantON-Dienstvermittler 140 eine Nachricht zurück, die anzeigt, dass der Aufruf erfolgreich war, dass der aufrufende Prozeß nicht mit dem InstantON-Dienstvermittler 140 verbunden ist oder dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung verbleiben die Fixpunktdatensätze in der Fixpunktdatensank 165 bis die Prozedur IonDeleteChkRecord aufgerufen wurde, die Pro zedur IonReplaceChkRecord aufgerufen wurde oder sich der Anwendungsprozeß aus dem Register löscht. Wenn der Anwendungsprozeß die Ausführung beendet, verbleiben daher die Fixpunktdatensätze in der Fixpunktdatenbank 165 (solange er sich nicht aus dem Register löscht). Folglich bestehen die Fixpunktdatensätze über mehrere Ausführungssitzungen des Anwendungsprozeßes fort, ohne Rücksicht darauf, ob die Anwendung freiwillig oder unfreiwillig (z.B. ein Absturz oder ein Stromausfall) beendet wurde.
  • Der Prozeduraufruf IonGetNextChkID wird vom aufrufenden Prozeß zum Abruf der nächsten Fixpunktkennung für den aufrufenden Prozeß verwendet. Dieser Prozeduraufruf kann zum Beispiel für einen aufrufenden Prozeß zum Zugriff auf jeden der verschiedenen inkrementellen Fixpunktdatensätzen für den Prozeß verwendet werden. Der aufrufende Prozeß bezieht als Parameter einen Zeiger auf eine Variable, die die dem InstantON-Fixpunktdatensatz zugeordnete Fixpunktkennung enthält, und einen Zeiger auf die die nächste Fixpunktkennung empfangende Variable ein. In einer Implementierung wird ein Wert von „ION_NULL_ID" als die dem InstantON-Fixpunktdatensatz zum Abruf der ersten Fixpunktkennung zugeordnete Fixpunktkennung verwendet. Nach dem Empfang des Aufrufs IonGetNextChkID bestimmt der InstantON-Dienstvermittler 140 die Registrierungskennung des durch die Fixpunktkennung angezeigten Fixpunktdatensatzes. Es wird die Fixpunktkennung des Fixpunktdatensatzes zurückgegeben, der den nächstliegendsten Zeitstempel zum Zeitstempel des angezeigten Fixpunktdatensatzes aufweist. Auf diese Weise gibt der InstantON-Dienstvermittler 140 die Fixpunktkennung für den nächsten Fixpunktdatensatz zurück. In einer Ausführung gibt der InstantON-Dienstvermittler 140 auch eine Nachricht zurück, die anzeigt, dass der Aufruf erfolgreich war, dass der aufrufende Prozeß nicht mit dem InstantON-Dienstvermittler 140 verbunden ist, dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht oder dass keine weitere Fixpunktkennung existiert.
  • Der Prozeduraufruf IonGetChkRecord gestattet dem aufrufenden Prozeß das Abrufen seines(r) Fixpunktdatensatzes(e). Der aufrufende Prozeß bezieht als Parameter für den Aufruf einen Zeiger auf eine Variable ein, die die Fixpunktdatensatzkennung, die Größe des Datensatzzwischenspeichers, eine die tatsächliche Datensatzzwischenspeichergröße empfangende Variable und eine den Fixpunktdatensatz empfangende Variable enthält. Nach dem Empfang des Prozeduraufrufs IonGetChkRecord ruft der InstantON-Dienstvermittler 140 den angezeigten Fixpunktdatensatz von der Fixpunktdatenbank ab und gibt ihn an den aufrufenden Prozeß zurück. In einer Ausführung gibt der InstantON-Dienstvermittler 140 eine Nachricht zurück, die anzeigt, dass der Aufruf erfolgreich war, dass der aufrufende Prozeß nicht mit dem InstantON-Dienstvermittler 140 verbunden ist, dass der InstantON-Dienstvermittler 140 nicht zur Verfügung steht oder dass ein empfangener Parameter ungültig ist (zum Beispiel wenn die Größe des Datensatzzwischenspeichers kleiner als die tatsächliche Größe des Fixpunktdatensatzzwischenspeichers ist).
  • In einem Ausführungsbeispiel der vorliegenden Erfindung stellt der InstantON-Dienstvermittler 140 den verbundenen Anwendungen periodische Fixpunkterinnerungen bereit. Diese Erinnerungen sind von den Anwendungen Fixpunktdaten anfordernde Nachrichten. In einem Ausführungsbeispiel sind die verbundenen Anwendungen auf die Fixpunkterinnerungen angewiesen und stellen nur dann Fixpunktinformationen an den InstantON-Dienstvermittler 140 bereit, wenn eine Fixpunkterinnerung empfangen wird. In einer Implementierung werden die Fixpunkterinnerungen vom InstantON-Dienstvermittler 140 unter Verwendung der Planungsdienste der vorliegenden Erfindung zur Erzeugung einer periodischen Aktion geplant, die auszuführen ist, sobald der Anwendungsprozeß läuft. Alternativ kann die verbundene Anwendung von sich aus Fixpunktspeicherungen initiieren gemäß welcher Kriterien auch immer für diese Anwendung sinnvoll sind.
  • 10 ist ein Ablaufdiagramm, das die beim Zugriff auf Fixpunktinformationen befolgten Schritte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt. 10 zeigt die von einem Ausführungsbeispiel der vorliegenden Erfindung befolgte Logik und es sollte verstanden werden, dass der In stantON-Dienstvermittler 140 vom Betriebssystem 120 bis zum Empfang einer Eingabe für den Dienstvermittler 140 blockiert werden kann. Dadurch wird anderen Anwendungen die Nutzung des Prozeßors und anderer Ressourcen des Systems gestattet.
  • Wenn sich ein Anwendungsprozeß registriert, überprüft der InstantON-Dienstvermittler 140 zuerst, ob sich die Anwendung vorher registrierte, Schritt 1010. Wenn sich der Anwendungsprozeß nicht vorher registriert hat, wird eine neue Registrierungskennung erzeugt und dem Prozeß zugewiesen, Schritt 1020. Wenn sich jedoch der Anwendungsprozeß vorher registriert hat, wird die vorherige Registrierungskennung für diesen Prozeß verwendet, Schritt 1030. Diese Schritte werden unter Verwendung der vorstehend mit Bezug auf 5 behandelten Prozeduraufrufe IonGetInfo und IonRegister ausgeführt.
  • Wenn sich der Prozeß vorher registriert hat, sind zusätzlich alle vorher gespeicherten Fixpunktinformationen für diesen Prozeß verfügbar, Schritt 1040. Der InstantON-Dienstvermittler 140 stellt dem Prozeß auf dessen Anforderung die vorher gespeicherten Fixpunktinformationen bereit. Sobald die Registrierungskennung erhalten wurde, führt der InstantON-Dienstvermittler 140 alle durch den Prozeß angeforderten Hinzufügungs-, Lösch-, Erhalten- oder Ersetzungsoperationen aus, Schritt 1050. In einer Implementierung werden diese Operationen über die vorstehend behandelten Prozeduraufrufe IonGetChkInfo, IonAddChkRecord, IonDeleteChkRecord, IonReplaceChkRecord, IonGetNextChkID und IonGetChkRecord angefordert.
  • Auf diese Weise stellen die Fixpunktdienste der vorliegenden Erfindung einen effizienten Mechanismus für die Speicherung von Fixpunktdaten bereit. Die Fixpunktdienste stellen eine zuverlässige Speicherung für mehrere Anwendungen sowie mehrere Prozeße der gleichen Anwendung bereit.
  • Ein Beispiel von Mehrfach-Ausführungssitzungen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung
  • 11 zeigt eine Zeitlinie 1100, die Beispielausführungssitzungen eines Anwendungsprozeßes auf einem Computersystem anzeigt. Der Anwendungsprozeß wird zum Zeitpunkt t1 aus geführt und verbleibt für die Zeitspanne 1105 bis zum Zeitpunkt t2 in Betrieb. Wenn der Prozeß ausgeführt wird, wird ihm vom Betriebssystem WindowsTM eine Prozeßkennzeichnung zugewiesen. Der Prozeß hält diese Prozeßkennzeichnung aufrecht, bis die Ausführung zum Zeitpunkt t2 beendet wird. Sobald sie läuft, registriert sich der Anwendungsprozeß beim InstantON-Dienstvermittler 140. Angenommen, dass dies das erste Mal ist, dass sich der Prozeß registriert hat, wird dem Prozeß eine Registrierungskennung zugewiesen und der InstantON-Dienstvermittler 140 erzeugt und speichert einen Registrierungsdatensatz für den Prozeß. Der Prozeß ist dann zur Nutzung der vom InstantON-Dienstvermittler 140 bereitgestellten Planungs- und Fixpunktdienste im Stande.
  • Zum Zeitpunkt t2 wird die Ausführung des Prozeßes beendet. Wie vorstehend behandelt, kann die Ausführung entweder freiwillig (z.B. quittiert der Anwender die Anwendung) oder unfreiwillig (z.B. ein Stromausfall) beendet werden. Der Prozeß läuft während der Zeitspanne 1110 nicht und wird zum Zeitpunkt t3 neu ausgeführt. Der Prozeß kann in einer umfangreichen Vielfalt von Arten und Weisen neu ausgeführt werden, wie vorstehend behandelt ist. Zum Beispiel kann eine geplante Aufgabe die Anwendung anfordern oder der Systemanwender kann die Anwendung ausführen.
  • Wenn die Anwendung neu ausgeführt wird, wird dem Anwendungsprozeß vom Betriebssystem WindowsTM eine neue Prozeßkennzeichnung zugewiesen. Es gibt keine Übereinstimmung zwischen dieser neuen Prozeßkennzeichnung und der während der Zeitspanne 1105 zugewiesenen Prozeßkennzeichnung. Wenn jedoch die Anwendung den InstantON-Dienstvermittler 140 unter Verwendung der Prozeduraufrufe IonGetInfo oder IonRegister aufruft, erkennt der InstantON-Dienstvermittler 140, dass der Prozeß der vorher registrierte Prozeß ist und nutzt die gleiche Registrierungskennung. Auf diese Weise werden jegliche vorher im Registrierungsdatensatz für diese Registrierungskennung gespeicherten Informationen für den Anwendungsprozeß verwendet, wie zum Beispiel die Registrierungsrichtlinie. Zusätzlich sind auch jegliche, für diesen Anwendungsprozeß erzeugte Fixpunktdatensätze für den Prozeß verfügbar.
  • Die Aufrechterhaltung der gleichen Registrierungskennung ermöglicht dieser und anderen Anwendungen auch Aufgaben für die Anwendung zu planen. Geplante Aufgaben müssen nur die Registrierungskennung der Anwendung anzeigen. Wenn der Zeitpunkt oder das Ereignis für die geplante Aufgabe auftritt, kann der InstantON-Dienstvermittler 140 durch den Zugriff auf den Registrierungsdatensatz der Zielanwendung die Zielanwendung bestimmen und ob sie gegenwärtig läuft. Der InstantON-Dienstvermittler 140 führt dann die Anwendung aus, falls dies zur Ausführung der geplanten Aufgabe notwendig ist, vorausgesetzt, dass die geplante Aufgabe eine Neustart-Richtlinie aufweist.
  • Die Ausführung des Anwendungsprozeßes endet dann zum Zeitpunkt t4 und verbleibt für die Zeitspanne 1120 beendet. Zum Zeitpunkt t5 wird der Anwendungsprozeß erneut ausgeführt und verbleibt für die Zeitspanne 1125 in Betrieb. Dem Anwendungsprozeß wird vom Betriebssystem WindowsTM für die Zeitspanne 1125 noch eine weitere, verschiedene Prozeßkennzeichnung zugewiesen. Der Anwendungsprozeß hält jedoch die gleiche Registrierungskennung aufrecht.
  • Eine Benutzerschnittstelle gemäß einem Ausführungsbeispiel der vorliegenden Erfindung
  • Die 12, 13 und 14 zeigen Benutzerschnittstellen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Diese Benutzerschnittstellen stellen einem Systemanwender einen Zugriff auf den InstantON-Dienstvermittler 140 von 1 bereit. Dies gestattet dem Anwender das Hinzufügen, Löschen und Modifizieren von Datensätzen der vorliegenden Erfindung. In einer Implementierung werden diese Schnittstellen von der InstantON-Manager-Benutzerschnittstelle 180 von 1 erzeugt. Die gezeigten Schnittstellen sind grafische Benutzerschnittstellen (GUIs). Es sollte jedoch verstanden werden, dass irgendeine einer umfangreichen Vielfalt von herkömmlichen Schnittstellen zum Bereitstellen eines Zugriffs auf den In stantON-Dienstvermittler 140 für Systemanwender genutzt werden kann.
  • 12 zeigt ein, in einen Anwendungsdarstellungsbereich 1210, eine Symbolleiste [Toolbar] 1220 und einen Aktionsanzeigebereich 1230 aufgeteiltes Hauptfenster 1200. Der Anwendungsdarstellungsbereich 1210 zeigt eine Liste von registrierten Anwendungen in einem herkömmlichen Baumformat an. Zusätzliche Anwendungen können durch die Auswahl der Schaltfläche Add App [Anw. Hinzfg.] 1215 registriert werden. Der Aktionsanzeigebereich 1230 zeigt die geplanten Anwendungen, die geplanten Aktionen und den Zeitpunkt der geplanten Aktionen an. Der Aktionsanzeigebereich 1230 kann auch zur Anzeige von Log-Datensätzen für registrierte Anwendungen genutzt werden. Der Systemanwender kann durch die Auswahl der Schaltfläche View Schedule [Zeitplan anzeigen] 1235 beziehungsweise der Schaltfläche View Log [Log anzeigen] 1240 Planungsdatensätze und Log-Datensätze betrachten. Die Symbolleiste 1220 stellt für den Anwender Optionen zum Suchen und Filtern der im Aktionsanzeigebereich 1230 angezeigten Aktionen bereit.
  • 13 zeigt ein Fenster 1300, das einem Systemanwender das Betrachten und/oder Modifizieren von InstantON-Anwendungsregistrierungsinformationen gestattet. Jedes im Fenster 1300 dargestelltes Feld kann vom Anwender modifiziert werden. Der Anwender wählt die zu betrachtende oder modifizierende Anwendung im Anwendungsfeld 1310 aus. Das Pfadfeld 1320 zeigt den aktuellen Ausführungspfad der Anwendung an. Das Parameterfeld 1330 zeigt jegliche aufgezeichneten Parameter an, die von der Anwendung bei ihrer Ausführung verwendet wurden. Das Anwenderanmerkungenfeld 1340 zeigt jegliche für diese Anwendung gespeicherten Anmerkungen oder Vermerke an. Das Anwenderanmerkungenfeld 1340 gestattet dem Anwender die Eingabe von Anmerkungen, die Mehrfach-Instanzen oder Prozeße der gleichen Anwendung unterscheiden. Das Richtlinienfeld 1350 zeigt die Neustart-Richtlinie für die Anwendung an. Das Statusfeld 1360 zeigt an, ob gegenwärtig ein Prozeß der Anwendung läuft und ob irgendwelche Fixpunktdaten für die Anwendung gespeichert sind.
  • 14 zeigt ein Planungsfenster 1400, das einem Systemanwender das Hinzufügen und/oder Modifizieren geplanter Aufgaben gestattet. Jedes im Planungsfenster 1400 gezeigtes Feld kann vom Systemanwender modifiziert werden. Das Aktionsfeld 1410 zeigt die auszuführende Aktion an (z.B, starten oder beenden). Das Memofeld 1420 gestattet dem Anwender die Eingabe von die geplante Aufgabe beschreibenden Anmerkungen oder Vermerken. Das Ereignisfeld 1430 zeigt an, ob die Aufgabe für ein Auftreten zum momentanen Zeitpunkt (z.B. jetzt), an ganz bestimmten Tagen, als Reaktion auf Leistungsereignissen oder als Reaktion auf Änderungen des Anwendungsstatus geplant ist. Die Planungsfelder 1440 gestatten dem Systemanwender die Festlegung, zu welchen Tagen, Zeiten, Wochen etc. die Aufgabe zu planen ist.
  • Es sei angemerkt, dass in den vorstehenden Erörterungen ganz bestimmte Prozeduraufrufe behandelt wurden, während sie Parameter von bestimmten Variablen aufweisen oder Parameter als Zeiger auf Variablenspeicherstellen aufweisen. Die Ausführung von Aufrufen an Prozeduren mit Variablen und/oder Zeigern auf Variablenspeicherstellen ist den Fachleuten bekannt und es sollte verstanden werden, dass entweder ein Verfahren oder eine Kombination davon für jeden der vorstehend behandelten Prozeduraufrufe genutzt werden kann.
  • Während viele Abwandlungen und Modifikationen der vorliegenden Erfindung von einem Fachmann verstanden werden können, nachdem er die vorhergehende Beschreibung gelesen hat, kann nachvollzogen werden, dass die bestimmten, als Veranschaulichung gezeigten und beschrieben Ausführungsbeispiele auf keinen Fall zur Betrachtung als Einschränkung vorgesehen sind. Daher sind Bezüge auf Details bestimmter Ausführungsbeispiele nicht zur Begrenzung des Umfangs der Ansprüche vorgesehen, die an sich nur jene als für die Erfindung wesentlich betrachteten Merkmale vortragen.
  • Auf diese Weise wurde ein Computersystem mit einer unbeaufsichtigten On-Demand-Verfügbarkeit beschrieben.

Claims (7)

  1. Ein Verfahren zum Bereitstellen einer On-Demand-Verfügbarkeit eines Computersystems, aufweisend die Schritte: a) Identifizieren einer Registrierungsinformation für einen Anwendungsprozeß, welche spezifisch für den Anwendungsprozeß ist und welche eine einer Mehrzahl von Richtlinien (170) zum Neustarten einer Ausführung des Anwendungsprozesses auswählt, wenn die Ausführung unterbrochen ist; b) Identifizieren eines Systemereignisses, welches bewirkt, daß der Anwendungsprozeß unterbrochen wird; c) Registrieren der Registrierungsinformation und einer Bezeichnung des Systemereignisses für den Anwendungsprozeß bei einem Servicing-Agent (140); und gekennzeichnet durch: d) Neustarten der Ausführung des Anwendungsprozesses auf der Basis der ausgewählten Richtlinie (170) unter Verwendung der bei dem Servicing-Agent (140) registrierten Registrierungsinformation als Antwort auf das Systemereignis.
  2. Das Verfahren nach Anspruch 1, wobei der Identifizierungsschritt a) die Schritte aufweist: Identifizieren einer Registrierungsrichtlinie (170) für den Anwendungsprozeß, welche anzeigt, ob der Anwendungsprozeß als Antwort auf das Systemereignis ausgeführt werden soll; und Erzeugen eines eindeutigen andauernden Identifizierers (405) für den Anwendungsprozeß.
  3. Das Verfahren nach Anspruch 2, wobei der Registrierungsschritt c) ferner aufweist den Schritt des Speicherns der Registrierungsrichtlinie und des eindeutigen andauernden Identifizierers (405) in einem Registrierungsdatensatz in einer nicht-flüchtigen Speichereinrichtung.
  4. Das Verfahren nach Anspruch 1, wobei das Systemereignis ein Neustart aufgrund eines Stromausfalls ist.
  5. Das Verfahren nach Anspruch 1, wobei das Systemereignis eine unfreiwillige Beendigung einer Ausführung des Anwendungsprozesses ist.
  6. Das Verfahren nach Anspruch 1, wobei der Identifizierungsschritt a) den Schritt des Identifizierens der Registrierungsinformation für den Anwendungsprozeß aufweist, welcher spezifisch für den Anwendungsprozeß ist und welcher einen oder mehrere zum Initiieren des Anwendungsprozesses verwendete(n) Parameter identifiziert.
  7. Das Verfahren nach Anspruch 1, wobei der Identifizierungsschritt a) den Schritt des Identifizierens der Registrierungsinformation für den Anwendungsprozeß aufweist, welche spezifisch für den Anwendungsprozeß ist und welche anzeigt, wo in einer nicht-flüchtigen Speichereinrichtung ein ausführbarer Code für den Anwendungsprozeß gespeichert ist.
DE69635409T 1995-03-06 1996-02-29 Ein rechnersystem mit unbewachter auf-anfrage-verfügbarkeit Expired - Lifetime DE69635409T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US40002795A 1995-03-06 1995-03-06
US400027 1995-03-06
PCT/US1996/002742 WO1996027827A1 (en) 1995-03-06 1996-02-29 A computer system with unattended on-demand availability

Publications (2)

Publication Number Publication Date
DE69635409D1 DE69635409D1 (de) 2005-12-15
DE69635409T2 true DE69635409T2 (de) 2006-07-27

Family

ID=23581931

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69635409T Expired - Lifetime DE69635409T2 (de) 1995-03-06 1996-02-29 Ein rechnersystem mit unbewachter auf-anfrage-verfügbarkeit

Country Status (6)

Country Link
US (2) US5832283A (de)
EP (1) EP0813707B1 (de)
AU (1) AU5177496A (de)
DE (1) DE69635409T2 (de)
HK (1) HK1008583A1 (de)
WO (1) WO1996027827A1 (de)

Families Citing this family (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5931954A (en) * 1996-01-31 1999-08-03 Kabushiki Kaisha Toshiba I/O control apparatus having check recovery function
US7657835B2 (en) * 1997-01-31 2010-02-02 Making Everlasting Memories, L.L.C. Method and system for creating a commemorative presentation
US6340978B1 (en) 1997-01-31 2002-01-22 Making Everlasting Memories, Ltd. Method and apparatus for recording and presenting life stories
US6285406B1 (en) * 1997-03-28 2001-09-04 Compaq Computer Corporation Power management schemes for apparatus with converged functionalities
JP3720986B2 (ja) * 1997-07-22 2005-11-30 株式会社東芝 デジタル放送受信装置
KR100294852B1 (ko) 1997-11-24 2001-07-12 윤종용 데이터의손상없이전원을오프하는컴퓨터및방법
US6167532A (en) * 1998-02-05 2000-12-26 Compaq Computer Corporation Automatic system recovery
US6418557B1 (en) * 1998-02-06 2002-07-09 Nec Corporation On-demand system enabling control of power-on/off of on-demand server
US6477663B1 (en) 1998-04-09 2002-11-05 Compaq Computer Corporation Method and apparatus for providing process pair protection for complex applications
US6026494A (en) * 1998-04-21 2000-02-15 Xircom, Inc. Algorithm to reduce power consumption of an auto-negotiating ethernet transceiver
US6189106B1 (en) * 1998-05-08 2001-02-13 Gateway, Inc. Method and apparatus for operating an electronic device at an optimal power mode based upon a scheduled event
US6226667B1 (en) 1998-05-26 2001-05-01 International Business Machines Corporation Method and apparatus for preloading data in a distributed data processing system
NL1009817C2 (nl) * 1998-08-07 2000-02-08 Oce Tech Bv Manipulatie van energiebesparing bij beeldvormende apparaten in een netwerksysteem.
US6240521B1 (en) * 1998-09-10 2001-05-29 International Business Machines Corp. Sleep mode transition between processors sharing an instruction set and an address space
US6324651B2 (en) * 1998-11-12 2001-11-27 International Business Machines Corporation Method and apparatus for saving device state while a computer system is in sleep mode
US6952827B1 (en) * 1998-11-13 2005-10-04 Cray Inc. User program and operating system interface in a multithreaded environment
AU3746300A (en) * 1999-03-23 2000-10-09 Lexent Inc. System for managing telecommunication sites
US6457134B1 (en) * 1999-04-21 2002-09-24 Palm, Inc. Portable computer with differentiated time-out feature
US6598067B1 (en) * 1999-07-26 2003-07-22 American Management Systems, Inc. Application server framework
US6418540B1 (en) * 1999-08-27 2002-07-09 Lucent Technologies Inc. State transfer with throw-away thread
US6594774B1 (en) 1999-09-07 2003-07-15 Microsoft Corporation Method and apparatus for monitoring computer system objects to improve system reliability
US6763458B1 (en) 1999-09-27 2004-07-13 Captaris, Inc. System and method for installing and servicing an operating system in a computer or information appliance
US6510528B1 (en) * 1999-12-14 2003-01-21 International Business Machines Corporation Method for improving personal computer reliability for systems that use certain power saving schemes
US6678701B1 (en) * 2000-01-05 2004-01-13 International Business Machines Corporation Technique for establishing a point of consistency in a parallel database loading system
AU2552701A (en) * 2000-01-13 2001-07-24 Access Co., Ltd. Computer system and power saving control method therefor
US6567931B1 (en) * 2000-01-18 2003-05-20 Dell Usa L.P. Preventing false remote system wake events following AC power loss
US8380854B2 (en) 2000-03-21 2013-02-19 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US7343413B2 (en) 2000-03-21 2008-03-11 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
FR2807598A1 (fr) * 2000-04-11 2001-10-12 Koninkl Philips Electronics Nv Dispositif de communication portable a systeme de maintien en service automatique et procede de maintien en service d'un tel dispositif
US7222120B1 (en) 2000-04-12 2007-05-22 Making Everlasting Memories, L.L.C. Methods of providing a registry service and a registry service
US7363633B1 (en) * 2000-04-24 2008-04-22 Microsoft Corporation Registering and storing dependencies among applications and objects in a computer system and communicating the dependencies to a recovery or backup service
JP2001318742A (ja) * 2000-05-08 2001-11-16 Mitsubishi Electric Corp コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
US7117354B1 (en) * 2000-07-20 2006-10-03 International Business Machines Corporation Method and apparatus for allowing restarted programs to use old process identification
US7596784B2 (en) * 2000-09-12 2009-09-29 Symantec Operating Corporation Method system and apparatus for providing pay-per-use distributed computing resources
US6792319B1 (en) 2000-10-19 2004-09-14 Destiny Networks, Inc. Home automation system and method
US6912429B1 (en) 2000-10-19 2005-06-28 Destiny Networks, Inc. Home automation system and method
US6756998B1 (en) 2000-10-19 2004-06-29 Destiny Networks, Inc. User interface and method for home automation system
US6909921B1 (en) 2000-10-19 2005-06-21 Destiny Networks, Inc. Occupancy sensor and method for home automation system
US6931558B1 (en) * 2000-11-29 2005-08-16 Veritas Operating Corporation Computer restoration systems and methods
US6907523B2 (en) * 2000-12-22 2005-06-14 Intel Corporation Method and apparatus utilizing an agent on the host processing system to initiate loading of a program in response to an event at the host processing system
US6865683B2 (en) * 2001-05-21 2005-03-08 Microsoft Corporation System and method for powering down a mobile device
DE10145596A1 (de) 2001-09-15 2003-04-03 Philips Corp Intellectual Pty Netzwerk mit mehreren Sub-Netzwerken
JP2003173325A (ja) * 2001-12-06 2003-06-20 Hitachi Ltd 計算機システムの初期化方法および電源切断方法
US6961859B2 (en) * 2002-01-30 2005-11-01 Hewlett Packard Development Company, L.P Computing device having programmable state transitions
US7197654B2 (en) * 2002-04-11 2007-03-27 International Business Machines Corporation Method and apparatus for managing low power processor states
EP1359507A1 (de) * 2002-04-29 2003-11-05 Hewlett-Packard Company Datenverarbeitungsvorrichtung und Verfahren
US20030214657A1 (en) * 2002-05-14 2003-11-20 Stringham Gary Glen Task scheduling and automated task performance in printers
JP2004007316A (ja) * 2002-06-03 2004-01-08 Internatl Business Mach Corp <Ibm> プログラム、制御装置、及び制御方法
US7234115B1 (en) 2002-09-26 2007-06-19 Home Director, Inc. Home entertainment system and method
JP4125172B2 (ja) * 2003-04-23 2008-07-30 キヤノン株式会社 無線通信システム、無線通信装置、及びその制御方法、並びにコンピュータプログラム
JP4125173B2 (ja) 2003-04-23 2008-07-30 キヤノン株式会社 情報処理装置の接続制御方法、情報処理装置、及びコンピュータプログラム
JP4136771B2 (ja) * 2003-04-23 2008-08-20 キヤノン株式会社 通信システム、通信装置、及びその制御方法、並びにコンピュータプログラム
CA2435655A1 (en) * 2003-07-21 2005-01-21 Symbium Corporation Embedded system administration
KR100524474B1 (ko) * 2003-11-10 2005-10-31 삼성전자주식회사 컴퓨터 시스템 및 그 제어방법
WO2005077066A2 (en) * 2004-02-09 2005-08-25 American Express Travel Related Services Company, Inc. System and method to reduce travel-related transaction fraud
US7203854B2 (en) * 2004-02-12 2007-04-10 Microsoft Corporation System for reconfiguring a computer between a high power and high functionality configuration and a low power and low functionality configuration
US7498062B2 (en) * 2004-05-26 2009-03-03 Wd Media, Inc. Method and apparatus for applying a voltage to a substrate during plating
US7904181B2 (en) * 2004-06-01 2011-03-08 Ils Technology Llc Model for communication between manufacturing and enterprise levels
EP1719056A4 (de) * 2004-08-26 2009-04-08 Availigent Inc Verfahren und system zur bereitstellung hoher verfügbarkeit für computeranwendungen
US8171474B2 (en) * 2004-10-01 2012-05-01 Serguei Mankovski System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
US7272731B2 (en) * 2004-10-13 2007-09-18 Dell Products L.P. Information handling system having reduced power consumption
DE102004053159A1 (de) * 2004-11-03 2006-05-04 Robert Bosch Gmbh Mikrocontrollersystem
US8346910B2 (en) * 2004-11-30 2013-01-01 American Express Travel Related Services Company, Inc. Method and apparatus for managing an interactive network session
WO2006082599A2 (en) * 2005-02-01 2006-08-10 Ravikiran Sureshbabu Pasupulet A method and system for power management
CA2504333A1 (en) * 2005-04-15 2006-10-15 Symbium Corporation Programming and development infrastructure for an autonomic element
US7827560B2 (en) * 2005-05-11 2010-11-02 Siemens Aktiengesellschaft System and method for time controlled program execution
JP2007065932A (ja) * 2005-08-30 2007-03-15 Fujitsu Ltd 情報処理装置、情報処理装置の制御方法
JP2007102669A (ja) * 2005-10-07 2007-04-19 Toshiba Corp 情報処理装置および動作制御方法
JP4231041B2 (ja) * 2005-10-07 2009-02-25 株式会社東芝 情報処理装置および動作制御方法
US8463709B2 (en) * 2006-04-11 2013-06-11 Dell Products L.P. Identifying and labeling licensed content in an embedded partition
US9195985B2 (en) * 2006-06-08 2015-11-24 Iii Holdings 1, Llc Method, system, and computer program product for customer-level data verification
US20080314977A1 (en) * 2006-06-08 2008-12-25 American Express Travel Related Services Company, Inc. Method, System, and Computer Program Product for Customer-Level Data Verification
TW200818008A (en) * 2006-10-04 2008-04-16 Via Tech Inc Auto wake-up module and player equipment and method for waking-up automatically
JP4886463B2 (ja) 2006-10-20 2012-02-29 キヤノン株式会社 通信パラメータ設定方法、通信装置及び通信パラメータを管理する管理装置
US7640412B2 (en) * 2007-01-04 2009-12-29 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for improving the reliability of file systems
JP4370336B2 (ja) * 2007-03-09 2009-11-25 株式会社日立製作所 低消費電力ジョブ管理方法及び計算機システム
US8065428B2 (en) 2007-03-30 2011-11-22 Lenovo (Singapore) Pte. Ltd. Computer patch management in “road warrior” contexts
US9747598B2 (en) 2007-10-02 2017-08-29 Iii Holdings 1, Llc Dynamic security code push
US7904739B2 (en) * 2007-10-08 2011-03-08 Hewlett-Packard Development Company, L.P. Managing a power state for a peripheral
US8205196B2 (en) * 2008-04-08 2012-06-19 Broadcom Corporation Systems and methods for using operating system (OS) virtualisation for minimizing power consumption in mobile phones
WO2009125257A1 (en) * 2008-04-11 2009-10-15 Freescale Semiconductor, Inc. Microprocessor having a low-power mode and a non-low power mode, data processing system and computer program product.
KR20100001352A (ko) * 2008-06-26 2010-01-06 에스디씨마이크로 주식회사 단말기의 전원 관리 시스템
US9292303B2 (en) * 2008-07-22 2016-03-22 International Business Machines Corporation Suspend profiles and hinted suspending
US8024732B2 (en) * 2008-07-28 2011-09-20 Microsoft Corporation State separation for application changes
US8276009B2 (en) * 2008-09-05 2012-09-25 Broadcom Corporation Operating system (OS) virtualisation and processor utilization thresholds for minimizing power consumption in mobile phones
US8291261B2 (en) * 2008-11-05 2012-10-16 Vulcan Technologies Llc Lightweight application-level runtime state save-and-restore utility
US8826070B1 (en) * 2008-12-15 2014-09-02 Open Invention Network, Llc Method and system for providing storage checkpointing to a group of independent computer applications
US8266477B2 (en) * 2009-01-09 2012-09-11 Ca, Inc. System and method for modifying execution of scripts for a job scheduler using deontic logic
US20100298957A1 (en) * 2009-05-15 2010-11-25 Synergy Elements, Inc. Multi-function sensor for home automation
US20100299621A1 (en) * 2009-05-20 2010-11-25 Making Everlasting Memories, L.L.C. System and Method for Extracting a Plurality of Images from a Single Scan
FR2948520A1 (fr) * 2009-07-27 2011-01-28 Sagem Comm Procede pour mettre en veille et reveiller une passerelle domestique selon des plages horaires programmables.
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
DE602010023668C5 (de) 2009-12-22 2023-04-13 Nokia Technologies Oy Verfahren und vorrichtung zur energieverwaltung über ein untersystem
US20110179303A1 (en) * 2010-01-15 2011-07-21 Microsoft Corporation Persistent application activation and timer notifications
US9141625B1 (en) 2010-06-22 2015-09-22 F5 Networks, Inc. Methods for preserving flow state during virtual machine migration and devices thereof
US10015286B1 (en) 2010-06-23 2018-07-03 F5 Networks, Inc. System and method for proxying HTTP single sign on across network domains
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US8886981B1 (en) * 2010-09-15 2014-11-11 F5 Networks, Inc. Systems and methods for idle driven scheduling
US9554276B2 (en) 2010-10-29 2017-01-24 F5 Networks, Inc. System and method for on the fly protocol conversion in obtaining policy enforcement information
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
US9246819B1 (en) 2011-06-20 2016-01-26 F5 Networks, Inc. System and method for performing message-based load balancing
US8812761B2 (en) * 2011-10-28 2014-08-19 Apple Inc. System and method for adjusting power usage to reduce interrupt latency
US20130132750A1 (en) * 2011-11-18 2013-05-23 Research In Motion Limited Electronic device and method for updating a time identifier associated therewith
US9270766B2 (en) 2011-12-30 2016-02-23 F5 Networks, Inc. Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9172753B1 (en) 2012-02-20 2015-10-27 F5 Networks, Inc. Methods for optimizing HTTP header based authentication and devices thereof
US9231879B1 (en) 2012-02-20 2016-01-05 F5 Networks, Inc. Methods for policy-based network traffic queue management and devices thereof
US8719167B2 (en) 2012-03-02 2014-05-06 American Express Travel Related Services Company, Inc. Systems and methods for enhanced authorization fraud mitigation
EP2853074B1 (de) 2012-04-27 2021-03-24 F5 Networks, Inc Verfahren zur optimierung von inhaltsdienstanfragen und vorrichtungen dafür
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10122630B1 (en) 2014-08-15 2018-11-06 F5 Networks, Inc. Methods for network traffic presteering and devices thereof
US10209759B2 (en) * 2014-08-26 2019-02-19 Embertec Pty Ltd Standby power controller with external information capability
US9535792B2 (en) 2014-11-20 2017-01-03 Dell Products, Lp System and method for policy based management of a communication device configuration persistence
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
BR112017013017A2 (pt) 2014-12-19 2018-03-06 E Eye Inc sistema e montagem de câmera subaquática
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10791088B1 (en) 2016-06-17 2020-09-29 F5 Networks, Inc. Methods for disaggregating subscribers via DHCP address translation and devices thereof
ES2874679T3 (es) * 2016-07-07 2021-11-05 Univ Zuerich Método y programa informático para supervisar eventos de pantalla táctil de un dispositivo de mano
US10516854B2 (en) * 2016-08-22 2019-12-24 Outdoor's Insight, Inc. Underwater camera assembly
US10705591B2 (en) 2016-10-31 2020-07-07 Microsoft Technology Licensing, Llc Aggregated electronic device power management
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
CN111124802A (zh) * 2019-11-20 2020-05-08 贵州电网有限责任公司 一种计算机故障恢复方法、设备及存储介质
US20230393890A1 (en) * 2022-06-03 2023-12-07 Snap Inc. Auto-recovery for ar wearable devices

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4203153A (en) * 1978-04-12 1980-05-13 Diebold, Incorporated Circuit for reducing power consumption in battery operated microprocessor based systems
US4259594A (en) * 1979-09-17 1981-03-31 Gte Laboratories Incorporated Electrical power supply apparatus
US4284849A (en) * 1979-11-14 1981-08-18 Gte Products Corporation Monitoring and signalling system
US4317180A (en) * 1979-12-26 1982-02-23 Texas Instruments Incorporated Clocked logic low power standby mode
US4648031A (en) * 1982-06-21 1987-03-03 International Business Machines Corporation Method and apparatus for restarting a computing system
US4521847A (en) * 1982-09-21 1985-06-04 Xerox Corporation Control system job recovery after a malfunction
US4800521A (en) * 1982-09-21 1989-01-24 Xerox Corporation Task control manager
JPS59133620A (ja) * 1983-01-21 1984-08-01 Fujitsu Ltd 復電時の自動運転方式
US4660168A (en) * 1984-03-14 1987-04-21 Grant Elwyn E Apparatus for completing a customer initiated ATM transaction
JPS6145354A (ja) * 1984-08-10 1986-03-05 Nec Corp マイクロプロセツサ
JPH03506084A (ja) * 1988-07-28 1991-12-26 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング マイクロコンピユーターをスタンバイモードに所定状態時に切替える装置
JP2829078B2 (ja) * 1990-02-05 1998-11-25 株式会社日立製作所 プロセス分散方法
JP3092135B2 (ja) * 1990-03-13 2000-09-25 株式会社日立製作所 アプリケーシヨン実行制御方法
JP3293839B2 (ja) * 1990-05-16 2002-06-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム
US5151987A (en) * 1990-10-23 1992-09-29 International Business Machines Corporation Recovery objects in an object oriented computing environment
EP0554854A3 (en) * 1992-02-04 1996-02-28 Digital Equipment Corp System and method for executing, tracking and recovering long running computations
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5423045A (en) * 1992-04-15 1995-06-06 International Business Machines Corporation System for distributed power management in portable computers
FR2691556B1 (fr) * 1992-05-25 1994-08-26 Hewlett Packard Co Procédé et dispositif de démarrage d'un ordinateur à un instant programmé.
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5586332A (en) * 1993-03-24 1996-12-17 Intel Corporation Power management for low power processors through the use of auto clock-throttling
US5513359A (en) * 1993-07-23 1996-04-30 International Business Machines Corporation Desktop computer having a single-switch suspend/resume function
US5504897A (en) * 1994-02-22 1996-04-02 Oracle Corporation Method and apparatus for processing electronic mail in parallel
US5592173A (en) * 1994-07-18 1997-01-07 Trimble Navigation, Ltd GPS receiver having a low power standby mode
US5560022A (en) * 1994-07-19 1996-09-24 Intel Corporation Power management coordinator system and interface
US5666537A (en) * 1994-08-12 1997-09-09 Intel Corporation Power down scheme for idle processor components
US5530879A (en) * 1994-09-07 1996-06-25 International Business Machines Corporation Computer system having power management processor for switching power supply from one state to another responsive to a closure of a switch, a detected ring or an expiration of a timer
US5530878A (en) * 1994-11-17 1996-06-25 Sun Microsystems, Inc. Simplified power system with a single power converter providing low power consumption and a soft on/off feature
EP0727728A1 (de) * 1995-02-15 1996-08-21 International Business Machines Corporation Leistungssteuerung eines Computersystems

Also Published As

Publication number Publication date
DE69635409D1 (de) 2005-12-15
AU5177496A (en) 1996-09-23
EP0813707A1 (de) 1997-12-29
WO1996027827A1 (en) 1996-09-12
US5832283A (en) 1998-11-03
HK1008583A1 (en) 1999-05-14
EP0813707B1 (de) 2005-11-09
US6065123A (en) 2000-05-16
EP0813707A4 (de) 1998-08-05

Similar Documents

Publication Publication Date Title
DE69635409T2 (de) Ein rechnersystem mit unbewachter auf-anfrage-verfügbarkeit
US5902352A (en) Method and apparatus for task scheduling across multiple execution sessions
EP0097234B1 (de) Verfahren und Vorrichtung zum Wiederanlauf eines Computersystems
DE60315236T2 (de) Vorrichtung und Verfahren zur Erhaltung des Datenzustands eines Personal Computers im Standby-Modus im Fall einer Unterbrechung der Wechselstromversorgung
US6704885B1 (en) Performing data backups with a stochastic scheduler in a distributed computing environment
DE102005001451B4 (de) Informationsverarbeitungsvorrichtung und Spannungsversorgungs-Steuerungsverfahren
DE69733912T2 (de) Computersystem mit Wiederaufnahmefunktion und Verfahren dafür
DE68929536T2 (de) Vorrichtung und Verfahren zur Gewährleistung der Kontinuität des Betriebs in einem System
AU711220B2 (en) Method of commitment in a distributed database transaction
DE10026049B4 (de) Kalenderinduzierte Programmausführung
JPH11134306A (ja) 管理マネージャ計算機、記録媒体、および、計算機運用管理方法
DE112008000603B4 (de) Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi
DE112011105700T5 (de) Schneller Ruhezustand- und schnelle Wiederinbetriebnahme für eine Plattform von Computersystem
JPH0715664B2 (ja) データ・セツト回復方法
DE4309532A1 (de) Verfahren zur Einrichtung zum Sichern einer Systemabbildung auf eine permanente Speichereinrichtung
DE4028175A1 (de) Energiemanagementanordnung fuer einen tragbaren computer
US20040025071A1 (en) Distributed computing system and method
JPS62298839A (ja) 障害時に計算機システムを再始動する方法
EP2159667B1 (de) Computersystem und Verfahren zum Energie sparenden Betrieb eines Computersystems
JPH0822424A (ja) クライアント・サーバ・システムおよびその制御方法
JP2000081986A (ja) クライアント・サーバ型業務処理システムのジョブ管理方法およびそのプログラムを格納した記録媒体
JP2001356946A (ja) ワークフロー実行方法および装置とワークフロー実行プログラムを記録した記録媒体
JP2004213122A (ja) クライアント/サーバによる制御システムの安定稼働方法及びそのプログラム
US20040133815A1 (en) Data processing method and device with state-restoring function
DE19734182C2 (de) Computersystem zur Ermittlung der Berechnungsinformation zur Gebührenanzeige von Programmen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition