-
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 12–14 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 315–340 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.