DE69618007T2 - Fehlerdatenerfassung beim wiederanlauf eines rechners - Google Patents
Fehlerdatenerfassung beim wiederanlauf eines rechnersInfo
- Publication number
- DE69618007T2 DE69618007T2 DE69618007T DE69618007T DE69618007T2 DE 69618007 T2 DE69618007 T2 DE 69618007T2 DE 69618007 T DE69618007 T DE 69618007T DE 69618007 T DE69618007 T DE 69618007T DE 69618007 T2 DE69618007 T2 DE 69618007T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- computer
- data structures
- error
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
Description
- Die Erfindung bezieht sich auf eine Fehlerdatensammlung bei Computersystemen. Genauer bezieht sich die Erfindung auf ein Verfahren zur Lösung von Problemen, die zu einem Wiederanlauf eines einen Prozeß wie beispielsweise eine Übertragung von Anrufen steuernden Computers führen.
- Benutzer von Computern und ihrer Software sehen sich häufig derartigen ärgerlichen Fehlersituationen gegenüber, in denen ein Computer zu dem Anfangszustand umschaltet, d. h. der Computer arbeitet, als ob gerade die Stromversorgung eingeschaltet worden wäre. In einem derartigen Fall gehen die Daten, die in dem Speicher des Computers gespeichert waren, üblicherweise verloren. Das Betriebssystem kann eine kurze Fehlermeldung wie beispielsweise "Allgemeine Schutzverletzung" angeben. Eine derartige Fehlermeldung gibt dem Benutzer oder dem Berater der technischen Unterstützung kaum Informationen über die Ursache des Fehlers oder Ratschläge darüber, wie vorzugehen ist, damit die Situation nicht erneut auftritt. Das andere Extrem ist durch die Art und Weise dargestellt, auf die Software eines bestimmten lokalen Netzes (Novell® Netware) eine Fehlersituation berichtet. Wenn bei der Ausführung der Netz-Server-Software ein Fehler auftritt, wird dem Berater der technischen Unterstützung die Möglichkeit gegeben, den gesamten Speicher des Servers auf Platten zu speichern, von denen Dutzende erforderlich sein können. Es ist offensichtlich nicht leicht, den Grund für den Fehler zu finden, falls zu viele Daten vorhanden sind. Ferner besteht das Problem bekannter Verfahren darin, daß bei diesen Verfahren die Berichterstattung an den Benutzer vor dem Computerwiederanlauf stattfindet. Falls die Fehlersituation die Plattenverarbeitungsroutinen des Betriebssystems durcheinandergebracht hat, kann die dem Fehler vorhergehende Situation nicht auf einer Platte gespeichert werden.
- Computerwiederanläufe treten gelegentlich auf. Der Klarheit wegen bezieht sich bei der vorliegenden Anmeldung ein "Wiederanlauf" insbesondere auf einen Wiederanlauf, dessen Gründe zu untersuchen sind.
- Es ist sehr wichtig, daß in Fehlersituationen Wartungsoperationen auf die richtige Art und Weise an die richtigen Stellen gerichtet werden können. Beispielsweise offenbart es PC Format, August 1995, S. 27 in Verbindung mit Computersoftwarefehlern, daß am 15. Januar 1990 die Hälfte des Telefonnetzes von AT&T in den Vereinigten Staaten gelegentlich außer Betrieb war und daß an diesem Tag 70 Millionen Anrufe unvollendet gelassen wurden. Der Fehler wurde bis zu einer Wartungsoperation verfolgt, die an die Vermittlungsämter von AT&T steuernde Software gerichtet war und die nicht wie geplant klappte.
- Fig. 1 zeigt ein verteiltes Computersystem. Zumindest einige der Computer 10 und 20 (bei diesem Beispiel der Computer 10) sind als Server für die anderen Computer 20 tätig. Der Server 10 umfaßt ein Laufwerk 11, in dem die Systemsoftware gespeichert ist. Die Computer sind über eine Verbindung 1 zusammengeschaltet, bei der es sich um ein Kabel eines lokalen Netzes oder eine Fernverbindung wie beispielsweise eine reservierte Modem-Leitung, eine ISDN-Verbindung, eine Funkverbindung oder dergleichen handeln kann. Der Computer 20 wird z. B. auf eine per se bekannte Art und Weise derart gestartet, daß Unterstützungsschaltungen 25 des Computers ein Startsignal erzeugen, das die Zentraleinheit 24 zum Springen zu einer einen Nur-Lese-Speicher 22, der das Anfangsladeprogramm enthält, umfassenden vorbestimmten Adresse veranlaßt. Die Ausführung des Anfangsladeprogramms durch die Zentraleinheit 24 führt z. B. eine Netzschnittstelle 21 dazu, über die Verbindung 1 zuerst das Betriebssystem von dem Server 10 zu laden, das weiterentwickeltere Ladeprogramme umfassen kann. Zur Ausführung werden das Betriebssystem und die anderen Programme in ein RAM oder einen Schreib-Lese-Speicher mit wahlfreiem Zugriff 23 geladen, der nachstehend als Hauptspeicher bezeichnet ist. Nach dem Laden des Betriebssystems werden die Anwendungsprogramme geladen, und die Ausführung dieser Programme veranlaßt den Computer 20 zur Ausführung seiner tatsächlichen Aufgabe. Als Alternative zu dem Laden der Software über die Verbindung 1 kann die Software auch über eine Laufwerksteuereinrichtung 26 von einem lokalen Laufwerk 27 geladen werden, falls der Computer 20 eines aufweist. Der Computer 20 kann auch eine Ausgabevorrichtung 28 umfassen.
- Fig. 2 zeigt die Teile indem Betriebssystem des Computers 20, die für die Erfindung wesentlich sind. In diesem beispielhaften Fall umfaßt das Betriebssystem OS vier Grundfunktionen OS2 bis OS5, d. h. eine Prozeßsteuerung, eine Speicherverwaltung, eine Übertragung von Nachrichten und einen Ausschluß von Prozessen.
- Fig. 3 zeigt eine veranschaulichende Prozeßkette. Genauer handelt es sich bei der Kette um eine Kette von Prozeßsteuerblöcken (PCB). Es kann sich bei der Kette z. B. um eine Kette von ausführbaren Prozessen, eine Kette von auf ein bestimmtes Ereignis in dem Semaphor wartenden Prozessen oder dergleichen handeln. Die Prozesse Pn weisen üblicherweise eine komplizierte und dynamische Datenstruktur auf. In Fig. 3 sind die Dinge aus Gründen der Veranschaulichung auf eine derartige Weise vereinfacht, daß die auf jeden Prozeß Pn bezogenen Datenstrukturen in einem Parameterbereich PA komprimiert sind, der z. B. Daten über den Zustand des Prozesses und den für den Prozeß reservierten Speicherbereich sowie Daten über den nächsten und den vorhergehenden Prozeß der Familie umfaßt. Wenn der Prozeß endet, sollte er den ganzen Speicher freigeben, den er reserviert hat. Eine häufige Ursache für Probleme mit Speicher besteht darin, daß ein Prozeß nicht den ganzen Speicher freigibt, den er reserviert hat. Wenn der Prozeß eine ausreichende Anzahl von Malen Speicher reserviert, ohne den Speicher freizugeben, den er vorher reserviert hat, füllt er schließlich den ganzen verfügbaren Speicher, so daß die anderen Prozesse keinen Speicher mehr reservieren können. Ein weiterer Fehlermechanismus kann darin bestehen, daß ein Prozeß irrtümlicherweise in einer Schleife verbleibt und zu ihm übertragene Nachrichten nicht empfängt.
- Eine formelle Beschreibung von Semaphoren und Operationen ist in "Co-operating Sequential Processes" von E.W. Dijkstra in Programming Languages, ed. Genuys, F., London Academic Press, 1965 offenbart.
- Die vorstehend beschriebene Beschreibung von Prozessen ist weitgehend vereinfacht, veranschaulicht jedoch das Problem und die Lösung dafür ausreichend. Falls ein in den Computer 20 geladenes Programm, genauer ein Prozeß der Software, fehlerhaft wird oder z. B. ein Speicherfehler bei dem Computer auftritt, wird der Computer neu gestartet. In einem derartigen Fall wird die vorstehend beschriebene Softwareladeprozedur wiederholt. Das Problem bei der Lökalisierung der Ursachen des Fehlers, die zu dem Wiederanlauf führen, besteht zuerst darin, daß es schwierig ist, relevante Daten von irrelevanten Daten zu trennen. Ein weiteres Problem besteht darin, daß die Funktionsstörung der Software die die Netzschnittstelle 21 und/oder die Laufwerksteueteinrichtung 26 steuernde Software durcheinandergebracht haben kann, so daß es unmöglich sein kann, Daten irgendwo zu speichern, bevor während des Wiederanlaufs neue Daten darauf geschrieben werden.
- Es ist bisher bekannt, während eines Wiederanlaufs Daten aus einem Datenbereich eines Computers zu sammeln. Beispielsweise beschreibt das US-Patent 4 930 128 ein Verfahren, bei dem als Teil des Anfangsprogrammladens ein Seitendatensatz auf der Festplatte gespeichert wird. Eine derartige unselektive Datenspeicherung versieht die Person, die es versucht, den Fehler zu lokalisieren, mit zu vielen irrelevanten Daten. Wie es vorstehend beschrieben ist, taugt eine derartige große Menge von nicht überprüften Daten in der Praxis nicht zur Lokalisierung von Fehlern.
- Auf der Grundlage der vorstehenden Einleitung liegt der Erfindung die Aufgabe zugrunde, ein Verfahren zur Sammlung von Fehlerdaten von Computersystemen bereitzustellen, wobei bei dem Verfahren derartige Daten, die bei einem Finden der Ursache des Fehlers relevant sein können, z. B. zur nachfolgenden Analyse gespeichert werden, aber irrelevante Daten nicht gespeichert werden. Weiterhin besteht die Aufgabe darin, eine das Verfahren realisierende Ausstattung bereitzustellen.
- Die Erfindung, wie sie durch die unabhängigen Patentansprüche definiert ist, basiert auf der Tatsache, daß ein Betriebssystem eines Computers mit einer Funktion ergänzt wird, die während eines Wiederanlaufs derartige Daten sammelt, die bei einem Finden der Ursache des Fehlers wichtig sein können. Gemäß der Erfindung werden die Speicherbereiche des Computers nur dann initialisiert, wenn die Teile der Speicherbereiche, die für die Lokalisierung des Fehlers wesentlich sind, gespeichert worden sind. Genauer wird die Aufgabe der Erfindung mit Verfahren und Ausstattungen gelöst, die dadurch gekennzeichnet sind, was in den unabhängigen Patentansprüchen offenbart ist. Andere Arten zur genaueren Definition der Fehlerdatensammlung sind in den abhängigen Patentansprüchen offenbart.
- Das Verfahren und die Ausstattung gemäß der Erfindung stellen zuerst den Vorteil bereit, daß die einen Wiederanlauf betreffenden Daten im voraus mit einem Computer überprüft werden können, so daß irtelevante Daten nicht unnötig menschliche Arbeitskräfte und Computerbetriebsmittel belasten. Die geringere Verwendung von Betriebsmitteln stellt den weiteren Vorteil bereit, daß selbst mit teilweise defekter Ausstattung ebenfalls Daten gesammelt werden können. Ein weiterer Vorteil besteht darin, daß die Daten gespeichert werden, wenn der Computer sich in einem eindeutig definierten Zustand befindet, so daß Peripherievorrichtungen und ihre Treiber verfügbar sind, die zur Speicherung der Daten benötigt werden können.
- Die Erfindung ist nachstehend in Verbindung mit den bevorzugten Ausführungsbeispielen und unter Bezugnahme auf die beiliegenden Zeichnungen näher beschrieben, in denen
- Fig. 1 ein verteiltes Computersystem zeigt,
- Fig. 2 Teile des Betriebssystems des Computers zeigt,
- Fig. 3 eine veranschaulichende Kette von Prozessen zeigt, und
- Fig. 4 ein Flußdiagramm zeigt, das die Arbeitsweise eines Fehlerdatensammlungsprogramms veranschaulicht.
- Fig. 2 zeigt die Teile des Betriebssystems des Computers 20. Die erfindungsgemäße Fehlerdatensammlungsfunktion OS1 kann ebenso wie die anderen Funktionen des Betriebssystems in dem Betriebssystem plaziert sein. Die Fehlerdatensammlungsfunktion OS1 ist in Fig. 2 als die erste Funktion des Betriebssystems gezeigt. Diese Plazierung soll es betonen, daß die Fehlerdaten gesammelt werden sollen, bevor die Software z. B. von dem Laufwerk geladen wird und die Datenstrukturen wieder initialisiert werden. Fig. 2 zeigt es auch, daß ein Teil des Hautspeichers 23 des Computers 20 als Speicherbereich SA reserviert ist, dessen Verwendung in Verbindung mit Fig. 3 erläutert wird.
- Fig. 3 zeigt eine veranschaulichende Kette von Prozessen. Das erfindungsgemäße Fehlerdatensammlungsprogramm OS1 empfängt z. B. mittels Softwarepackverfahren Informationen über den Ursprung der Kette. Das gleiche Verfahren wird z. B. zur Ermöglichung der Verwendung von Universalbibliotheken genutzt. Die allgemeine Idee besteht darin, daß das erfindungsgemäße Fehlerdatensammlungsprogramm OS1 die Parameter von unterschiedlichen Prozessen und Prozeß-Familien auf die gleiche Art und Weise herausfindet, wie der Rest der Software OS2 bis OS5 die entsprechenden Parameter herausfindet. Der Ausgangspunkt PIDA eines Prozesses P10 wird auf der Grundlage des Anfangspunkts lokalisiert. Der Prozeß P10 ist auf einen Prozeß Pll bezogen, der dann wieder auf Prozesse P12 und P13 bezogen ist. Figur. 3 zeigt ferner beispielhaft einen Fall, in dem der Prozeß P12 auch auf einen Prozeß P14 bezogen sein kann. Es wird zuerst angenommen, daß die Prozesse dynamisch in den Speicher geladen werden können, d. h. in beliebige Adressen, so daß die Daten über die Speicheradresse, in der sich ein Prozeß befindet, z. B. in dem Parameterbereich des vorhergehenden Mitglieds der Familie vorhanden sind.
- Nachstehend ist es beschrieben, wie es das erfindungsgemäße Fehlerdatensammlungsprogramm herausfinden kann, welcher Prozeß in einer Schleife verbleibt. Eine derartige Blockierung kann z. B. auf eine derartige Weise erfaßt werden, daß die zuletzt zu dem Prozeß übertragene Nachricht gespeichert wird, bis der Prozeß zum Empfangen der nächsten Nachricht bereit ist. Falls das Programm in einer Schleife verbleibt, wird üblicherweise auch die Nachricht nicht freigegeben. Das erfindungsgemäße Fehlerdatensammlungsprogramm OS1 kann eine derartige Situation z. B. durch eine Untersuchung des Prozeßsteuerblocks PCB in dem Parameterbereich PA erfassen.
- Ferner ist der verfügbare Speicher nach einigen Prozessen so fragmentiert, daß umfassende Prozesse nicht mit einem einheitlichen Speicherbereich versehen werden können. Derartige Probleme können von den Datenstrukturen der Speicherverwaltung des Betriebssystems gelöst werden.
- Die Untersuchung der vorstehend beschriebenen veranschaulichenden Probleme wird erleichtert, wenn die Daten über die durch die Prozesse reservierten Speicherbereiche während des Wiederanlaufs auf die nachstehende Art und Weise gespeichert werden:
- (i) die Adresse P10A des ersten Mitglieds P10 der ersten Prozeß-Familie wird aus der Liste von Prozeß- Familien PL gelesen;
- (ii) der Parameterbereich PA des ersten Prozesses der Prozeß-Familie wird auf der Grundlage dieser Adresse gelesen und in den Speicherbereich SA kopiert;
- (iii) der Schritt (ii) wird für alle Prozesse, die dieser Prozeß aufgerufen hat, rekursiv wiederholt;
- (iv) die Adresse des ersten Mitglieds der nächsten Prozeß-Familie wird aus der Liste gelesen, und die Schritte (ii) bis (iii) werden wiederholt, bis die Liste von Prozeß-Familien voll verarbeitet worden ist.
- In diesem Zusammenhang verweist der Parameterbereich PA auf einen Bereich in dem Hauptspeicher 23, der auf jeden Prozeß bezogen ist und die Daten speichert, die auf den Prozeß bezogen und für die Erfindung wesentlich sind. Die genaue Natur dieser wesentlichen Daten ist nachstehend beschrieben. Bei dem Speicherbereich SA handelt es sich um einen Bereich, der sich ebenfalls in dem Hautspeicher 23 befindet, der durch die erfindungsgemäße Datensammlungssoftware eingerichtet wird, und in den die Parameterbereiche PA der Prozesse während eines Wiederanlaufs kopiert werden.
- Das vorstehend beschriebene Verfahren ist in dem allgemeinen Fall anwendbar, in dem Prozesse in einen beliebigen Speicherbereich geladen werden können. Wenn bestimmte Prozesse immer in eine spezielle Adresse geladen werden, werden die Anfangsadresse und die Endadresse ihrer Parameterbereiche während einer Programmkompilierung auf die bekannte Art und Weise direkt erhalten. Im Falle eines erfindungsgemäßen Analyseprogramms kann auf diese Adressen auf die gleiche Art und Weise Bezug genommen werden, wie auf sie Bezug genommen wird, wenn der Rest der Software auch eingerichtet wird. In diesem Fall ist es möglich, ein einfacheres Verfahren zu verwenden, das in der Form des nachstehenden Pseudö-Codes dargestellt werden kann:
- kopiere P10.PA in SA. PA1
- kopiere P11.PA in SA. PA2
- ...
- Pn.PA verweist auf einen Parameterbereich des Prozesses Pn, und entsprechend verweist SA. PAn auf den Bereich in dem Speicherbereich SA, in den der Parameterbereich des Prozesses Pn kopiert wird. In eine echte Programmiersprache übersetzt würde dieser vorstehend angegebene Pseudo-Code auf eine derartige Weise realisiert werden, daß zum Zwecke des Kopierens die Anfangsadresse von P10.PA in das Quellenregister geladen wird, die Anfangsadresse von SA.PA1 in das Zielregister geladen wird, und die Größe von P10.PA in Byte in ein die Anzahl von Byte des Kopierens angebendes Register geladen wird. Die Anfangsadresse von SA.PA2 wird erhalten, indem die Größe von P10.PA in Byte zu der Anfangsadresse von SA.PA1 addiert wird, usw.. Entsprechend wird der Parameterbereich PA jedes Prozesse Pn in den Speicherbereich SA in eine Adresse kopiert, die erhalten wird, indem die Größe des Parameterbereichs PA des vorhergehenden Prozesses Pn-1 zu der Anfangsadresse SA. PAn-1 des Speicherbereichs des vorhergehenden Prozesses addiert wird.
- Es wird zur Veranschaulichung der Erfindung angenommen, daß der Parameterbereich PA jedes Prozesses ein einheitlicher Speicherbereich ist. Falls der Parameterbereich in mehrere getrennte Bereiche verteilt worden ist, müssen die vorstehend beschriebenen Schritte zum Kopieren des Parameterbereichs in den Speicherbereich SA für jedes Segment des verteilten Parameterbereichs wiederholt werden.
- Durch eine Untersuchung von einen Prozeß bezogenen Semaphoren können ebenfalls wertvolle Daten erhalten werden. Bei einem Semaphor handelt es sich um einen Zähler, der einen Wartezustand umfaßt und mittels dem es möglich ist, den gegenseitigen Ausschluß der Prozesse auszuführen. Prozesse werden auf eine derartige Weise verwendet, daß üblicherweise nur ein Prozeß einen mit einem Semaphor geschützten Bereich handhaben kann. Ein derartiger durch einen Semaphor geschützter Bereich wird mit einer Softwareroutine verarbeitet, die mit einer sogenannten P-Operation anfängt und mit einer sogenannten V-Operation endet. Die P-Operation erniedrigt den Wert des Zählers, und falls der Wert zu klein (negativ) ist, schließt sich der Prozeß selbst der Warteschlange in dem Semaphor an. Andernfalls fährt der Prozeß mit dem der P- Operation folgenden Code fort. An dem Ende des Codes führt der Prozeß eine V-Operation aus, in der der Wert des Zählers erhöht wird. Falls der Wert negativ gewesen ist, wird der Bereitschaftsprozeß aktiviert, und er hat dann wieder Zugriff auf den geschützten Bereich.
- Das Problem besteht darin, daß bei einem Versagen eines Prozesses in einem geschützten Bereich, d. h. wenn er einen Semaphor steuert, die Warteschlange dieses Semaphors ohne spezielle Maßnahmen anhält. Demgegenüber kann das Programm fehlerhaft sein, und es führt die V- Operation überhaupt nicht aus. Diese Probleme können gelöst werden, indem die Daten über alle durch den Prozeß gesteuerten Semaphoren in dem Parameterbereich angegeben werden.
- Das vorstehend beschriebene Verfahren als solches erzeugt für praktische Anwendungen viel zu viele unzureichend überprüfte Daten. In der Realität müssen die Daten genauer überprüft werden, bevor sie zur menschlichen Analyse übertragen werden. Es kann z. B. als ein Ziel genommen werden, daß die für eine Klärung des Fehlers relevanten Daten aus dem Hauptspeicher von etwa 32 Megabyte in wenige oder sogar eine lesbare Seite komprimiert werden können. In einem derartigen Fall müssen die 0,01% der Daten, die für eine Lokalisierung des Fehlers wesentlich sind, aus dem Hauptspeicher gefunden werden. Ein geeignetes Verfahren besteht darin, daß das Fehlerdatensammlungsprogramm einen vorbestimmten Schwellwert für den durch einen Prozeß reservierten Speicher einstellt. Die Parameterbereiche von lediglich den Prozessen, die reservierten Speicher in einer diese Schwelle überschreitenden Menge aufweisen, werden gespeichert. Alternativ kann das Fehlerdatensammlungsprogramm auf die vorstehend beschrieben Art und Weise, jedoch zweimal durch die Kette von Prozeß-Familien gehen. Das erste Mal umfaßt lediglich ein Herausfinden, wieviel Speicher für jeden Prozeß oder jede Prozeß-Familie reserviert worden ist. Das zweite Mal werden die Parameterbereiche von wenigen Prozeß-Familien oder lediglich einer Prozeß-Familie, die den meisten Speicher reservieren, in dem Speicherbereich gespeichert.
- Aus Gründen der Allgemeinheit ist es vorstehend angenommen, daß es sich bei der Liste von Prozeß-Familien PL um eine lineare Liste handelt, d. h. eine Kette, bei der einer Prozeß-Familie eine weitere, aber lediglich eine Prozeß-Familie (oder das Ende der Liste) folgt. Es ist ebenfalls angenommen, daß die Prozesse Pn in einer Prozeß-Familie Baumstrukturen bilden können. Falls die tatsächliche Situation einfacher als die vorstehend beschriebene Situation ist, z. B. auf eine derartige Weise, daß die Prozesse in der Prozeß-Familie lediglich lineare Listen bilden, kann die Verarbeitung der Baumstrukturen aus Gründen der Einfachheit gelöscht werden.
- Der für die Erfindung wesentliche Inhalt der Parameterbereiche PA kann z. B. die nachstehenden prozeßspezifischen Dinge umfassen, wenn z. B. Intel® x86 Prozessoren verwendet werden:
- - durch einen Prozeß reservierte Speicherbereiche (Größe, Zeit der Reservierung, Verwendung)
- - zu dem Prozeß übertragene und noch nicht von ihm empfangene Nachrichten
- - durch den Prozeß eingestellte Zeitüberwachungen
- - durch den Prozeß geöffnete Dateien
- - durch den Prozeß reservierte gemeinsam genutzte Betriebsmittel, z. B. für gemeinsam genutzte Semaphoren ausgeführte P-Operationen
- - anwendungsspezifische Variablen in dem Stapel und in dem Datenbereich (DA) und die durch das Betriebssystem in diesen Bereichen gespeicherten Daten.
- Entsprechend umfassen von allen Prozessen gemeinsam genutzte Daten:
- - Speicherreservierungsdaten, insbesondere auf verfügbaren Speicher bezogene Daten
- - auf Speicherreservierungen bezogene Semaphoren
- - zur allgemeinen Verwendung vorgesehene Semaphoren
- - ein Fehlerprotokoll des Betriebssystems.
- Aas erfindungsgemäße Fehlerdatensammlungsprogramm OS1 kann diese Datenstrukturen aus dem Speicher finden und auf die gleiche Art und Weise Daten aus ihnen erhalten, wie der Rest der Software die gleichen Datenstrukturen verarbeitet. Ferner ist es vorteilhaft, das Fehlerdatensammlungsprogramm mit der Möglichkeit zur Steuerung des Betriebs des Programms mit Zwangssteuerdatensätzen zu ergänzen, die zum Zwingen des Programms zur Sammlung von Daten aus bestimmten Speicherbereichen verwendet werden können. Diese zu sammelnden Speicherbereiche können entweder mit absoluten Adressen oder symbolischen Etiketten (falls die entsprechende Verknüpfungsliste in dem Speicher des Computers gespeichert ist) angegeben werden. Ein Berater der technischen Unterstützung, der es versucht, den Fehler zu lokalisieren, kann derattige Zwangssteuerdatensätze mit jedem einfachen Textverarbeitungsprogramm erzeugen. Diese Datensätze können in der einfachsten Form lediglich zwei Parameter, eine Anfangsadresse und eine Endadresse, umfassen, und das Fehlerdatensammlungsprogramm kopiert den Inhalt des Bereichs zwischen diesen Adressen in den Speicherbereich. Das Programm kann auch eine Identifizierung wie beispielsweise die Anfangsadresse kopieren. In der Praxis tendieren Fehler dazu, an unerwarteten Stellen aufzutreten. Mit Zwangssteuerdatensätzen ist es möglich, auch Daten von Stellen zu sammeln, die bei der Einrichtung des Fehlerdatensammlungsprogramms nicht vorausgesehen worden sind.
- Fig. 4 zeigt mögliche Schritte eines veranschaulichenden Ausführungsbeispiels des Fehlerdatensammlungsprogramms OS1 gemäß der Erfindung. Das Sammlungsprogramm wird mit dem Rest der Software in den Speicher geladen (Schritt S0). In diesem Schritt wird der dem nächsten Wiederanlauf folgende Sprung derart eingestellt, daß er auf das Sammlungsprogramm gerichtet ist. Der nächste Wiederanlauf aktiviert das Sammlungsprogramm (Schritt S5). Das Sammlungsprogramm liest aus dem Hauptspeicher 23 den ersten Datensatz aus der Liste von Zwangssteuerdatensätzen (Schritt S10). Falls ein derartiger Datensatz vorhanden ist, verarbeitet ihn das Sammlungsprogramm (Schritt S20). Wenn es in einem Schritt S15 erfaßt wird, daß die Liste von Zwangssteuerdatensätzen sich an dem Ende befindet, geht das Sammlungsprogramm zu einem Schritt S25 zur Suche nach den Datenstrukturen des Prozesses über. In einem Schritt S30 wird es untersucht, ob alle Datenstrukturen verarbeitet worden sind. Falls sie es nicht sind, wird es in einem Schritt S35 untersucht, ob die Datenstruktur anormale Merkmale umfaßt. Falls sie dies tut, wird in eine Schritt S40 der wesentliche Teil der Datenstruktur in den Speicherbereich SA kopiert. Wenn es in dem Schritt S30 erfaßt wird, daß die Liste der Datenstrukturen sich an dem Ende befindet, geht das Programm zu einem Schritt S45 zum Laden der anderen Teile der Software, unter denen die Routinen zur Verarbeitung von Peripherievorrichtungen wie beispielsweise Laufwerken für die Erfindung wesentlich sind, über. Wenn die Routinen zur Verarbeitung der Peripherievorrichtungen geladen worden sind, wird in einem Schritt S50 der Inhalt des Speicherbereichs SA zur Verwendung durch den Berater der technischen Unterstützung kopiert. Der Berater der technischen Unterstützung kann den Inhalt des Speicherbereichs SA als einen Bericht auf einem Drucker, als eine Plattendatei oder durch ein Telefon zu einer entfernten Workstation erhalten.
- Bei einigen Systemen kann ein fehlerhaftes Programm den Hauptspeicher so vollständig durcheinandermischen, daß es auch eine Funktionsstörung bei dem Fehlerdatensammlungsprogramm verursacht. Ein derartiges Risiko kann beschränkt werden, indem das Fehlerdatensammlungsprogramm in einem Speicher plaziert wird, der zumindest vor einem unbeabsichtigten Überschreiben geschützt ist. Der Schutz kann z. B. ausgeführt werden, indem das Fehlerdatensammlungsprogramm in einem ROM oder einem FLASH-Speicher plaziert wird oder das Schreiben in das Speichersegment, in dem sich das Sammlungsprogramm befindet, unter Verwendung der Register des Prozessors verhindert wird.
- Die die Erfindung veranschaulichenden Ausführungsbeispiele sind in Verbindung mit Intel® x86 Prozessoren beispielhaft beschrieben. Es ist selbstverständlich, daß die Erfindung nicht darauf beschränkt ist, sondern bei allen Arten von Prozessoren angewendet werden kann, so daß die Speicherverwaltung und andere auf die besagte Prozessor-Familie bezogene Daten selbstverständlich gesammelt werden. Die Verwendung der Ausdrücke variiert in dem Fachgebiet ein wenig. Der bei der vorliegenden Anmeldung verwendete Ausdruck "Prozeß" kann woanders als ein "Prozeßstrang" bezeichnet sein, so daß die bei der vorliegenden Anmeldung verwendete "Prozeß-Familie" entsprechend ein "Prozeß" wäre. Der Schutzbereich der Erfindung wird jedoch nicht als von den verwendeten Ausdrücken abhängig betrachtet. Für einen Fachmann ist es ferner offensichtlich, daß bei einer Weiterentwicklung der Technologie die grundlegende Idee der Erfindung auf verschiedene Weisen realisiert werden kann. Die Erfindung und ihre Ausführungsbeispiele sind nicht auf die vorstehend beschriebene Beispiele beschränkt, sondern können in dem Schutzbereich der Patentansprüche variieren.
Claims (13)
1. Verfahren zur Sammlung von Fehlerdaten, die sich bei
einem Wiederanlauf eines Computers (20) ergeben haben,
wobei der Computer (20) Software (OS) mit einem oder
mehreren Prozessen (Pn) aufweist, dadurch gekennzeichnet,
daß das Verfahren umfaßt:
- Lesen zumindest einiger der Datenstrukturen (PA)
der Software (OS) aus dem Hauptspeicher (23) des
Computers, nachdem der Wiederanlauf des Computers (20)
eingeleitet worden ist, jedoch bevor neue Daten in den
Teil des Hauptspeichers (23) geschrieben worden sind, in
dem diese Datenstrukturen (PA) gespeichert sind;
- Vergleichen des Inhalts der Datenstrukturen (PA)
mit vorbestimmten normalen Werten; und
- Kopieren der aus dem Hauptspeicher (23) gelesenen
Datenstrukturen (PA), die von ihren vorbestimmten
normalen Werten abweichen, zu einer vorbestimmten
Peripherievorrichtung, um den Inhalt der Datenstrukturen
(PA) über den Wiederanlauf zu erhalten.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß
das Verfahren ferner umfaßt:
- vor dem Wiederanlauf des Computers (20) einen
vorbestimmten Speicherbereich (SA) aus dem Hauptspeicher
(23) des Computers zur Sammlung von Fehlerdaten
reservieren; und
- nach dem Wiederanlauf die Datenstrukturen (PA) in
den vorbestimmten Speicherbereich (SA) kopieren, bevor
sie zu der Peripherievorrichtung (27, 28) kopiert werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch
gekennzeichnet, daß die Fehlersituation, die sich bei dem
Wiederänlauf ergeben hat, in eine vorbestimmte Klasse
klassifiziert wird und zumindest einige der Schritte auf
die auf die Klasse der fraglichen Fehlersituationen
bezogene Daten enthaltende Datenstruktur (PA) ansprechen.
4. verfahren nach Anspruch 3, dadurch gekennzeichnet, daß
die Klassen von Fehlersituationen zumindest eine der
nachstehenden Klassen umfassen: nicht ausreichender
Speicher, Stockung eines Prozesses in einer Schleife,
Überlauf eines für einen Prozeß zugelassenen
Speicherbereichs und nicht definierter Befehl.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß
das Verfahren bei einer Zugehörigkeit der Fehlersituation
zu der Klasse des "nicht ausreichenden Speichers" umfaßt:
- Bestimmen eines oder höchstens weniger Prozesse
(Pn), die den Hauptspeicher (23) vor dem Wiederanlauf am
meisten reserviert haben; und
- Kopieren der Datenstruktur (PA) im Ansprechen
darauf, daß die Datenstruktur (PA) Daten umfaßt, die auf
höchstens wenige Prozesse (Pn) bezogen sind, die den
Hauptspeicher am meisten reserviert haben.
6. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß
das Verfahren bei einer Zugehörigkeit der Fehlersituation
zu der Klasse der "Stockung eines Prozesses in einer
Schleife" umfaßt:
- Bestimmen der Prozesse (Pn), denen Nachrichten
gesendet worden sind, die der Prozeß (Pn) nicht
freigegeben hat; und
- Kopieren der Datenstruktur (PA) im Ansprechen
darauf, daß die Datenstruktur (PA) auf den Prozeß (Pn),
der die zu ihm übertragene Nachricht nicht freigegeben
hat, bezogene Daten umfaßt.
7. Verfahren nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet, daß das Verfahren ferner umfaßt:
- Lesen einer Gruppe von Datenstrukturen (PA)
enthaltenden Zwangssteuerdatensätzen; und
- Kopieren der in den Zwangssteuerdatensätzen
enthaltenen Datenstrukturen (PA) zu der
Peripherievorrichtung (27, 28).
8. Computer (20) mit einer Zentraleinheit (24), Software
(OS), einem Hauptspeicher (23) und
Peripherievorrichtungen (21, 26), wobei die Software (OS)
über zumindest eine Peripherievorrichtung in den
Hauptspeicher (23) geladen wird, dadurch gekennzeichnet,
daß der Computer (20) zur Sammlung von Fehlerdaten
während eines Wiederanlaufs ferner ein
Fehlerdatensammlungsprogramm (OS1) umfaßt:
- zum Lesen zumindest einiger der
Softwaredatenstrukturen (PA) aus dem Hauptspeicher (23),
nachdem der Wiederanlauf eingeleitet worden ist, jedoch
bevor neue Daten in den Teil des Hauptspeichers (23)
geschrieben worden sind, in dem diese Datenstrukturen
(PA) gespeichert sind;
- zum Vergleichen der Datenstrukturen (PA) mit
vorbestimmten normalen Werten; und
- zum Kopieren von Datenstrukturen (PA), die von den
vorbestimmten normalen Werten abweichen, zu einer
vorbestimmten Peripherievorrichtung, um den Inhalt der
Datenstrukturen (PA) über den Wiederanlauf zu erhalten.
9. Computer nach Anspruch 8, dadurch gekennzeichnet, daß
der Computer (20) bei einer Ausführung des
Fehlerdatensammlungsprogramms (OS1) ferner die
Datenstrukturen (PA) in einen vorbestimmten
Speicherbereich (SA) kopiert, bevor sie zu der
Peripherievorrichtung (27, 28) kopiert werden.
10. Computer nach Anspruch 8 oder 9, dadurch
gekennzeichnet, daß der Computer (20) die Datenstrukturen
auf eine Festplatte (27) kopiert.
11. Computer nach Anspruch 8 oder 9, dadurch
gekennzeichnet, daß der Computer (20) die Datenstrukturen
über ein Kabel (1) zu einem Server (10) kopiert.
12. Computer nach Anspruch 8 oder 9, dadurch
gekennzeichnet, daß der Computer (20) die Datenstrukturen
zu einer Ausgabevorrichtung (28) kopiert.
13. Computer nach einem der Ansprüche 8 bis 12, dadurch
gekennzeichnet, daß das Fehlerdatensammlungsprogramm
(OS1) in einem Speicher angeordnet ist, der
schreibgeschützt ist.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FI955186A FI102220B1 (fi) | 1995-10-30 | 1995-10-30 | Vikaantumistietojen keräys tietokoneyksikön uudelleenkäynnistyksen osana |
| PCT/FI1996/000573 WO1997016787A2 (en) | 1995-10-30 | 1996-10-29 | Fault data collection as part of computer unit restart |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69618007D1 DE69618007D1 (de) | 2002-01-24 |
| DE69618007T2 true DE69618007T2 (de) | 2002-06-13 |
Family
ID=8544283
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69618007T Expired - Fee Related DE69618007T2 (de) | 1995-10-30 | 1996-10-29 | Fehlerdatenerfassung beim wiederanlauf eines rechners |
Country Status (11)
| Country | Link |
|---|---|
| US (1) | US6145095A (de) |
| EP (1) | EP0870232B1 (de) |
| JP (1) | JP2000501210A (de) |
| CN (1) | CN1105352C (de) |
| AU (1) | AU714666B2 (de) |
| BR (1) | BR9611202A (de) |
| CA (1) | CA2236170C (de) |
| DE (1) | DE69618007T2 (de) |
| FI (1) | FI102220B1 (de) |
| RU (1) | RU2177636C2 (de) |
| WO (1) | WO1997016787A2 (de) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000178209A (ja) * | 1998-12-15 | 2000-06-27 | Mitsubishi Chemicals Corp | 分子設計装置及び方法並びに情報記憶媒体 |
| JP2000267872A (ja) * | 1999-03-17 | 2000-09-29 | Fujitsu Ltd | 2重化システムにおける再開処理方式 |
| US6345331B1 (en) * | 1999-04-20 | 2002-02-05 | International Business Machines Corporation | Device adapter being reintegrated with plurality of device adapters of network, or reestablishing permissions and resubmitting I/O requests depending on determined device state after failure |
| US6779132B2 (en) * | 2001-08-31 | 2004-08-17 | Bull Hn Information Systems Inc. | Preserving dump capability after a fault-on-fault or related type failure in a fault tolerant computer system |
| DE10231653A1 (de) * | 2002-07-12 | 2004-02-05 | Infineon Technologies Ag | Verfahren zum Einrichten einer programmgesteuerten Schaltungsanordnung und Schaltungsanordnung zur Durchführung des Verfahrens |
| US7181574B1 (en) * | 2003-01-30 | 2007-02-20 | Veritas Operating Corporation | Server cluster using informed prefetching |
| KR100529330B1 (ko) * | 2003-07-02 | 2005-11-17 | 삼성전자주식회사 | 에러 복구 가능한 인쇄 방법 및 장치와 컴퓨터 프로그램을저장하는 컴퓨터로 읽을 수 있는 기록 매체 |
| US20050096924A1 (en) * | 2003-10-30 | 2005-05-05 | Enis James H. | Solution network knowledge management system |
| DE10352172A1 (de) | 2003-11-05 | 2005-06-09 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Anpassung von Funktionen zur Steuerung von Betriebsabläufen |
| US6988476B2 (en) * | 2004-03-11 | 2006-01-24 | Kold Ban International, Ltd. | Vehicle with switched supplemental energy storage system for engine cranking |
| CN100361554C (zh) * | 2004-10-20 | 2008-01-09 | 华为技术有限公司 | 一种无线通信系统中记录功放工作状态信息的方法 |
| JP4528144B2 (ja) * | 2005-01-26 | 2010-08-18 | 富士通株式会社 | メモリダンププログラムのブート方法、機構及びプログラム |
| US7151643B2 (en) * | 2005-04-22 | 2006-12-19 | Kabushiki Kaisha Toshiba | Apparatus and method for protecting a disk drive in a hardcopy device |
| US20120173713A1 (en) * | 2010-12-30 | 2012-07-05 | Brocade Communication Systems, Inc. | Resources monitoring and recovery |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4381540A (en) * | 1978-10-23 | 1983-04-26 | International Business Machines Corporation | Asynchronous channel error mechanism |
| JPS59123058A (ja) * | 1982-12-29 | 1984-07-16 | Fujitsu Ltd | マシンチエツク処理方式 |
| JPH07117863B2 (ja) * | 1987-06-26 | 1995-12-18 | 株式会社日立製作所 | オンラインシステムの再立上げ方式 |
| JPH02294753A (ja) * | 1989-05-09 | 1990-12-05 | Fujitsu Ltd | 入出力処理装置の初期化方式 |
| US5056091A (en) * | 1990-03-15 | 1991-10-08 | Hewlett-Packard Company | Method for handling errors detected in a computer system |
| RU2010313C1 (ru) * | 1990-08-06 | 1994-03-30 | Предприятие "Дальняя связь" | Устройство для регистрации сигналов неисправности |
| RU2015523C1 (ru) * | 1991-07-29 | 1994-06-30 | Харьковское приборостроительное конструкторское бюро "Авиаконтроль" | Устройство для программного контроля |
| US5410545A (en) * | 1992-07-28 | 1995-04-25 | Digital Equipment Corporation | Long-term storage of controller performance |
| CA2106280C (en) * | 1992-09-30 | 2000-01-18 | Yennun Huang | Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance |
-
1995
- 1995-10-30 FI FI955186A patent/FI102220B1/fi not_active IP Right Cessation
-
1996
- 1996-10-29 RU RU98110644/09A patent/RU2177636C2/ru not_active IP Right Cessation
- 1996-10-29 JP JP9517089A patent/JP2000501210A/ja not_active Ceased
- 1996-10-29 BR BR9611202A patent/BR9611202A/pt not_active IP Right Cessation
- 1996-10-29 US US09/051,943 patent/US6145095A/en not_active Expired - Lifetime
- 1996-10-29 WO PCT/FI1996/000573 patent/WO1997016787A2/en not_active Ceased
- 1996-10-29 AU AU73028/96A patent/AU714666B2/en not_active Ceased
- 1996-10-29 CN CN96198321A patent/CN1105352C/zh not_active Expired - Fee Related
- 1996-10-29 DE DE69618007T patent/DE69618007T2/de not_active Expired - Fee Related
- 1996-10-29 EP EP96934859A patent/EP0870232B1/de not_active Expired - Lifetime
- 1996-10-29 CA CA002236170A patent/CA2236170C/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0870232B1 (de) | 2001-12-12 |
| JP2000501210A (ja) | 2000-02-02 |
| WO1997016787A2 (en) | 1997-05-09 |
| CN1105352C (zh) | 2003-04-09 |
| EP0870232A2 (de) | 1998-10-14 |
| DE69618007D1 (de) | 2002-01-24 |
| US6145095A (en) | 2000-11-07 |
| AU714666B2 (en) | 2000-01-06 |
| FI102220B (fi) | 1998-10-30 |
| CN1202256A (zh) | 1998-12-16 |
| FI102220B1 (fi) | 1998-10-30 |
| CA2236170A1 (en) | 1997-05-09 |
| FI955186A0 (fi) | 1995-10-30 |
| WO1997016787A3 (en) | 1997-07-03 |
| RU2177636C2 (ru) | 2001-12-27 |
| AU7302896A (en) | 1997-05-22 |
| FI955186A7 (fi) | 1997-05-01 |
| BR9611202A (pt) | 1999-03-30 |
| CA2236170C (en) | 2006-02-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69618007T2 (de) | Fehlerdatenerfassung beim wiederanlauf eines rechners | |
| DE102005022192B4 (de) | Datensicherungs-Laufwerk mit auswechselbaren Speichermedien zum Sichern von Daten eines Hostcomputers | |
| DE69518745T2 (de) | Überwachungs- und steuerungsvorrichtung und -verfahren für programme mit einem netzwerk | |
| DE69932371T2 (de) | Verschiebbare Instrumentationskennzeichen für die Prüfung und die Fehlerbeseitigung eines Computerprogramms | |
| DE4235193C2 (de) | Netzwerksystem und zugehöriges Softwareverwaltungsverfahren | |
| DE69827949T2 (de) | Gerät und verfahren um speicherfehler zu erkennen und zu berichten | |
| DE69428400T2 (de) | Verfahren zur Konfigurationsverwaltung | |
| DE60212125T2 (de) | Kopierprozeduren mit verifikation in datennetzwerken | |
| DE69625636T2 (de) | System und Verfahren zum Steuern und Verwalten von verteilten Objektservern unter Verwendung von erstklassigen verteilten Objekten | |
| DE69123775T2 (de) | Programmsteuersystem für eine tragbare Datenspeichervorrichtung | |
| DE69210399T2 (de) | Rechnerueberwachungsverfahren und system | |
| DE69111635T2 (de) | Gerät und Verfahren zur Background-Speicherprüfung während des Systemanlaufs. | |
| DE10315490B4 (de) | Verfahren und System zum Wechsel zwischen zwei oder mehreren Firmwareabbildungen auf einer Hostvorrichtung | |
| DE69730430T2 (de) | Verfahren und gerät zum bereitstellen von verbesserten diagnostischen funktionen in einem computersystem | |
| DE60317654T2 (de) | Verfahren und vorrichtung zur veränderung eines kernmodules, um es auf mehreren kernversionen lauffähig zu machen | |
| DE3842289C2 (de) | Verfahren zur Entwicklung von Programmen für ein verteiltes Datenverarbeitungssystem | |
| DE3751949T2 (de) | Verfahren zum Starten eines Untersystems in einem verteilten Verarbeitungssystem | |
| EP0849666A2 (de) | Verfahren zum Instantiieren einer versionsbehafteten Klasse | |
| CH654943A5 (de) | Pruefeinrichtung fuer mikroprogramme. | |
| DE19615177C2 (de) | Verfahren zum Ändern einer Funktion eines Druckertreibers | |
| DE19959758A1 (de) | Bestimmung der Art und der Genauigkeit von lokalen Variablen bei vorhandenen Subroutinen | |
| DE10300545A1 (de) | Vorrichtung, Verfahren, Speichermedium und Datenstruktur zur Kennzeichnung und Speicherung von Daten | |
| DE10309246A1 (de) | Verfahren für das Event Management | |
| DE112005001790B4 (de) | Programmerstellungseinrichtung für eine programmierbare Steuervorrichtung, Programmerstellungsverfahren für eine programmierbare Steuervorrichtung und Aufzeichnungsmedium mit darauf aufgezeichnetem Programm | |
| DE68922521T2 (de) | Sekundärprozessorinitialisierungssystem. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |