-
TECHNISCHER
BEREICH
-
Diese
Patentanmeldung betrifft im allgemeinen den Bereich von Computergeräten und
insbesondere ein Verfahren und ein System zur automatischen Unterstützung von
Computern.
-
HINTERGRUND
DER ERFINDUNG
-
Personalcomputersysteme
finden in Unternehmen und Haushalten immer weitere Verbreitung. Obwohl
der Begriff „Personalcomputer" ein gattungsgemäßes Gerät impliziert,
haben „Personalcomputer" im allgemeinen eine
große
Vielzahl von Hardware- und Softwarekomponenten. Beispielsweise können unterschiedliche
Personalcomputer Prozessoren und Busse unterschiedlicher Geschwindigkeiten
haben, eine Festplatte und Hauptspeicher verschiedener Größe und Peripheriegeräte, die über verschiedene
Typen von Schnittstellenkarten verbunden sind, wie zum Beispiel
Audiogeräte.
Ferner produzieren eine große
Anzahl von Herstellern Computerkomponenten, so daß in einem
gegebenen Personalcomputer selbst Komponenten, die im wesentlichen
gleiche Betriebscharakteristika haben, wichtige Unterschiede aufweisen
können,
basierend auf der Spezifikation des Herstellers der jeweiligen Komponente.
-
Im
Hinblick auf die Software benötigen
im allgemeinen alle Computersysteme ein Betriebssystem, das den
Betrieb der Hardwarekomponenten koordiniert. Jedoch kann jeder individuelle
Personalcomputer eines von vielen verschiedenen Betriebssystemen
haben. Beispielsweise haben sich die Microsoft-Produkte von ihrem
ursprünglichen
Disk Operating System (DOS) zu Windows-Systemen weiterentwickelt,
mit Windows 3.1, Windows 95, Windows 98, Windows CE und Windows
NT. Zusätzlich
zu diesen Microsoft-Betriebssystemen sind andere Arten von Betriebssystemen
erhältlich,
wie zum Beispiel verschiedene Versionen von Unix, inklusive Linux.
-
Zusätzlich zu
dieser großen
Vielzahl von Betriebssystemen können
Personalcomputer eine große
Anzahl von verschiedenen Arten von Softwareanwendungen ausführen. Eine
gegebene Softwareanwendung kann auf verschiedene Arten mit verschiedenen
Betriebssystemen zusammenarbeiten. Daher können selbst Personalcomputer,
die im wesentlichen gleiche Hardwarekomponenten haben, jedoch unterschiedliche
Software aufweisen, auf deutlich unterschiedliche Weise arbeiten.
-
Für Computeranwender
können
aus vielen Gründen
Schwierigkeiten beim Systembetrieb auftreten. Der Mangel an Kenntnis,
Hardwarefehler, Softwareinkompatibilitäten und viele andere Gründe können zu
Problemen für
den Computeranwender führen.
Bei der großen
Menge verfügbarer
Hardware und Software (die zu einer noch größeren Menge von Hardware/Softwarekombinationen
führt,
mit denen ein Anwender umgeht), ist es schwierig festzustellen, ob
der Computer ein Problem aufweist.
-
Die
Situation wird ferner verkompliziert durch die Tatsache, daß Personalcomputer
keine guten Mechanismen haben, um automatisch festzustellen, ob
das Hardware/Softwaresystem ein Problem hat. Obwohl bestimmte Betriebssysteme
Code enthalten, der dabei hilft, einige Typen von Problemen mit
spezifischen Hardwareteilen zu detektieren, können solche Mechanismen jedoch
in nicht ausreichender Weise gleichartig sein, um festzustellen,
ob das Betriebssystem ein Problem hat. Tatsächlich ist ein übliches
Symptom eines Betriebssystemproblems die Unfähig keit zu starten, wobei in
diesem Fall das Betriebssystem keinerlei Hilfe darstellt. Ein anderes übliches
Symptom eines Betriebssystemproblems ist es, wenn der Rechner abstürzt, wobei
in diesem Fall das Betriebssystem auf die Tastatur und die Maus aus
einer großen
Vielzahl möglicher
Gründe
nicht mehr antwortet. Es ist festzuhalten, daß diese Art von Problem durch
Softwareteile verursacht werden kann, die auf das Betriebssystem
installiert worden sind, beispielsweise eine Anwendung oder ein
Treiber oder durch irgendeine Inkompatibilität zwischen Teilen der geladenen
Software. Ein System, das funktioniert hat, kann zu irgendeinem
späteren
Zeitpunkt aufgrund von Softwareinkompatibilitäten aufhören zu funktionieren.
-
Ein
weiteres Problem ist der Mangel an gleichartigen Mechanismen, mit
denen ein Anwender Unterstützung
aufrufen kann. Wenn der Anwender eine Frage hat oder das System
ein Problem hat oder zumindest der Anwender ein Problem erkennt,
gibt es gegenwärtig
keinen gleichartigen Mechanismus, um das System dazu zu bringen
zu versuchen, Unterstützung
für den
Anwender bereitzustellen. Obwohl es verschiedene Arten von für den Anwender zur
Verfügung
stehender Hilfe gibt, basieren sie alle auf einem oder mehreren
funktionierenden Eingabegeräten,
wie zum Beispiel eine Maus und/oder einer Tastatur und einem ausreichenden
Maß an
Anwenderkenntnis, um in der Lage zu sein, eine der Vielzahl von
Informationsquellen im System und in einer globalen Informationsquelle,
wie zum Beispiel dem Internet, zu erreichen.
-
Aus
der
GB 2 329 266 ist
eine automatische Fehlerbeseitigung in einem Datenverarbeitungssystem
bekannt. Die Druckschrift offenbart eine Fehlerbeseitigungstechnik
wie sie bei der automatischen Installation von Software auf einem
Client-System von
einem verbundenen Server Anwendung findet. Dabei installiert der
Server nach dem Start des Clients zunächst ein Boot-Image auf dem
Client und lädt den
Kern eines Betriebssystems. Danach wird ein Treiber geladen, der
unter Verwendung eines Timers weitere Installationsschritte überwacht.
Falls ein Installationsschritt nicht innerhalb einer vorgeschriebenen
Zeit abgeschlossen wird, wird das Client-System erneut gestartet.
-
Aus
der
US 5,576,650 ist
das Zurücksetzen einer
CPU durch die Betätigung
eines Schalters bekannt. Darüber
hinaus offenbart die
US 5,576,650 einen
Zähler
zum Starten eines Zählvorgangs
nach Empfang eines extern eingegebenen Reset-Signals. Selbst wenn der Prozessor sich
in einem undefinierten Zustand befindet und daher kein Zustandssignal für einen
Reset-Vorgang ausgeben kann, wird dadurch ein erzwungenes Reset-Signal
nach einer vorbestimmten Zeit ausgegeben.
-
Ausgehend
von dem Stand der Technik liegt der vorliegenden Erfindung das Problem
zugrunde, eine automatische technische Unterstützung für ein Computersystem bereitzustellen,
die in der Lage ist, nicht nur bei der Installation von Software,
sondern zu jedem beliebigen Betriebszeitpunkt in einfacher Weise
den Anwender bei auftretenden Problemen zu unterstützen und
den Computer in einem definierten Zustand zu bringen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Dieses
Problem wird gelöst
durch ein Verfahren nach Anspruch 1 und ein Computersystem nach Anspruch
9.
-
In Übereinstimmung
mit der vorliegenden Offenbarung wird ein Verfahren und ein System
bereitgestellt, das im wesentlichen die Nachteile und Probleme,
die mit früher
entwickelten Verfahren und Systemen zur Identifizierung von Problemen
mit Computersystemen eliminiert oder verringert. Ein Überwachungssystem
detektiert Probleme mit einem Computersystem und hilft beim Identifizieren
und Lösen der
Probleme. Das aktuelle Maß an
Funktionalität des
Computersystems wird festgestellt und technische Unterstützung wird
für das
Computersystem in Übereinstimmung
mit der Funktionalität
des Computersystems bereitgestellt.
-
Gemäß einem
Aspekt der Erfindung überwacht
eine Zustandsmaschine Betriebssystemfunktionalität, um Ausfälle des Computersystems zu überwachen.
Ein Überwachungstimer
wird im wesentlichen gleichzeitig mit dem Beginn des Com putersystemstarts
gestartet und an einem vorbestimmten Punkt der Startreihenfolge
des Computersystems gelöscht.
Es wird festgestellt, daß ein
Startversagen des Computersystems vorliegt, wenn der Überwachungstimer
nach einer vorbestimmten Zeitperiode ungelöscht bleibt. Beispielsweise
wird der Überwachungstimer
gelöscht
durch eine Betriebssystem-Serviceroutine vor Ablauf der vorbestimmten Zeitperiode,
wodurch angezeigt wird, daß das
Betriebssystem bis zum Punkt der Serviceroutine der Startfrequenz
gestartet hat, innerhalb der vorbestimmten Zeitperiode. Das Nichtlöschen des Überwachungstimers
durch die Serviceroutine zeigt ein Versagen des Startprozesses bis
zu dem Punkt der Startreihenfolge an, an dem die Serviceroutine
aufgerufen wird.
-
In
einem Ausführungsbeispiel
startet ein Anwender die Betriebssystemüberwachung durch das Drücken eines
Serviceknopfes zur Anzeige eines Problems mit dem Computersystem.
Das Drücken des
Serviceknopfes startet Unterstützungsfunktionen,
wie zum Beispiel den Start einer Serviceanwendung zu einem geeigneten
Zeitpunkt. Die Unterstützungsfunktionen
ermöglichen
das Testen des Computersystems durch das Überwachungssystem. Der Serviceknopf
startet einen Überwachungstimer,
der dem Überwachen
des Startes zugeordnet ist durch das Aufrufen des Betriebssystems.
Alternativ dazu oder zusätzlich
zum Starten des Überwachungstimers,
der der Überwachung
des Starts zugeordnet ist, startet der Serviceknopf einen weiteren Überwachungstimer,
der als ein Detektionstimer für
das Abstürzen
dient. Wenn der Serviceknopf während
des Starts des Computersystems gedrückt wird, wird der Detektionstimer
für das
Abstürzen
an einem vorbestimmten Punkt der Startreihenfolge des Computersystems
gestartet, wie zum Beispiel, nachdem ein Anwender Information bereitgestellt
hat zum Einloggen und er wird gelöscht beim Start der Serviceanwendung.
Ein Absturz des Computersystems wird identifiziert, wenn der Detektionstimer
für das
Abstürzen
nach einer vorbestimmten Absturz-Detektionszeit ungelöscht bleibt.
-
Gemäß einem
Ausführungsbeispiel
führt die Detektion
eines Computerversagens zu einem Neustart des Computersystems in
einem Servicemode. Der Servicemode startet ein Servicemode-Betriebssystem,
das die Analyse des Computersystems ermöglicht, selbst wenn das primäre Betriebssystem des
Computersystems versagt hat. Der Beginn eines Servicemode-Stars
startet ebenfalls einen Überwachungstimer.
Der Überwachungstimer
wird an einem vorbestimmten Punkt der Startreihenfolge des Servicemode-Betriebssystems
gelöscht.
-
Es
wird festgestellt, daß ein
Versagen des Computersystems vorliegt, wenn der Überwachungstimer nach einer
vorbestimmten Zeitperiode ungelöscht
bleibt.
-
Wenn
der Servicemode-Start ausgelöst
worden ist, dadurch, daß ein
vorhergehender Anwender den Serviceknopf gedrückt hat, der zu einer Fehlerdetektion
geführt
hat, überwacht
daraufhin ein Absturz-Detektionstimer für den Servicemode die Startreihenfolge
des Servicemode-Betriebssystems, um irgendeinen Absturz des Servicemode-Betriebssystems
zu detektieren.
-
In
einem weiteren Ausführungsbeispiel
wird ein Verfahren für
die automatische Unterstützung
in einem Computersystem bereitgestellt, das einen Serviceknopf und
einen Controller-Chipsatz hat. Das Verfahren umfaßt die Schritte
des Drückens
des Serviceknopfes, das Setzen eines ersten Bits in einem Mehrzweck-Eingaberegister im
Controller-Chipsatz, um ein erstes Interruptsignal in Antwort auf
den Schritt des Drückens
zu erzeugen, das Empfangen eines ersten Interrupts und das Feststellen,
ob das Computersystem dabei ist zu starten, und, wenn das System
dabei ist zu starten, Starten einer Serviceanwendungsroutine auf
eine erste Art, oder wenn das System nicht am Starten ist, daraufhin
Beginnen einer Serviceanwendungsroutine auf eine zweite Weise.
-
Es
wird ferner ein Computersystem bereitgestellt mit einem Prozessor
mit zumindest einem Timer, einem Controllerchipsatz, einem System-BIOS und
einem Betriebssystem zur Kommunikation mit Komponenten des Computersystems über das
BIOS. Ein Serviceknopf wird mit einem Mehrzweck-Eingaberegister
in dem Controller-Chipsatz verbunden zum Setzen des Registers, um
einen ersten Interrupt zu erzeugen.
-
Das
System umfaßt
ferner einen Interrupt-Handler, der mit dem Eingaberegister verbunden
ist, um den ersten Interrupt zu empfangen und ihn auf eine Weise
zu verarbeiten, die davon abhängt,
ob das Computersystem in einem Startzustand oder in einem Nicht-Startzustand
ist.
-
Ferner
wird ein Computersystem mit einem System-BIOS und einem Betriebssystem
bereitgestellt, wobei das Computersystem einen Serviceknopf umfaßt, der
mit einem Mehrzweck-Eingaberegister in einem Controllerchipsatz
verbunden ist zum Setzen eines Bits in dem Register, um ein erstes
Interruptsignal zu erzeugen. Ein Interrupt-Handler in dem System-BIOS
empfängt
das erste Interruptsignal und erzeugt ein zweites Interruptsignal,
damit das Betriebssystem eine Serviceanwendung startet, wenn das
Computersystem nicht in einem Startzustand ist. Wenn der Computer
in einem Startzustand ist, bleibt das Bit gesetzt und Code, der
in dem Betriebssystem enthalten ist, überprüft den Status des Bits später während der
Startreihenfolge und startet die Serviceanwendung, wenn das Bit
gesetzt worden ist.
-
Die
vorliegende Erfindung führt
zu vielen wichtigen technischen Fortschritten. Ein wichtiger technischer
Fortschritt ist die integrierte Unterstützung zur Detektion von Problemen,
die bei Computersystemen auftauchen. Die Überwachung einer Startreihenfolge
des Computersystems für
Hardware- oder Betriebssystemausfälle ermöglicht die Automation der Problemdetektion
und Unterstützung zur
Lösung
des Problems. Ferner ermöglicht
die Detektion eines Versagens des Betriebssystems die Analyse und
das Lösen
des Problems des Computersystems durch die Verwendung des Servicemode-Betriebssystems.
-
Ein
weiterer wichtiger technischer Fortschritt ist die automatische
Bestätigung,
daß ein
Problem innerhalb des Computersystems existiert. Die Anzeige, daß das Überwachungssystem
ein Problem detektiert hat, schafft zumindest die Bestätigung für das technische
Unterstützungspersonal
mit einer verringerten Abhängigkeit
von der wörtlichen
Beschreibung durch den Anwender des Computersystems.
-
Die
Problembestätigung
begrenzt die Anzahl der grundliegenden Dinge, die das technische
Unterstützungspersonal
im Verlaufe eines Telefonanrufs überprüfen muß. Wenn
ferner das Überwachungssystem
ein Problem nicht detektiert, kann daraufhin das technische Unterstützungspersonal
die Anzahl der Probleme, die untersucht werden müssen, begrenzen. Beispielsweise
zeigt eine Nichtdetektion eines Problems mit dem Überwachungssystem
an, daß die
Hardware und das Betriebssystem auf normale Weise gestartet haben,
und daß das
System in der Lage ist, die Serviceanwendung zu starten.
-
Ein
weiterer wichtiger technischer Vorteil ist die Identifizierung des
Problems, das bei dem Computersystem auftritt. Beispielsweise ermöglicht die Überwachung
des Computersystem-Starts die Identifizierung von Problemen, die
der Hardware oder dem Betriebssystem zugeordnet sind oder es kann alternativ
dazu eine richtige Hardware- und Betriebssystem-Funktionalität anzeigen,
die wiederum anwender- oder anwendungsbezogene Schwierigkeiten anzeigt.
Wenn die Betriebssystem-Software das Problem ist, unterstützt ein
Servicemode-Betriebssystem
die vollständige
Analyse, um das Problem weiter zu identifizieren und zu analysieren.
Wenn beispielsweise das Hauptbetriebssystem nicht betriebsfähig ist,
unterstützt
das Servicemode-Betriebssystem den Betrieb des Computersystems und
ermöglicht
den Betrieb des Computersystems zur automatischen Analyse und Lösung des
Problems mit dem Hauptbetriebssystem.
-
Ein
weiterer wichtiger Vorteil ist eine robuste Anwenderschnittstelle,
die einfach und unkompliziert zu verwenden ist. Beispielsweise drückt ein
Anwender mit einer Frage oder einem Problem einfach einen einfachen
Serviceknopf. Das Drücken
des Serviceknopfs erzeugt einen Interrupt direkt in dem Controller-Chipsatz,
um das Überwachungssystem
zu alarmieren, daß Service
durch den Anwender nachgefragt wird. Die direkte Schnittstelle des
Serviceknopfs zum Controller-Chipsatz
verbessert die Zuverlässigkeit
und Einfachheit, da die Anwendereingabe des Serviceknopfs nicht
vom Betrieb der Computerkomponenten, wie beispielsweise einer Tastatur oder
Maus abhängt.
Zusätzlich
kann ein Anwender den Serviceknopf zu irgendeinem Zeitpunkt drücken, um
Unterstützung
zu suchen. Das Mittel, durch das das Drücken des Serviceknopfes eine
Serviceanwendung startet, stellt sicher, daß die Serviceanwendung zur
geeigneten Zeit laufen wird, unabhängig davon, wann der Serviceknopf
gedrückt
wird und unabhängig
davon, ob er mehrfach gedrückt
wird. Sobald der Serviceknopf gedrückt wird, kann das Computersystem
eine tiefgehende Analyse von möglichen
Problemen durchführen,
selbst wenn das Betriebssystem versagt hat, durch die Anwendung
des Servicemode-Betriebssystems, um die Computerkomponenten laufen
zu lassen. Ferner kann das System und das Verfahren der vorliegenden
Erfindung leicht mit einer Vielzahl von verschiedenen Betriebssystemen implementiert
werden.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Ein
vollständigeres
Verständnis
der vorliegenden Erfindung und ihrer Vorteile erhält man durch Bezug
auf die vorliegende Beschreibung, in Verbindung mit den begleitenden
Figuren, in denen gleiche Bezugszeichen gleiche Merkmale anzeigen
und in denen:
-
1 ein
Blockdiagramm eines Computersystems darstellt, das durch eine Zustandsmaschine zur Überwachung
des Betriebssystems überwacht wird;
-
2 ein
Flußdiagramm
einer Betriebssystemüberwachung
während
und nach einem Start im Normalmode zeigt;
-
3 ein
Flußdiagramm
der Betriebssystemüberwachung
während
und nach einem Servicemode-Start zeigt;
-
4 ein
Flußdiagramm
des Starts einer Serviceanwendung nach dem Drücken eines Serviceknopfes zeigt;
und
-
5 ein
Blockdiagramm von Software- und Hardwarekomponenten zum Start einer
Serviceanwendung zeigt.
-
DETAILLIERTE
BESCHREIBUNG
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung sind in den Figuren erläutert, wobei
gleiche Bezugszeichen verwendet werden, um sich auf ähnliche
und entsprechende Teile der verschiedenen Figuren zu beziehen.
-
Ein
gesundes Betriebssystem überwacht den
Hardware- und Softwarebetrieb in einem Computersystem. Von Zeit
zu Zeit detektiert das Betriebssystem Schwierigkeiten oder Probleme
mit dem Computersystem und stellt eine Benachrichtigung über die
Schwierigkeiten oder Probleme für
den Anwender des Computersystems bereit.
-
Hilfssysteme,
die im allgemeinen dem Betriebssystem zugeordnet sind, können helfen,
um Schwierigkeiten oder Probleme entweder automatisch oder über eine
Interaktion mit dem Anwender, wie zum Beispiel durch das Stellen
von Fragen, zu lösen.
Wenn jedoch das Betriebssystem selbst ein Problem hat oder es Softwareinkompatibilitäten gibt,
ist es für
das Betriebssystem schwierig, sich um solche Probleme zu kümmern.
-
Häufig fährt das
Computersystem entweder herunter oder es stürzt ab, ohne eine weitere Nachricht über das
Problem für
den Anwender des Computersystems bereitzustellen.
-
Um
die Detektion, Identifizierung und Lösung eines Problems eines Computersystems
zu verbessern, überwacht
ein Überwachungssystem,
das dem BIOS des Computersystems zugeordnet ist, die Funktionalität des Betriebssystems.
Das Überwachungssystem
detektiert Ausfälle
beim Starten des Betriebssystems und verschiedene Typen von Abstürzen des
Betriebssystems. Sobald ein Problem de tektiert wird, werden sofort
Hilfsmaßnahmen
ergriffen, um ein ausgefallenes Computersystem wiederherzustellen
unter der Verwendung von einem gleichartigen Mechanismus, der Betriebsaspekte
des Computersystems ausnutzt. Zusätzlich kann das Überwachungssystem
durch ein einziges Drücken
eines Serviceknopfes aufgerufen werden. Das Drücken eines Serviceknopfes erzeugt
einen Interrupt des Computersystem-Controller-Chipsatzes, um automatisch das
höchste
verfügbare
Maß an
Anwenderunterstützung,
so wie es durch die Gesundheit und den Zustand des Computersystems
bestimmt wird, aufzurufen. Wie im weiteren detaillierter beschrieben
wird, kann der Serviceknopf durch einen Anwender gedrückt werden,
wenn das Computersystem in einem POST-Mode, beim Starten, im Servicemode
oder in einem normalen Mode ist. Wenn der Serviceknopf gedrückt wird,
setzt das BIOS ein Bit in einem Mehrzweck-Eingaberegister in dem
Controller-Chipsatz und erzeugt einen Interrupt. Zustandssensitiver
Interrupt-Handler-Code im BIOS unternimmt eine geeignete Handlung
und kann mit dem Betriebssystem kommunizieren, abhängig vom
Zustand des Computersystems, so wie es durch bestimmte CMOS-Bits repräsentiert
wird. Ferner stellt der Interrupt-Handler-Code sicher, daß ausschließlich eine
geeignete Handlung vorgenommen wird, unabhängig davon, wie oft der Serviceknopf
nacheinander gedrückt
wird. Ein System und ein Verfahren zum Überwachen des Versagens eines
Computersystems wird im folgenden detaillierter beschrieben, gefolgt
von einer detaillierten Beschreibung der Art und Weise, in der der Serviceknopf
solch ein Überwachungssystem
aufrufen kann.
-
Unter
Bezugnahme auf 1 zeigt ein Blockdiagramm ein
Computersystem 10 mit einem Betriebssystem 12,
das mit Hardwarekomponenten 14 über ein einfaches Eingabe-/Ausgabesystem (basic
input/output system, „BIOS") 16 verbunden
ist. Die Hardwarekomponenten 14 umfassen konventionelle
Hardwarekomponenten eines Personalcomputersystems, wie zum Beispiel
einen Prozessor, ein Modem, eine Soundkarte, eine Grafikkarte und
Speichergeräte,
inklusive einer Festplatte, Diskettenlaufwerken, ROM und RAM. Beim
anfänglichen
Anschalten oder bei Beginn eines Neustarts steuert das BIOS 16 eine
Startreihenfolge inklusive sive eines Selbsttests beim Einschalten
(power on self test, „POST") und eines Aufrufes
des Betriebssystems. Innerhalb der Hardware 14 befinden
sich einer oder mehrere Timer 18 und 19, wie zum
Beispiel konventionelle Überwachungstimer.
-
Das
BIOS 16 startet das Computersystem beim Anschalten in konventioneller
Weise. Eine Überwachungszustandsmaschine 20 überwacht
den Startvorgang durch das Vergleichen von Zustandsübergängen über die
Startreihenfolge hinweg mit erwarteten Ergebnissen. Die Überwachungszustandsmaschine 20 kommuniziert
beispielsweise mit dem Timer 18, um die erwartete Zeit
für einen
vorbestimmten Übergang
von einem ersten Punkt der Startreihenfolge zu einem zweiten Punkt
mit der für
die Reihenfolge vergangenen Zeit zu vergleichen. Wenn der Timer 18 ungelöscht abläuft, ist
ein Problem detektiert worden, das basierend auf dem Ablauf des
Timers detektiert worden ist. Wenn das BIOS 16 erfolgreich
das Computersystem 10 startet, um das Betriebssystem 12 hochzufahren,
löscht
eine Serviceroutine des Betriebssystems 12 den Timer 18,
um die Anzeige eines Problems zu verhindern.
-
Wenn
die Überwachungszustandsmaschine 20 ein
Problem im Computersystem 10 detektiert, kann das BIOS 16 eine
Anzahl verschiedener Antworten steuern. Beispielsweise kann das
BIOS 16 ein Servicemode-Betriebssystem mit einem Serviceprotokoll 22 aufrufen.
Das Servicemode-Betriebssystem kann beispielsweise eine vereinfachte
Version des Betriebssystems 12 sein, wie zum Beispiel der
Windows Safe-Mode für
Windows 98. Das Servicemode-Betriebssystem kann einen Modemtreiber
umfassen, so daß das
Computersystem einen Analyseserver über das Internet kontaktieren
kann, um Anwendersymptome, Systemkonfiguration und Zustandsinformation
zu versenden und um ferner automatisierte Analysesoftware und -diagnose
durchzuführen.
Das BIOS 16 kann ferner Servicelichter 24 anschalten, um
die Detektion eines Problems anzuzeigen, wobei eine unterschiedliche
Konfiguration an Lichtern ein oder mehrere spezifische Probleme
identifiziert. Ein Computeranwender kann daraufhin die Information über die
angeschalteten Lichter an die technische Unterstützung zur Hilfe bei der Analyse und
Lösung des
Problems liefern. Alternativ dazu kann die technische Unterstützung Systeminformation
vom Analyseserver erhalten.
-
Das
Computersystem 10 umfaßt
einen Serviceknopf 26, der für den Computeranwender zum Drücken zur
Verfügung
steht. Der Serviceknopf 26 stellt ein robustes Anwenderinterface
bereit, das einen Anwender in die Lage versetzt, einen Vorgang zur
Detektion und Identifizierung eines Problems zu starten. Wie weiter
unten beschrieben wird, erzeugt der Serviceknopf 26 ein
Interrupt in dem Controller-Chipsatz
des Computersystems, um beispielsweise eine Serviceanwendung zu
starten. Die Überwachungszustandsmaschine 20 detektiert
das Drücken des
Serviceknopfs und startet die Serviceanwendung oder überwacht
das Systemverhalten, um Probleme des Computersystems zu detektieren.
-
Zusätzlich zum Überwachen
der Startreihenfolge bis zum Aufruf des Betriebssystems 12 kann
die Überwachungszustandsmaschine 20 die
Funktion des Betriebssystems 12 mit einem Absturzdetektionstimer 19 überwachen.
Wenn der Serviceknopf während
des Starts gedrückt
worden ist, wird der Absturzdetektionstimer 19 während der
Startreihenfolge, beispielsweise durch das Einloggen eines Anwenders,
gestartet und durch eine Anwendung gelöscht, die nach Abschluß des Aufrufes
und des Startens des Betriebssystems 12 oder des Servicemode-Betriebssystems 22 abläuft. Wenn
die Anwendung den Absturzdetektionstimer 19 nicht innerhalb einer
vorbestimmten Zeit löscht,
stellt die Überwachungszustandsmaschine 20 fest,
daß ein
Absturz des Betriebssystems aufgetreten ist. Das BIOS 16 erkennt
daraufhin ein Problem des Betriebssystems und versucht, einen Start
im Servicemode oder zeigt ein wahrscheinliches Hardwareversagen über die Servicelichter 24 an.
-
Unter
Bezugnahme auf 2 zeigt ein Flußdiagramm
Schritte zur automatischen Unterstützung für die Überwachung eines Betriebssystems
eines normalen Startmodes. Im Schritt 50 wird ein normaler Computerstart
begonnen. Beispielsweise kann der Anwender des Computersystems den
Strom einschalten oder das Be triebssystem anweisen, das System erneut
zu starten. Im Schritt 52 wird ein Absturzdetektions-Überwachungstimer
gestartet. Das Starten des Betriebssystems und die Aktivität des Timers
finden parallel innerhalb des Systems statt. Der Überwachungstimer
zählt abwärts. Wenn
er null erreicht, bevor die Schritte 58 und 60 abgeschlossen sind
(d.h. wenn eine Serviceroutine am Ende des Startprozesses läuft und
den Timer löscht),
wird Schritt 54 erreicht und das System erneut im Servicemode
im Schritt 56 gestartet.
-
Typischerweise
testet die Startreihenfolge Hardware und beginnt den Start des Betriebssystems
innerhalb einer vorbestimmten Zeitperiode. Nach Abschluß des Testens
der Hardware, wie zum Beispiel dem POST-Test und dem Beginn des
Starts des Betriebssystems wird eine Anweisung von einer Serviceroutine
des Betriebssystems ausgesandt, um den Überwachungstimer im Schritt 58 zu
löschen. Wenn
der Überwachungstimer
im Schritt 60 gelöscht wird,
wird ein normaler Start angezeigt. Wenn der Überwachungstimer nicht gelöscht wird
und bis null abwärts
zählt,
schreitet der Vorgang fort zum Schritt 56 zum Neustart
im Servicemode mit dem Servicemode-Betriebssystem. In einem Ausführungsbeispiel können zusätzliche
normale Starts automatisch wiederholt werden, bevor zur Servicemode-Startreihenfolge
fortgeschritten wird. Zusammengefaßt heißt das, daß, wenn der Überwachungstimer
nach einer vorbestimmten Zeit ungelöscht bleibt, es bekannt ist, daß das Computersystem
nicht bis zu dem Punkt der Startreihenfolge gestartet hat, an dem
die Serviceroutine den Überwachungstimer
löscht.
Daher kann ein Problem mit dem Computersystem bis zu einem gewissen
Maß identifiziert
werden, basierend darauf, ob die Startreihenfolge abgeschlossen
worden ist.
-
Der
Schritt 58 zeigt an, daß eine Serviceroutine des Betriebssystems
an einem vorbestimmten Punkt im hinteren Teil des Computerstartvorgangs läuft. Im
Schritt 60 wird der Überwachungstimer
mit der Serviceroutine des Betriebssystems gelöscht vor Ablauf der vorbestimmten
Zeitperiode des Überwachungstimers.
Wenn der Schritt 60 erreicht wird, sollte die Computerhardware
und -soft ware, die bis zum Beginn des vorbestimmten Punktes der
Betriebssystem-Startreihenfolge
getestet und hochgefahren worden ist, im allgemeinen betriebsbereit
sein. Sobald diese Feststellung getroffen worden ist, wird dem Anwender
im Schritt 62 die Gelegenheit zum Einloggen gegeben.
-
Im
Schritt 64 wird festgestellt, ob der Serviceknopf 26 während des
Betriebssy- stem-Startvorgangs (siehe detaillierte Erläuterung
unten) gedrückt worden
ist, im Gegensatz zu einem normalen Start, bei dem der Serviceknopf
nicht gedrückt
worden ist. Wenn festgestellt wird, daß der Serviceknopf nicht gedrückt worden
ist, schreitet der Prozeß fort
zum Schritt 70 zum Beginn des normalen Betriebs des Computersystems.
-
Wenn
im Schritt 64 festgestellt wird, daß ein Drücken des Serviceknopfs während des
Starts aufgetreten ist, wird daraufhin im Schritt 66 eine
Serviceanwendung gestartet und im Schritt 72 ein Absturzdetektionstimer
zur Überwachung
eines Absturzes des Betriebssystems. Die Absturzdetektionsüberwachung
verwendet den Absturzdetektionstimer 19 oder einen anderen
Timer, um zu testen, ob das Betriebssystem seinen Start der Serviceanwendung
innerhalb der vorbestimmten Zeit abschließt. Der Absturzdetektionstimer
wird im Schritt 72 gestartet und daraufhin durch eine Anwendung
gelöscht,
die auf dem Computersystem abläuft,
nachdem die Anwendung einen vorbestimmten Teil ihres Ladens und
ihrer Startreihenfolge im Schritt 68 abgeschlossen hat. Somit
wird im Schritt 68 festgestellt, ob das Laden der Anwendung
und die Startreihenfolge normal ist. Wenn ja, löscht die Anwendung, die auf
dem Computersystem läuft,
den Absturzdetektionstimer und der Vorgang schreitet fort zum Schritt 70 für den Beginn der
Unterstützungsanwendungen.
Wenn der Absturzdetektionstimer ungelöscht über eine vorbestimmte Zeit
hinweg bleibt, wird im Schritt 74 festgestellt, daß die Serviceanwendung
den Timer 19 nicht gelöscht
hat. Dies kann anzeigen, daß das
Betriebssystem abgestürzt
ist; zumindest ist es nicht in der Lage, die Serviceanwendung normal
zu starten. Im Schritt 74 wird bei Detektion des Ablaufs
des Absturzdetektionstimers das System erneut im normalen Mode (Schritt 50)
oder im Ser vicemode (Schritt 76) gestartet, abhängig von
einer definierbaren Anzahl von erfolglosen Versuchen eines Neustarts
im normalen Mode (Schritt 75).
-
Wenn
der Anwender den Serviceknopf drückt,
während
der Computer im Normalbetrieb ist, wie zum Beispiel im Schritt 70 von 2 oder
zu irgendeinem anderen Zeitpunkt als dem Start des Computers, schreitet
das System daraufhin zum Schritt 78 fort, um das Betriebssystem
auf einen Absturz zu testen. Eine Serviceanwendung wird im Schritt 66 gestartet
und der Absturzdetektionstimer wird im Schritt 72 gestartet.
Wenn die Serviceanwendung den Timer im Schritt 68 löscht, schreitet
das Computersystem daraufhin zum Normalbetrieb im Schritt 70 fort.
Wenn der Timer im Schritt 74 abläuft, wird ein Absturz des Computersystems
detektiert und das System versucht einen Neustart im normalen Mode
(im Schritt 75), bis eine spezifizierte Anzahl von Ausfällen des
normalen Neustarts aufgetreten sind, woraufhin das System in einem
Servicemode im Schritt 76 erneut startet. Dies ermöglicht eine
Feststellung der Betriebssystemfunktionalität ohne die Notwendigkeit eines
vollständigen
Neustarts. Ferner ist, wenn der Timer im Schritt 74 abläuft, eine
Fehlerbehandlung mit dem Servicemode möglich, selbst wenn das normale
Betriebssystem nicht funktioniert.
-
Unter
Bezugnahme auf 3 wird der Servicemode im Schritt 80 mit
einer Servicemode-Startreihenfolge gestartet. Im Schritt 82 wird
ein Servicemode-Überwachungstimer
gestartet. Ebenso wie oben zählt
dieser Überwachungstimer
abwärts
bis null parallel zum Laden des (in diesem Fall Servicemode-) Betriebssystems.
Wenn der Überwachungstimer
null erreicht (Schritt 84), bevor er spät im Servicemode-Startvorgang
gelöscht
wird (Schritt 88 und 90) hat der Servicemodestart
versagt und dies wird angezeigt durch das Setzen der LEDs zur Anzeige
eines Hardwareversagens (Schritt 86). Ein Hardwareproblem
ist wahrscheinlich, da weder das Hauptbetriebssystem noch das Servicemode-Betriebssystem
in der Lage sind, den Computer in einen betriebsbereiten Zustand
zu bringen.
-
Im
Schritt 88 läuft
eine Routine des Servicemode-Betriebssystems an einem vorbestimmten Punkt
im hinteren Teil des Startvorgangs ab. Wenn die Serviceroutine im
Schritt 88 abläuft,
löscht
die Routine daraufhin im Schritt 90 den Timer, um anzuzeigen,
daß das
Servicemode-Betriebssystem funktioniert. Im Schritt 92 ist
der Start des Computersystems mit dem Servicemode-Betriebssystem
abgeschlossen.
-
Im
Schritt 94 wird festgestellt, ob der Serviceknopf während des
Starts im Normalmode oder Servicemode gedrückt worden ist. Der Zustand
des Knopfs, der während
des Startens gedrückt
wird, wird über
erfolglose Neustartversuche hinweg gespeichert. Falls ja, wird daraufhin
die Serviceanwendung gestartet und ein Detektionstest für einen
Systemabsturz schreitet mit dem Beginn des Detektionstimers für einen
Betriebssystemabsturz im Schritt 104 fort. Wiederum erfolgt
das Abwärtszählen des
Absturzdetektionstimers parallel zum Laden und Starten der Servicemode-Wiederherstellungsanwendung
im Schritt 96. Falls dies Erfolg hat, wird sie Code ablaufen
lassen, um den Absturzdetektionstimer im Schritt 98 zu
löschen.
An diesem Punkt weiß man,
daß das Servicemode-Betriebssystem
zumindest ausreichend funktioniert, um die Servicemodeanwendung zu
starten. Im Schritt 100 werden Serviceunterstützungsanwendungen
gestartet, wie zum Beispiel Anwendungen, die nützlich sind zur Analyse von
Softwareproblemen. Das Computersystem arbeitet im Servicemode und
steht zur Fehlerbehandlung zur Verfügung.
-
Wenn
im Schritt 106 der Überwachungstimer abwärts bis
null zählt
(d.h. abläuft),
bevor er durch die Serviceanwendung gelöscht wird, ist im Schritt 108 gezeigt
worden, daß das
Servicemode-Betriebssystem nicht in der Lage ist, die Serviceanmeldung
innerhalb der vorbestimmten Zeit zu laden und zu starten. An diesem
Punkt ist ein Absturz des Servicemode-Betriebssystems detektiert
worden und der Vorgang endet mit der Anzeige eines wahrscheinlichen Hardwareproblems
mit den dem Computersystem zugeordneten Lichtern im Schritt 108.
-
Wenn
im Schritt 102 der Serviceknopf gedrückt wird, während der Computer im Servicemodebetrieb
ist, schreitet das System parallel zu den Schritten 104 und 96 fort,
um das Servicemode-Betriebssystem auf einen Absturz zu testen. Eine
Serviceanwendung wird im Schritt 96 gestartet und ein Absturzüberwachungstimer
wird im Schritt 104 gestartet. Wenn die Serviceanwendung
den Timer im Schritt 98 löscht, schreitet das Computersystem
daraufhin zum Servicemodebetrieb im Schritt 100 fort, um
den Start von Servicemode-Wiederherstellungsanwendungen zu erlauben,
die die Analyse des Versagens des Computersystems und Korrekturhandlungen
ermöglichen.
Wenn der Timer im Schritt 106 abläuft, wird daraufhin ein Absturz
des Betriebssystems detektiert und das System zeigt ein wahrscheinliches
Hardwareversagen im Schritt 108 an. Dies ermöglicht eine
Feststellung der Funktionalität
des Servicemode-Betriebssystems ohne die Notwendigkeit für einen
vollständigen
Neustart.
-
Das
folgende Fallbeispiel wird ferner den Betrieb des Überwachungssystems
klarstellen. Wenn das Überwachungssystem
keine Hardware- oder Betriebssystemfehler findet, kann der Computeranwender
eine Lösung
des Problems oder eine Frage über eine
lokale Hilfe auf dem Computersystem nachsuchen oder durch das Verbinden
zu Hilfe über
das Internet unter Verwendung des Computersystems. Lokale und entfernte
internetbasierte Hilfe wird die Mehrzahl der Computerprobleme oder
der auftretenden Fragen lösen.
-
Ein
weiterer hilfreicher Beispielfall ist ein nicht fatales Hardwareversagen,
wie zum Beispiel das Versagen eines CD-ROM-Laufwerkes oder eines Lautsprechers.
Das Überwachungssystem
sollte anzeigen, daß kein
Fehler beim Betriebssystem aufgetreten ist und der Anwender kann
technische Unterstützung
kontaktieren, damit ihm eine neue Hardware gesandt wird. Einige
Arten von nicht fatalen Hardwareausfällen werden die zur Verfügung stehenden
Optionen zum Erhalten von Hilfe begrenzen. Beispielsweise wird das
Computersystem ohne ein Modem oder eine Netzwerkkarte (network Interface card, „NIC") funktionieren.
Das Versagen dieser Hardware wird jedoch die Fähigkeit des Computersystems
zum An schluß an
das Internet zum Erhalten von Hilfe begrenzen. Teilweise kann das
Versagen eines Modems behandelt werden, indem sich der Computer
in den Servicemode begibt. Wenn beispielsweise ein Modemversagen
mit der Modemkonfiguration oder ISP-Wahl-Anweisungen zusammenhängt, kann eine
Servicemode-Modemkonfiguration
eine internetbasierte Problemlösung
unterstützen.
-
Wenn
in einem anderen Beispielsfall der Normalmode des Betriebssystems
nicht betriebsbereit ist, nicht startet oder in anderer Weise instabil
ist, kann eine Modemverbindung mit dem Servicemode-Betriebssystem
hergestellt werden. Die Internetverbindung über den Servicemode ermöglicht eine direkte
Systemanalyse des Betriebssystems, um automatisch die Problemlösung und
Wiederherstellung für
das Betriebssystem zu unterstützen.
Beispielsweise kann ein neues Betriebssystem oder relevante Teile
des Betriebssystems über
das Internet geladen werden, um das fehlerhafte Betriebssystem zu
ersetzen. Wenn die automatische Problemlösung das Problem nicht löst, kann
der Anwender daraufhin technische Unterstützung anrufen und das Problem
identifizieren auf der Basis der angezeigten Lichterkonfiguration.
-
Als
einen zusätzlichen
Beispielfall kann das Computersystem einen fatalen Fehler haben,
der den Betrieb sowohl im normalen als auch im Servicemode verhindert.
Beispielsweise kann das Computersystem inkorrekt vorbereitet sein
oder einen fatalen Hardwarefehler haben, wie zum Beispiel einen Fehler
auf dem Motherboard, der Festplatte oder der Stromversorgung. In
solchen Fällen
wird ein erläuterndes
Diagramm, das mit dem Computersystem bereitgestellt wird, das Problem
angeben, das der angezeigten Lichtkonfiguration zugeordnet ist und
einfache Anweisungen, denen der Anwender folgen soll. Der Anwender
kann daraufhin diese Information dazu verwenden, um technische Unterstützung zu kontaktieren
und um Ersatzhardware zu erhalten.
-
Wie
oben angegeben, umfaßt
das Computersystem 10 einen Serviceknopf 26, der
zur Verfügung
steht, damit der Computeranwender ihn drückt. Der Serviceknopf 26 erzeugt
einen Interrupt im Controller-Chipsatz des Computersystems, um beispielsweise
eine Serviceanwendung zu starten. Die Überwachungszustandsmaschine 20 detektiert
das Drücken
des Serviceknopfs und startet die Serviceanwendung zu einem geeigneten
Zeitpunkt oder überwacht
das Systemverhalten, um Probleme des Computersystems zu detektieren.
Wenn der Serviceknopf gedrückt
wird, wird der Absturzdetektionstimer 19 gestartet und
später
durch eine Anwendung gelöscht, die
nach Abschluß des
Aufrufs und des Startens des Betriebssystems 12 oder des
Servicemode-Betriebssystems 22 abläuft. Wenn die Anwendung den
Absturzdetektionstimer 19 nicht innerhalb einer vorbestimmten
Zeit löscht,
stellt die Überwachungszustandsmaschine 20 fest,
daß ein
Betriebssystemabsturz aufgetreten ist. Das BIOS 16 erkennt
daraufhin ein Problem des Betriebssystems und startet ein vorbestimmtes
Neustartprotokoll, das das Neustarten im Servicemode, wie oben im
Detail beschrieben, umfassen kann.
-
Der
Serviceknopf stellt einen Standardmechanismus bereit, mit dem ein
Anwender Unterstützung
aufrufen kann. Unter erneuter Bezugnahme auf die 4 und 5 wird
ein Anwender, der Unterstützung
aufrufen möchte,
den Serviceknopf 26 im Schritt 400 drücken. Es
ist zu bemerken, daß,
obwohl nicht speziell gezeigt, das Flußdiagramm, das in 4 gezeigt
ist, zwei Ausführungsräume mit
sich bringt, einen innerhalb des BIOS und den anderen innerhalb
des Ausführungsraums
des Betriebssystems. Im allgemeinen wird Kommunikation mit dem Betriebssystem
durch das Erzeugen eines Interrupts behandelt, wie zum Beispiel
eines Systemcontrol-Interrupts (SCI), während die Kommunikation vom
Betriebssystem zurück
zum BIOS durch das Ablaufen von Code erreicht wird, der Werte im
BIOS setzt, wie zum Beispiel das Löschen eines Absturzüberwachungsdetektionstimers.
Das Mittel, durch das das Überwachungssystem
in dem BIOS mit dem Betriebssystem kommuniziert und das Betriebssystem antwortet
(wenn es nicht abgestürzt
ist), so wie es im folgenden detaillierter beschrieben wird, schafft
einzigartige Vorteile. Obwohl das System zwangsläufig betriebssystemabhängig ist,
da einige Teile sich innerhalb des Betriebssystems befinden, ist
es ferner in der Lage, die zugrundeliegende Personalcomputerarchitektur
zu nutzen, um zu ermöglichen, daß der gleiche
Mechanismus im BIOS mehrere betriebssystemspezifische Implementierungen
unterstützt.
Ferner ermöglicht
das System, daß der
Anwender Unterstützung
aufruft, unabhängig
vom Funktionszustand des Betriebssystems.
-
Wie
in 5 gezeigt, ist der Serviceknopf 26 direkt
mit einem spezifischen Eingaberegister 500 im Mehrzweckeingabe/-ausgaberegister
(general purpose in- put/output, GPIO) des Controller-Chipsatzes 520 verbunden
und das Drücken
des Serviceknopfs verursacht, daß in dem Eingaberegister ein
Bit im Schritt 402 gesetzt wird.
-
Das
Setzen dieses Bits erzeugt einen Systemmanagement-Interrupt (SMI)
im Schritt 404 zum Starten eines zustandssensitiven Interrupt-Handler-Codes,
eines SMI-Handlers 502 in dem BIOS. Der SMI-Handler 502 empfängt den
SMI und verhindert eine weitere SMI-Erzeugung im Schritt 406,
bis der vorliegende SMI bedient worden ist, um sicherzustellen,
daß nur
ein Interrupt erzeugt wird, wenn ein Anwender den Serviceknopf mehrfach
drückt,
solange, bis dieser Interrupt vollständig bedient worden ist.
-
Im
Schritt 408 stellt der SMI-Handler durch das Untersuchen
des passenden Bits im CMOS-Register fest, ob das Computersystem
beim Starten ist. Wenn das System gegenwärtig beim Starten ist, bleibt
das Mehrzweck-Eingabebit gesetzt, während das System mit seiner
Startreihenfolge fortfährt.
Ferner wird im Schritt 410 ein Absturzüberwachungstimer gesetzt, jedoch
unternimmt der SMI-Handler keine weitere Handlung. Wenn das System
seine Startreihenfolge abgeschlossen hat oder sich an einem vorbestimmten
Punkt in der Startreihenfolge befindet, an dem bekannt ist, daß die Hardware
und Software, die bis zu diesem Punkt in der Startreihenfolge getestet
und hochgefahren worden ist, im allgemeinen betriebsbereit ist,
beispielsweise wenn der Anwender zur Eingabe seiner Identifizierung
aufgerufen wird, wird das Betriebssystem angewiesen, den Zustand
des Bits des Serviceknopfs im Schritt 411 zu überprüfen. Wenn
das Bit des Serviceknopfs gesetzt worden ist, das anzeigt, daß der Knopf
während
des Startens gedrückt
worden ist, wird das Betriebssystem eine Serviceanwendung im Schritt 422 starten. Anderenfalls
wird es den normalen Betrieb aufnehmen (Schritt 412). In
einem Ausführungsbeispiel überprüft eine
im Hintergrund ablaufende Aufgabe, wie zum Beispiel ein Starter
einer Serviceanwendung, der dem Betriebssystem zugeordnet ist und der
als Teil des normalen Startvorgangs abläuft, das Bit des Serviceknopfs.
Wenn das Bit des Serviceknopfs gesetzt ist, wird die Serviceanwendung
gestartet.
-
Wenn
im Schritt 408 der SMI-Handler feststellt, daß das System
nicht startet, startet der SMI-Handler einen Absturzdetektionstimer
im Schritt 416. Dieser Absturzdetektionstimer kann derselbe
Timer sein wie derjenige, der im Schritt 410 oben gesetzt
wird oder ein anderer Timer. Der Wert, auf den der Timer gesetzt
ist, wird jedoch unterschiedlich sein in Abhängigkeit davon, ob der Serviceknopf
während des
Starts oder zu einem anderen Zeitpunkt gedrückt wird. Beim Drücken während des
Startens wird er auf einen höheren
Wert gesetzt, der eine längere
Zeit darstellt, die benötigt
wird, um dem System zu gestatten, den Startzyklus abzuschließen und
die Serviceanwendung zu starten. Wenn er nicht während des Startens gedrückt wird,
wird der Timer auf einen niedrigeren Wert gesetzt, der eine kürzere Zeit
darstellt, die benötigt
wird, um dem System zu gestatten, den Interrupt (wie oben beschrieben)
zu verarbeiten und die Serviceanwendung zu starten.
-
Wenn
das System nicht beim Starten ist, kommuniziert der SMI-Handler-Code
im BIOS nachfolgend mit dem Betriebssystem, indem er einen Interrupt
im Schritt 418 erzeugt, um dem Betriebssystem mitzuteilen,
daß der
Serviceknopf gedrückt
worden ist. In einem Ausführungsbeispiel
ist dieser Interrupt ein Systemcontrol-Interrupt (SCI), der im Ausführungsraum
des Betriebssystem bedient wird. Zum Start des SCI setzt der SMI-Handler
ein Ausgangsbit 504 in einem Ausgangsregister des GPIO.
Wie in 5 gezeigt, wird dieses Bit als ein Eingang für einen
Systemcontrol-Interrupteingang 506 verwendet, der wiederum
den SCI 508 startet. Im Schritt 420 wird der SCI
durch eine Interrupt-Serviceroutine (ISR) 510 im Ausführungsraum
des Betriebssystems verarbeitet. Die ISR liefert eine Nachricht an
das Betriebssystem zum Start einer Serviceanwendung. In einem Ausführungsbeispiel
wird dies erreicht durch das Senden einer Nachricht an den Starter 512 für die Serviceanwendung,
der dem Betriebssystem zugeordnet ist, und der die Serviceanwendung 514 im Schritt 422 startet.
-
Unabhängig davon,
ob der Serviceknopf während
des Startes oder zu einem ande- ren Zeitpunkt gedrückt worden
ist, werden, wenn die Serviceanwendung, wie im Schritt 426 festgestellt,
korrekt startet, das Serviceknopfbit und der Absturzüberwachungstimer
im Schritt 428 gelöscht.
In einem Ausführungsbeispiel
benachrichtigt die Serviceanwendung den Starter der Serviceanwendung
und weist ihn an, das Serviceknopfbit und den Absturzdetektionstimer
zu löschen.
Wenn die Serviceanwendung nicht korrekt gestartet hat (d.h. der
Timer hat null erreicht, bevor er gelöscht worden ist), kann dies
einen Absturz des Betriebssystems anzeigen oder zumindest, daß es nicht
in der Lage ist, die Serviceanwendung richtig zu starten. Somit
beginnt das System im Schritt 430, einem vorbestimmten
Neustartprotokoll zu folgen, das möglicherweise das Neustarten
im Servicemode umfaßt,
wie im Detail oben beschrieben. Wenn schließlich der SMI vollständig bedient worden
ist, ermöglicht
der SMI-Handler eine erneute SMI-Erzeugung im Schritt 432,
so daß ein
nachfolgendes Drücken
des Serviceknopfes einen weiteren Interrupt verursacht und den Start
des Bedienens des Interrupts, wie oben beschrieben.
-
Das
System und das Verfahren der vorliegenden Erfindung schafft damit
einen einzigartigen Weg zum Aufruf von Anwenderunterstützung in
einer gleichartigen ausfallsicheren Art. Die Art und Weise, in der
der Code in dem BIOS-Ausführungsraum
mit dem Betriebssystem und umgekehrt kommuniziert, ermöglicht den
Aufruf einer Serviceanforderung, die betriebssystemunabhängig ist
und stellt ein Überwachungssystem
bereit, das sich außerhalb
des Betriebssystems befindet, um in der Lage zu sein, das Betriebssystem
selbst zu überwachen.
Ferner ermöglicht
das oben beschriebene System und Verfahren, daß ein Anwender Unterstützung aufruft,
unabhängig
vom Zustand des Betriebssystems (d.h. während des Startens oder zu
einem anderen Zeitpunkt oder wenn das Betriebssystem abgestürzt ist).
-
Die
hier beschriebenen Problemidentifizierungs- und -lösungssysteme
können
bereitgestellt werden als eine auf Bestellung gebaute Komponente des
Computersystems. Beispielsweise können weniger erfahrene Anwender
ihr Computersystem mit einer Einknopf-Problemlösung bestellen, wohingegen erfahrenere
Anwender Computersysteme mit Standardkonfigurationen bestellen können. Alternativ dazu
können
Käufer
des Computersystems nur Teile des Systems bestellen, wie zum Beispiel
einen Timer, der nur das Hauptbetriebssystem überwacht und der nicht die
Fähigkeit
zum automatischen Aufruf eines Servicemode-Betriebssystems umfaßt.