-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft ein Verfahren und ein System zum Verbessern der Fähigkeit eines Datenverarbeitungssystems, auf unerwartete Hardwareausfälle zu reagieren und insbesondere eine Technik zum Erfassen von Daten zum Diagnostizieren eines Hardwareausfalls.
-
HINTERGRUND
-
Viele mittlere und große Datenverarbeitungssysteme enthalten einen Typ von Steuerprozessor und einen oder mehrere virtuelle Prozessoren, die in der Lage sind, virtuelle Datenverarbeitungssysteme abzubilden, auf denen mehrere Betriebssysteme ausgeführt werden. Mechanismen zum Erkennen und Beenden von Hardwareausfällen können in die Prozessoren, in Mikrocode (d.h. Firmware) und in Betriebssysteme integriert sein. Ein systemumfassender Hardwareabsturz (z.B. infolge eines physischen Hardwareausfalls oder eines Problems der Logikschaltung) kann durch einen Codestrom, ein Ereignis oder eine Task in Form von Hardware, Mikrocode, Firmware oder Software verursacht werden. Ausfalldaten können erfasst und gespeichert und dann an den Dienstanbieter des Prozessors zur Analyse und für Wiederherstellungsmaßnahmen zurückgesendet werden.
-
Die
US 7 788 537 B1 betrifft ein Verfahren zur Verarbeitung einer Speicherabbilddatei, das Folgendes umfasst: Feststellen, ob eine mit einem vorangehenden Prozessorausfall verknüpfte Speicherabbilddatei existiert, und in Reaktion auf das Feststellen, dass die Speicherabbilddatei existiert, Ausführen einer vorläufigen Analyse der Speicherabbilddatei unter Verwendung eines Debuggers, und wobei das Feststellen und die vorläufige Analyse als Teil des Neustarts eines Prozessors nach dem vorangegangenen Ausfall des Prozessors ausgeführt werden.
-
Die
US 7 574 627 B2 betrifft eine Technik zum Ermitteln einer grundlegenden Ursache eines Systemfehlers in einem System, in dem eine Vielzahl von Betriebssystemen auf einem Computer läuft. In einem System, in dem jedes einer Vielzahl von Betriebssystemen einen Prozess durch die Time-Sharing-Hardware eines Computers ausführt, wird eine Vielzahl von miteinander verknüpften Betriebssystemen im Voraus in einem Speichermittel gespeichert. Wenn ein Fehler in einem Betriebssystem erkannt wird und das Speichermittel ein mit dem Betriebssystem verknüpftes Betriebssystem speichert, in dem der Fehler aufgetreten ist, wird ein Speicherabbild für das Betriebssystem, in dem der Fehler aufgetreten ist, und das mit diesem Betriebssystem verknüpfte Betriebssystem ausgeführt.
-
Die
US 2010 / 0 083 043 A1 betrifft eine Vorrichtung und ein Verfahren, die beinhalten: die wiederholte Ausgabe eines Subsistenzsignals, das angibt, dass eine Informationsverarbeitungsvorrichtung normal arbeitet, wenn die Informationsverarbeitungseinheit normal arbeitet; die Ausführung einer Speicherabbildungsverarbeitung, falls erforderlich, wenn ein Fehler in der Informationsverarbeitungseinheit auftritt; die Überwachung, ob ein anderes Subsistenzsignal innerhalb einer ersten Zeitperiode nach der Ausgabe des Subsistenzsignals ausgegeben wird; und die Feststellung, ob die Speicherabbildungsverarbeitung ausgeführt wird oder nicht, die Anforderung eines Neustarts oder einer Abschaltung der Informationsverarbeitungseinheit, wenn die Speicherabbildungsverarbeitung nicht ausgeführt wird, und die Anforderung des Neustarts oder der Abschaltung der Informationsverarbeitungseinheit nach Ablauf einer zweiten Zeitperiode, wenn die Speicherabbildungsverarbeitung ausgeführt wird.
-
KURZDARSTELLUNG
-
Der Erfindung liegt die Aufgabe zugrunde ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit, ein Computersystem, ein Computerprogrammprodukt und einen Prozess zum Unterstützen einer Datenverarbeitungs-Infrastruktur zu schaffen, wobei das Verfahren, das Computersystem, das Computerprogrammprodukt und der Prozess eine verbesserte Fähigkeit eines Datenverarbeitungssystem, auf unerwartete Hardwareausfälle zu reagieren und einen Hardwareausfall zu diagnostizieren, bewirken.
-
Die der Erfindung zugrunde liegende Aufgabe wird durch die Merkmale der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
-
Gemäß ersten Ausführungsformen stellt die vorliegende Erfindung ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit bereit. Das Verfahren beinhaltet das Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch einen Computer. Das Verfahren beinhaltet ferner das Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer. Das Verfahren beinhaltet ferner das Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch den Computer. Das Verfahren beinhaltet ferner das Abrufen der Vielzahl von Aufruf-Stack-Frames durch den Computer auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames. Das Verfahren beinhaltet ferner das Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch den Computer in eine Computerdatei.
-
Gemäß zweiten Ausführungsformen stellt die vorliegende Erfindung ein Computersystem bereit, das eine Zentraleinheit (CPU), einen mit der CPU verbundenen Speicher und eine mit der CPU verbundene computerlesbare körperliche Speichereinheit enthält. Die Speichereinheit enthält Anweisungen, die über den Speicher durch die CPU ausgeführt werden und ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit realisieren. Das Verfahren beinhaltet das Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit durch das Computersystem, der zu einem vollständigen Systemabsturz führt. Das Verfahren beinhaltet ferner das Erfassen einer Adressumsetzungstabelle einer CPU der Computer-Hardwareeinheit durch das Computersystem. Das Verfahren beinhaltet ferner das Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch das Computersystem. Das Verfahren beinhaltet ferner das Abrufen der Vielzahl von Aufruf-Stack-Frames durch das Computersystem auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames. Das Verfahren beinhaltet ferner das Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames in eine Computerdatei durch das Computersystem.
-
Gemäß dritten Ausführungsformen stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das eine computerlesbare körperliche Speichereinheit mit darin gespeicherten computerlesbaren Programmanweisungen aufweist, wobei die computerlesbaren Programmanweisungen durch eine Zentraleinheit (CPU) eines Computersystems ausgeführt werden und ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit implementieren. Das Verfahren beinhaltet das Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch das Computersystem. Das Verfahren beinhaltet ferner das Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch das Computersystem. Das Verfahren beinhaltet ferner das Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystem images (OS) der Computer-Hardwareeinheit durch das Computersystem. Das Verfahren beinhaltet ferner das Abrufen der Vielzahl von Aufruf-Stack-Frames durch das Computersystem auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames. Das Verfahren beinhaltet ferner das Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch das Computersystem in eine Computerdatei.
-
Gemäß vierten Ausführungsformen stellt die vorliegende Erfindung einen Prozess zum Unterstützen einer Datenverarbeitungs-Infrastruktur bereit. Der Prozess beinhaltet das Bereitstellen mindestens eines Unterstützungsdienstes zum Erstellen, Integrieren, Hosting, Warten und/oder Installieren eines computerlesbaren Codes in einem Computer, der einen Prozessor umfasst. Der Prozessor führt in dem Code enthaltene Anweisungen aus, die den Computer zum Durchführen eines Verfahrens zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit veranlassen. Das Verfahren beinhaltet das Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch den Computer. Das Verfahren beinhaltet ferner das Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer. Das Verfahren beinhaltet ferner das Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch den Computer. Das Verfahren beinhaltet ferner das Abrufen der Vielzahl von Aufruf-Stack-Frames durch den Computer auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames. Das Verfahren beinhaltet ferner das Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch den Computer in eine Computerdatei.
-
Ausführungsformen der vorliegenden Erfindung stellen eine Zusatzdiensteinheit oder einen Zusatzdienstprozessor bereit, um eine verbesserte Datenerfassungstechnik zum Erfassen von Ausfalldaten bezüglich Betriebssystem-Instanzen eines Systems oder bezüglich eines Hypervisors umzusetzen, um Wiederherstellungsmaßnahmen für einen systemweiten Absturz zu diagnostizieren und festzulegen, der als ein durch Hardware verursachter Ausfall wahrgenommen wird, in Wirklichkeit aber durch Software ausgelöst wird. Hierin offengelegte Ausführungsformen erfassen Daten bezüglich der Wechselbeziehung zwischen Hypervisor-Firmware und den Kernel-/Betriebssystemimages in verschiedenen Partitionen, um die Trennung zwischen den Betriebssystemen der verschiedenen Partitionen aufrechtzuerhalten.
-
Gemäß einem weiteren Aspekt betrifft die Erfindung ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit, wobei das Verfahren die folgenden Schritte umfasst:
- Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch den Computer;
- Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer;
- Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch den Computer;
- Abrufen der Vielzahl von Aufruf-Stack-Frames durch einen Prozessor des Computers auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und
- Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch den Computer in eine Computerdatei.
-
Gemäß einer Ausführungsform umfasst das Verfahren die folgenden Schritte:
- Erfassen von Konfigurationsdaten durch den Computer, die Zuordnungen von CPU-Threads der CPU zu Betriebssystem images der Computer-Hardwareeinheit zu einem Zeitpunkt des Ausfalls der Computer-Hardwareeinheit angeben;
- Ermitteln des einem CPU-Thread zugeordneten Betriebssystemimages und Erkennen eines Typs des Betriebssystemimages durch den Computer auf der Grundlage der erfassten Konfigurationsdaten;
- Abrufen eines Plans einer Struktur einer Task in einer Computer-Datenspeichereinheit durch den Computer auf der Grundlage des erkannten Typs des Betriebssystemimages, wobei der Schritt des Abrufens des Formats der Vielzahl von Aufruf-Stack-Frames auf dem erkannten Typ des Betriebssystemimages beruht.
-
Gemäß einer weiteren Ausführungsform umfasst das Verfahren den Schritt des Abrufens von Metadaten des Betriebssystemimages der Computer-Hardwareeinheit durch den Computer, wobei die Metadaten eine Wortgröße des Betriebssystemimages, ein Endian-Format des Betriebssystemimages, einen Hinweis, ob sich ein CPU-Thread, dem das Betriebssystemimage zugeordnet ist, im Hypervisormodus befindet, eine Adresse eines obersten Eintrags des Aufrufstapels und ein Verfahren zum Durchführen der Adressumsetzung in dem Betriebssystemimage angeben, und wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames ferner auf der Wortgröße, dem Endian-Format, dem Hinweis, ob sich der CPU-Thread im Hypervisormodus befindet, der Adresse des obersten Eintrags des Aufrufstapels und dem Verfahren zum Durchführen der Adressumsetzung beruht.
-
Gemäß einer weiteren Ausführungsform beinhaltet der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames das Umsetzen der Adresse des obersten Eintrags des Aufrufstapels auf der Grundlage des Verfahrens zum Durchführen der Adressumsetzung, das durch die abgerufenen Metadaten angegeben wird, und der erfassten Adressumsetzungstabelle.
-
Gemäß einer weiteren Ausführungsform umfasst das Verfahren ferner das Erkennen eines Typs des Betriebssystemimages als Hypervisorprogrammimage durch den Computer.
-
Gemäß einer weiteren Ausführungsform wird der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames durch den Computer von einem Dienstprozessor außerhalb der System-Verarbeitungseinheiten ausgeführt, auf denen eine Vielzahl von Betriebssystem images über einen Hypervisor der Computer-Hardwareeinheit ausgeführt werden, wobei der Dienstprozessor keine durch den Hypervisor verwaltete ambulante logische Partition (LPAR) erfordert.
-
Gemäß einer weiteren Ausführungsform umfasst das Verfahren ferner die folgenden Schritte:
- Erfassen einer zweiten Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer;
- Abrufen eines zweiten Formats einer zweiten Vielzahl von Aufruf-Stack-Frames eines zweiten Aufrufstapels eines zweiten Betriebssystemimages der Computer-Hardwareeinheit, wobei das Betriebssystemimage und das zweite Betriebssystemimage unterschiedlichen Typs sind, aber gemeinsame Grundstrukturen aufweisen, darunter ein gemeinsamer Image-Datenübertragungs-Kernbereich und ein gemeinsames Prozessor-Datenübertragungs-Array, und wobei das Format der Vielzahl von Aufruf-Stack-Frames des Aufrufstapels des Betriebssystem images von dem zweiten Format verschieden ist;
- Abrufen der zweiten Vielzahl von Aufruf-Stack-Frames durch den Computer auf der Grundlage der erfassten zweiten Adressumsetzungstabelle und des abgerufenen zweiten Formats der zweiten Vielzahl von Aufruf-Stack-Frames;
- Ausgeben der abgerufenen zweiten Vielzahl von Aufruf-Stack-Frames durch den Computer in die Computerdatei; und
- Empfangen einer Diagnose des Ausfalls auf der Grundlage der Computerdatei, die die Vielzahl von Aufruf-Stack-Frames des Aufrufstapels des Betriebssystem images und die zweite Vielzahl von Aufruf-Stack-Frames des zweiten Aufrufstapels des zweiten Betriebssystem images beinhaltet.
-
Gemäß einem weiteren Aspekt betrifft die Erfindung ein Computersystem, das Folgendes umfasst:
- eine Zentraleinheit (CPU);
- einen mit der CPU verbundenen Speicher;
- eine mit der CPU verbundene computerlesbare körperliche Speichereinheit, wobei die Speichereinheit Anweisungen enthält, die über den Speicher durch die CPU ausgeführt werden und ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit implementieren, wobei das Verfahren die folgenden Schritte umfasst:
- Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, die zu einem vollständigen System-Absturz führt, durch das Computersystem;
- Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch das Computersystem;
- Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch das Computersystem;
- Abrufen der Vielzahl von Aufruf-Stack-Frames durch das Computersystem auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und
- Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch das Computersystem in eine Computerdatei.
-
Gemäß einer Ausführungsform des Computersystems umfasst das Verfahren ferner die folgenden Schritte:
- Erfassen von Konfigurationsdaten durch das Computersystem, die Zuordnungen von CPU-Threads der CPU zu Betriebssystemimages der Computer-Hardwareeinheit zu einem Zeitpunkt des Ausfalls der Computer-Hardwareeinheit angeben;
- Ermitteln des Betriebssystemimages, das einem CPU-Thread zugeordnet ist, und Erkennen eines Typs des Betriebssystem images durch das Computersystem auf der Grundlage der erfassten Konfigurationsdaten; und
- Abrufen eines Plans einer Struktur einer Task in einer Computer-Datenspeichereinheit durch das Computersystem auf der Grundlage des erkannten Typs des Betriebssystemimages, wobei der Schritt des Abrufens des Formats der Vielzahl von Aufruf-Stack-Frames auf dem erkannten Typ des Betriebssystem images beruht.
-
Gemäß einer weiteren Ausführungsform des Computersystems umfasst das Verfahren ferner den Schritt des Abrufens von Metadaten des Betriebssystemimages der Computer-Hardwareeinheit durch das Computersystem, wobei die Metadaten eine Wortgröße des Betriebssystemimages, ein Endian-Format des Betriebssystemimages, einen Hinweis, ob sich ein CPU-Thread, dem das Betriebssystemimage zugeordnet ist, im Hypervisormodus befindet, eine Adresse eines obersten Eintrags des Aufrufstapels und ein Verfahren zum Durchführen der Adressumsetzung in dem Betriebssystemimage anzeigen, und wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames ferner auf der Wortgröße, dem Endian-Format, dem Hinweis, ob sich der CPU-Thread im Hypervisormodus befindet, der Adresse des obersten Eintrags des Aufrufstapels und dem Verfahren zum Durchführen der Adressumsetzung beruht.
-
Gemäß einer weiteren Ausführungsform des Computersystems beinhaltet der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames das Umsetzen der Adresse des obersten Eintrags des Aufrufstapels auf der Grundlage des durch die abgerufenen Metadaten angegebenen Verfahrens zum Durchführen der Adressumsetzung und der erfassten Adressumsetzungstabelle.
-
Gemäß einer weiteren Ausführungsform des Computersystems umfasst das Verfahren ferner den Schritt des Erkennens eines Typs des Betriebssystemimages als Hypervisorprogrammimage durch das Computersystem.
-
Gemäß einer weiteren Ausführungsform des Computersystems wird der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames durch das Computersystem von einem Dienstprozessor außerhalb der System-Verarbeitungseinheiten ausgeführt, auf denen eine Vielzahl von Betriebssystemimages über einen Hypervisor der Computer-Hardwareeinheit ausgeführt werden, wobei der Dienstprozessor keine durch den Hypervisor verwaltete ambulante logische Partition (LPAR) erfordert.
-
Gemäß einer weiteren Ausführungsform des Computersystems umfasst das Verfahren ferner die folgenden Schritte:
- Erfassen einer zweiten Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch das Computersystem;
- Abrufen eines zweiten Formats einer zweiten Vielzahl von Aufruf-Stack-Frames eines zweiten Aufrufstapels eines zweiten Betriebssystemimages der Computer-Hardwareeinheit durch das Computersystem, wobei das Betriebssystemimage und das zweite Betriebssystemimage unterschiedlichen Typs sind, aber gemeinsame Grundstrukturen aufweisen, darunter ein gemeinsamer Image-Datenübertragungs-Kernbereich und ein gemeinsames Prozessor-Datenübertragungsarray, und wobei das Format der Vielzahl von Aufruf-Stack-Frames des Aufrufstapels des Betriebssystem images von dem zweiten Format verschieden ist;
- Abrufen der zweiten Vielzahl von Aufruf-Stack-Frames durch den Computer auf der Grundlage der erfassten zweiten Adressumsetzungstabelle und des abgerufenen zweiten Formats der zweiten Vielzahl von Aufruf-Stack-Frames;
- Ausgeben der abgerufenen zweiten Vielzahl von Aufruf-Stack-Frames durch das Computersystem in die Computerdatei; und
- Empfangen einer Diagnose des Ausfalls auf der Grundlage der Computerdatei, die die Vielzahl von Aufruf-Stack-Frames des Aufrufstapels des Betriebssystemimages und die zweite Vielzahl von Aufruf-Stack-Frames des zweiten Aufrufstapels des zweiten Betriebssystem images beinhaltet.
-
Gemäß einem weiteren Aspekt betrifft die Erfindung ein Computerprogrammprodukt, das eine computerlesbare körperliche Speichereinheit mit darin gespeicherten computerlesbaren Programmanweisungen umfasst, die durch eine Zentraleinheit (CPU) eines Computersystems ausgeführt werden und ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit implementieren, wobei das Verfahren die folgenden Schritte umfasst:
- Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch das Computersystem;
- Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer;
- Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystem images (OS) der Computer-Hardwareeinheit durch das Computersystem;
- Abrufen der Vielzahl von Aufruf-Stack-Frames durch das Computersystem auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und
- Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch das Computersystem in eine Computerdatei.
-
Gemäß einer Ausführungsform des Programmprodukts umfasst das Verfahren die folgenden Schritte:
- Erfassen von Konfigurationsdaten durch das Computersystem, die Zuordnungen von CPU-Threads der CPU zu Betriebssystemimages der Computer-Hardwareeinheit zu einem Zeitpunkt des Ausfalls der Computer-Hardwareeinheit angeben;
- Ermitteln des einem CPU-Thread zugeordneten Betriebssystemimages und Erkennen eines Typs des Betriebssystem images durch das Computersystem auf der Grundlage der erfassten Konfigurationsdaten;
- Abrufen eines Plans einer Struktur einer Task in einer Computer-Datenspeichereinheit durch das Computersystem auf der Grundlage des erkannten Typs des Betriebssystemimages, wobei die computerlesbaren Programmanweisungen zum Abrufen des Formats der Vielzahl von Aufruf-Stack-Frames auf dem erkannten Typ des Betriebssystem images beruht.
-
Gemäß einer weiteren Ausführungsform des Programmprodukts umfasst das Verfahren ferner den Schritt des Abrufens von Metadaten des Betriebssystemimages der Computer-Hardwareeinheit durch das Computersystem, wobei die Metadaten eine Wortgröße des Betriebssystemimages, ein Endian-Format des Betriebssystemimages, einen Hinweis, ob sich ein CPU-Thread, dem das Betriebssystemimage zugeordnet ist, im Hypervisormodus befindet, eine Adresse eines obersten Eintrags des Aufrufstapels und ein Verfahren zum Durchführen der Adressumsetzung in dem Betriebssystemimage angeben, und wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames ferner auf der Wortgröße, dem Endian-Format, dem Hinweis, ob sich der CPU-Thread im Hypervisormodus befindet, der Adresse des obersten Eintrags des Aufrufstapels und dem Verfahren zum Durchführen der Adressumsetzung beruht.
-
Gemäß einer weiteren Ausführungsform des Programmprodukts beinhaltet der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames das Umsetzen der Adresse des obersten Eintrags des Aufrufstapels auf der Grundlage des Verfahrens zum Durchführen der Adressumsetzung, das durch die abgerufenen Metadaten angegeben wird, und der erfassten Adressumsetzungstabelle.
-
Gemäß einem weiteren Aspekt betrifft die Erfindung einen Prozess zum Unterstützen einer Datenverarbeitungs-Infrastruktur, wobei der Prozess das Bereitstellen mindestens eines Unterstützungsdienstes zum Erstellen, Integrieren, Hosting, Warten und/oder Implementieren eines computerlesbaren Codes in einem Computer mit einem Prozessor umfasst, wobei der Prozessor in dem Code enthaltene Anweisungen ausführt, um den Computer zum Durchführen eines Verfahrens zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit zu veranlassen, und wobei das Verfahren die folgenden Schritte umfasst:
- Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt;
- Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit;
- Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit;
- Abrufen der Vielzahl von Aufruf-Stack-Frames durch den Prozessor des Computers auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und
- Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch den Computer in eine Computerdatei.
-
Gemäß einer Ausführungsform des Prozesses umfasst das Verfahren ferner die folgenden Schritte:
- Erfassen von Konfigurationsdaten durch den Computer, die Zuordnungen von CPU-Threads der CPU zu Betriebssystem images der Computer-Hardwareeinheit zu einem Zeitpunkt des Ausfalls der Computer-Hardwareeinheit angeben;
- Ermitteln des einem CPU-Thread zugeordneten Betriebssystemimages und Erkennen eines Typs des Betriebssystemimages durch den Computer auf der Grundlage der erfassten Konfigurationsdaten; und
- Abrufen eines Plans einer Struktur einer Task in einer Computer-Datenspeichereinheit durch den Computer auf der Grundlage des erkannten Typs des Betriebssystemimages, wobei die computerlesbaren Programmanweisungen zum Abrufen des Formats der Vielzahl von Aufruf-Stack-Frames auf dem erkannten Typ des Betriebssystemimages beruhen.
-
Figurenliste
-
- 1 ist ein Blockschaubild eines Systems zum Erfassen von Daten zum Diagnostizieren eines durch Software verursachten Ausfalls einer Computer-Hardwareeinheit gemäß Ausführungsformen der vorliegenden Erfindung.
- 2 ist ein Ablaufplan eines Prozesses zum Erfassen von Daten zum Diagnostizieren eines durch Software verursachten Ausfalls einer Computer-Hardwareeinheit gemäß Ausführungsformen der vorliegenden Erfindung, wobei der Prozess in dem System von 1 implementiert wird.
- 3 ist ein Blockschaubild eines Computersystems, das in dem System von 1 enthalten ist und den Prozess von 2 gemäß Ausführungsformen der vorliegenden Erfindung implementiert.
-
DETAILLIERTE BESCHREIBUNG
-
ÜBERSICHT
-
Die vorliegende Erfindung erkennt, dass Mechanismen zur Beendigung eines Ausfalls und zum Erfassen von Ausfalldaten in vorhandenen mittleren bis großen Datenverarbeitungssystemen nur Daten erfassen, die direkt ein Element betreffen, das vermutlich ausgefallen ist, und stellen daher nur unzureichende Daten zum Diagnostizieren eines systemweiten Hardwareabsturzes bereit, der durch einen Codestrom, ein Ereignis oder eine Aufgabe auf Grundlage von Mikrocode/Firmware oder Software ausgelöst werden kann. Die vorliegende Erfindung erkennt auch, dass andere bekannte Datenerfassungsmechanismen auch unzureichende Daten zum Diagnostizieren von systemweiten Hardwareabbrüchen liefern, weil sie sich auf das Erfassen von Daten vom Mikrocode des Systemprozessors und/oder der Abbruchmodi in der Betriebssystem-Software konzentrieren, die nicht auf eine in der Hardware begründete Art von Ausfall schließen lassen. Die vorliegende Erfindung erkennt auch, dass Virtualisierungstechnologien eine Trennung zwischen Betriebssystemen erfordern, die auf einem Systemprozessor ausgeführt werden, damit sich in einem Speicherauszug keine Daten vom aktiven Speicherimage eines Betriebssystems (auch als Partition bekannt) befinden. Die oben erwähnte Trennung verhindert eine ordnungsgemäße Diagnose, wenn es zu Wechselwirkungen zwischen einem Softwarecodestrom Konstruktionsfehlern der Hardwarelogik kommt.
-
Ausführungsformen der vorliegenden Erfindung können ein Verfahren und ein System zum Erfassen von Daten im einem Computersystem bereitstellen, das von einem systemweiten Hardwareabbruch (z.B. wegen eines physischen Hardwareausfalls oder wegen eines Konstruktionsproblems der Logikschaltung) betroffen ist, der eigentlich durch einen Codestrom, ein Ereignis oder eine Task in Form von Software ausgelöst wird, aber so empfunden wird, als würde er durch Hardware verursacht. Im vorliegenden Gebrauch ist ein systemweiter Hardwareabbruch (auch unter der Bezeichnung Hardwareprozessor-Ausfallmodus bekannt) als vollständiger Systemabsturz definiert, der anzeigt, dass eine Computer-Hardwareeinheit ausgefallen ist und den Absturz verursacht haben kann. Ausführungsformen der vorliegenden Erfindung machen von der Idee Gebrauch, dass Betriebssysteme und Hypervisor-Firmware im Systemspeicher einige der in Wechselbeziehung stehenden Architekturen und Strukturen nutzen, die ihre Stapel-, Seitenumsetzungsmechanismen (z.B. gemeinsame Seitentabelle zum Virtualisieren) und Speichermechanismen für Task-Daten betreffen. Somit erfasst in Bereichen, in denen ein Fehler in einer Wechselbeziehung zwischen der Hypervisor-Firmware und dem Mikrocode oder Kernel des Betriebssystems stehend beschrieben werden kann, eine hierin offenbarte Zusatzdiensteinheit (oder ein Zusatzdienstprozessor) Datenpunkte von dem ausgefallenen Kern auf der Grundlage der oben erwähnten in Wechselbeziehung stehenden Architekturen und Strukturen und auf der Grundlage von Eigenschaften jedes Betriebssystemimages, beispielsweise des Endian-Formats, der Wortgröße, des Stack-Frame-Formats und des Adressiermodus für jedes Betriebssystemimage. Die durch die Zusatzdiensteinheit erfassten Datenpunkte umfassen unter anderem Aufrufstapel von physischen oder virtuellen Prozessoren mit gerade in Ausführung befindlichen Tasks unabhängig von dem Betriebssystemimage, zu dem die Tasks gehören. Die Zusatzdiensteinheit erfordert keine ambulante logische Partition (LPAR), um die oben erwähnten Ausfalldaten zu erfassen.
-
SYSTEM ZUM ERFASSEN VON DATEN ZUM DIAGNOSTIZIEREN EINES DURCH SOFTWARE VERURSACHTEN AUSFALLS EINER COMPUTER-HARDWAREEINHEIT
-
1 ist ein Blockschaubild eines Systems gemäß Ausführungsformen der vorliegenden Erfindung zum Erfassen von Daten zum Diagnostizieren eines durch Software verursachten Ausfalls einer Computer-Hardwareeinheit. Eine Ausführungsform des Systems 100 beinhaltet ein Computersystem 102, das einen Systemhauptspeicher 104 beinhaltet. Bei dem Systemhauptspeicher 104 handelt es sich um eine körperliche Computer-Datenspeichereinheit, die als Hauptspeicher des Computersystems 102 dient. Gemäß einer Ausführungsform handelt es sich bei dem Systemhauptspeicher 104 um einen flüchtigen Speicher.
-
In dem Computersystem 102 werden Betriebssystemimages (OS) 106-1 ... 106-N und Kernels 108-1 ... 108-N ausgeführt, wobei N ≥ 2 ist. Die Betriebssystem images 106-1 ... 106-N sind in einer Eins-zu-eins-Beziehung Kernels 108-1 ... 108-N zugeordnet. Ein Hypervisor 110 (d.h. ein Partitionsmanager) verwaltet (nicht gezeigte) logische Partitionen, in denen Betriebssystem images 106-1 ... 106-N und Kernels 108-1 ... 108-N ausgeführt werden.
-
Betriebssystemimages 106-1 ... 106-N weisen ähnliche Image-Architekturstrukturen wie beispielsweise Image-Stammstrukturen auf. Zum Beispiel werden Image-Stammstrukturen wie beispielsweise ein auf den Prozessor zugeschnittener Steuerbereich (Processor Architected Control Area, PACA) und ein auf Knoten zugeschnittener Steuerbereich (Node Architected Control Area NACA) benötigt, um für die Hypervisorunterstützung eine strukturelle Mindestübereinstimmung zwischen Betriebssystem images zu erreichen. Gemäß Ausführungsformen der vorliegenden Erfindung müssen Steuerwarteschlangen und Zuordnungen zwischen den Betriebssystemimages 106-1 ... 106-N konsistent sein, damit der Datenaustausch mit den Hardwareeinheiten funktioniert.
-
Das Computersystem 102 beinhaltet eine Zusatzdiensteinheit 112, die ein Programm 114 zur Speicherauszugserfassung ausführt, das einen in Ausführungsformen der vorliegenden Erfindung enthaltenen Datenerfassungsprozess implementiert. Die Zusatzdiensteinheit 112 beinhaltet ein oder mehrere Datendepots, die Metadaten 116 des Betriebssystem images, eine Speicherauszugsdatei 118 und (nicht gezeigte) System-Hardwaredaten beinhalten, die von den Hardwareeinheiten des Computersystems 102 erfasst werden. Die Metadaten 116 des Betriebssystem images werden auf einer Computer-Datenspeichereinheit gespeichert und enthalten Informationen für verschiedene Typen von Betriebssystemimages 106-1 ... 106-N auf der Plattform des Computersystems 102. Bei einem der Typen der Betriebssystemimages 106-1 ... 106-N kann es sich um ein Hypervisorprogrammimage handeln.
-
Die Metadaten 116 des Betriebssystem images enthalten die im Folgenden für jede Hardware-Zentraleinheit (CPU) des Computersystems 102 aufgeführten Daten:
- Endian-Format (d.h. Big-Endian-, Little-Endian- oder Mixed-Endian-Format)
- Wortgröße (z.B., 32 Bit oder 64 Bit)
- das Register, das den Stack-Backchain-Zeiger (z.B. GPR1) anzeigt
- das Register, das auf die Adresse der nächsten durch die CPU auszuführenden Anweisung verweist
- den Adressierungsmodus (z.B. virtuell, real usw.)
- das Adressumsetzungsverfahren und die Adressumsetzungstabelle, die bei der Adressumsetzung verwendet werden
- wie der Typ des Betriebssystemimages ermittelt werden soll, zu dem die CPU gehört. Die Typen der Betriebssystemimages können in einer Aufzählung spezieller Typen (oder Typen und Versionen) von Betriebssystemen sowie in einem Typ bestehen, der ein Hypervisorprogramm anzeigt.
-
Gemäß einer Ausführungsform ermittelt die Zusatzdiensteinheit 112 die oben aufgeführten Daten, indem sie auf (nicht gezeigte) Register der (nicht gezeigten CPU) des Computersystems 102 zugreift und Bits aus den Registern abruft.
-
Für mit jeder CPU des Computersystems 102 verbundene Tasks beinhalten die Metadaten 116 der Betriebssystem images den Plan der Taskstruktur innerhalb des Speichers. Die Metadaten 116 des Betriebssystem images brauchen die durch die CPU-Register bereitgestellten Informationen (siehe die oben aufgeführten Daten) nicht zu wiederholen, außer bezüglich des Formats, wo die Register im Aufgabenspeicher gespeichert sind.
-
Das Programm 114 zur Speicherauszugserfassung ruft die oben aufgeführten Daten von den Metadaten 116 des Betriebssystem images ab und ruft Daten vom Systemhauptspeicher 104 ab, um Datenpunkte abzurufen, die (nicht gezeigte) Aufruf-Stack-Frames enthalten. Die Metadaten 116 des Betriebssystemimages beschreiben die folgenden Informationen, die zum Abrufen von Informationen über einen Aufruf-Stack-Frame durch die Zusatzdiensteinheit 112 verwendet werden:
- Wo der nächste oder die nächsten (für einen doppelt verketteten Stapel) Stackframe-Zeiger gespeichert sind.
-
Wo sich die Rücksprungadresse einer Anweisung befindet. Bei den meisten Hardware-Architekturen wird die Rücksprungadresse einer Anweisung als Adresse der Anweisung beschrieben, die nach dem Rücksprung aus einem aufgerufenen Programm als nächste ausgeführt werden soll.
-
Den Ausführungstyp des Aufruf-Stack-Frames (z.B. 32 Bit oder 64 Bit; Adressierung im Ein-Speicher-Adressraum oder private virtuelle Adressierung; Little-Endian-, Big-Endian- oder Mixed-Endian-Architektur). Der Ausführungstyp eines Frames berücksichtigt Betriebssysteme, die innerhalb ein und desselben Betriebssystemimages gleichzeitig mehrere Umgebungen ausführen können.
-
Den Typ des Aufruf-Stack-Frames (z.B. Ausnahme oder ohne Ausnahme, verdeckt oder offen usw.)
-
Das Programm 114 zur Speicherauszugserfassung gibt die abgerufenen Datenpunkte, die die Aufruf-Stack-Frames enthalten, als Speicherauszugs-Image in eine Speicherauszugsdatei 118 aus. Die Speicherauszugsdatei 118 wird in einer (nicht gezeigten) Computer-Datenspeichereinheit innerhalb der Zusatzdiensteinheit 112 gespeichert. Das Speicherauszugs-Image zeigt den Status der Betriebssysteme im Computersystem 102 zum Zeitpunkt des Systemabsturzes des Computersystems 102 an. Die Speicherauszugsdatei 118 kann analysiert werden, um eine durch Software bedingte Ursache für den Systemabsturz des Computersystems 102 zu diagnostizieren und Maßnahmen zur Wiederherstellung nach dem Systemabsturz zu ergreifen.
-
Gemäß einer weiteren Ausführungsform werden die Metadaten 116 des Betriebssystemimages und/oder die Speicherauszugsdatei 118 in einem oder mehreren Computerdatendepots gespeichert, die außerhalb der Zusatzdiensteinheit 112 und außerhalb des Computersystems 102 angeordnet und mit der Zusatzdiensteinheit 112 verbunden sind.
-
Gemäß einer weiteren Ausführungsform befindet sich die Zusatzdiensteinheit 112 außerhalb des Computersystems 102 und ist (z.B. durch ein Kabel) mit dem Computersystem 102 verbunden.
-
Die Funktionalität der Komponenten des Systems 100 wird im Folgenden unter Bezugnahme auf 2 und 3 näher beschrieben.
-
PROZESS ZUM ERFASSEN VON DATEN ZUM DIAGNOSTIZIEREN EINES DURCH SOFTWARE VERURSACHTEN AUSFALLS EINER COMPUTER-HARDWAREEINHEIT
-
2 ist ein Ablaufplan eines Prozesses gemäß Ausführungsformen der vorliegenden Erfindung zum Erfassen von Daten zum Diagnostizieren eines durch Software verursachten Ausfalls einer Computer-Hardwareeinheit, wobei der Prozess in dem System von 1 implementiert wird. Der Prozess zum Erfassen von Daten zum Diagnostizieren eines durch Software verursachten Ausfalls einer Computer-Hardwareeinheit beginnt in Schritt 200. Vor dem Schritt 202 erleidet das Computersystem 102 (siehe 1) einen vollständigen Systemabsturz (d.h. die Hardwareplattform stürzt ab), und der Abbruchmodus zeigt einen Ausfall der Computerhardware an. Der vollständige Systemabsturz kann zum Beispiel das Ergebnis eines in der Hardware gefundenen Fehlers in einem Prozessor, in einer Pipeline, einem Cachespeicher oder einem Speicher sein. Während der Abbruchmodus einen Ausfall der Hardware anzeigt, werden Daten über das Betriebssystem benötigt, um den berichteten Ausfall der Hardware richtig zu verstehen und zu diagnostizieren.
-
Nach dem vollständigen Systemabsturz und vor dem Schritt 202 erkennt die Zusatzdiensteinheit 112 (siehe 1) oder (in 1 nicht gezeigt) eine andere Einheit oder ein Prozessor, der/die Teil des Computersystems 102 (siehe 1) oder mit diesem verbunden ist, einen Hardwareausfallmodus für das Computersystem 102 (siehe 1) oder empfängt einen Hinweis darauf.
-
In Schritt 202 erfasst die Zusatzdiensteinheit 112 (siehe 1) oder die andere Einheit oder der andere Prozessor Speicherauszugsdaten der Hardware für einen offen ersichtlichen Hardwarezustand. Die Speicherauszugsdaten der Hardware können von einer oder mehreren Hardwareeinheiten wie beispielsweise Systemprozessoren, Cachespeichern, Pipelines, Eingabe-/Ausgabe(E/A)-Einheiten und Schaltkreisen erfasst werden, wobei der Systemhauptspeicher 104 erhalten bleibt (siehe 1). Zum Beispiel können Speicherauszugsdaten der Hardware erzeugt werden, ohne den Systemhauptspeicher anzutasten, wenn PowerPC® pSeries/iSeries®-Systeme verwendet werden, die von International Business Machines Corporation in Armonk, New York, USA, angeboten werden.
-
Gemäß einer Ausführungsform schreibt die Zusatzdiensteinheit 112 (sieh 1) oder die andere Einheit oder der andere Prozessor die Speicherauszugsdaten der Hardware in die Speicherauszugsdatei 118 und geht dann weiter zu Schritt 204. Gemäß einer Ausführungsform wird in Schritt 202 ein bekannter Prozess zum Erfassen der Speicherauszugsdaten der Hardware verwendet.
-
In Schritt 204 erfasst die Zusatzdiensteinheit 112 (siehe 1) oder eine andere Einheit oder ein anderer Prozessor (in 1 nicht gezeigt), die Teil des Computersystems 102 (siehe 1) oder mit diesem verbunden sind, Adressumsetzungstabellen für die Hardware. Adressumsetzungstabellen für die Hardware enthalten Daten, die durch eine CPU des Computersystems 102 (siehe FIG: 1) zum Umsetzen virtueller Adressen und E/A-Adressen in tatsächliche Speicheradressen oder E/A-Adressen verwendet werden. Im Gegensatz zu aktuellen Datenerfassungstechniken, bei denen Adressumsetzungstabellen der Hardware erfasst werden, wenn der Abbruchmodus auf einen Softwarefehler zurückzuführen ist, jedoch nicht, wenn der Abbruchmodus auf einen Hardwareausfall zurückzuführen ist, erfassen Ausführungsformen der vorliegenden Erfindung die Adressumsetzungstabellen der Hardware, da Software als Ursache für den Hardwareausfall infrage kommen kann. Gemäß einer Ausführungsform schreibt die Zusatzdiensteinheit 112 (siehe 1) oder die andere Einheit oder der andere Prozessor die Adressumsetzungstabellen der Hardware in die Speicherauszugsdatei 118.
-
In Schritt 206 erfasst die Zusatzdiensteinheit 112 (siehe 1) oder die andere Einheit oder der andere Prozessor (in 1 nicht gezeigt), die Teil des Computersystems 102 (siehe 1) oder mit diesem verbunden sind, Konfigurationsdaten virtueller Images für Betriebssystemimages 106-1 ... 106-N (siehe 1), die im Computersystem 102 (siehe 1) ausgeführt werden. Die Konfigurationsdaten virtueller Images werden unter Verwendung von Daten aus Metadaten 116 (siehe 1) des Betriebssystem images von dem SystemHauptspeicher 104 (siehe 1) erfasst. Die in Schritt 206 erfassten Konfigurationsdaten virtueller Images enthalten Daten, die die Zuordnungen von CPU-Threads zu Betriebssystemimages 106-1 ... 106-N (siehe 1) zum Zeitpunkt des Ausfalls anzeigen. Gemäß einer Ausführungsform schreibt die Zusatzdiensteinheit 112 (siehe 1) oder die andere Einheit oder der andere Prozessor die erfassten Konfigurationsdaten des virtuellen Images in die Speicherauszugsdatei 118 und geht dann zu Schritt 208 über.
-
Im Gegensatz zu aktuellen Datenerfassungstechniken, mit denen Konfigurationsdaten von virtuellen Images erfasst werden, wenn der Abbruchmodus auf einen Softwarefehler zurückzuführen ist, jedoch nicht, wenn der Abbruchmodus auf einen Hardwareausfall zurückzuführen ist, erfasst eine Ausführungsform der vorliegenden Erfindung die Konfigurationsdaten der virtuellen Images in Schritt 206, obwohl der Abbruchmodus einen Hardwareausfall anzeigt.
-
Schritt 208 startet eine äußere Schleife für jeden den Betriebssystem images 106-1 .. 106-N (siehe 1) im Computersystem 102 (siehe 1) zugeordneten CPU-Thread. Der gerade in einer Iteration der äußeren Schleife befindliche CPU-Thread wird hierin auch als der aktuelle CPU-Thread bezeichnet.
-
In Schritt 210 vergleicht die Zusatzdiensteinheit 112 (siehe 1) eine Kennung des aktuellen CPU-Threads (d.h. die CPU-Threadnummer) mit den in Schritt 206 erfassen Konfigurationsdaten des virtuellen Images und ermittelt dadurch das Betriebssystemimage unter den Betriebssystemimages 106-1 ... 106-N (siehe 1), dem der aktuelle CPU-Thread zugeordnet ist. An Schritt 210 ist die Zusatzdiensteinheit 112 (siehe 1) auch insofern beteiligt, als sie den Typ (auch als Betriebssystemimage-Typ bekannt) des Betriebssystemimages erkennt, dem der aktuelle CPU-Thread zugeordnet ist.
-
In Schritt 212 ruft die Zusatzdiensteinheit 112 (siehe 1) Formatierungsdaten für Tasks und Frames (d.h. Formatierungsdaten für Tasks und Formatierungsdaten für Aufruf-Stack-Frames) von den Metadaten 116 (siehe 1) des Betriebssystemimages ab. Die in Schritt 212 abgerufenen Formatierungsdaten für Tasks und Frames werden dem in Schritt 210 erkannten Betriebssystemimage-Typ zugeordnet.
-
In Schritt 214 ermittelt die Zusatzdiensteinheit 112 (siehe 1) eine Umgebung des aktuellen CPU-Threads für die Ausführung von Anweisungen. Durch Abrufen der Daten von den Metadaten 116 des Betriebssystemimages (siehe 1) ermittelt die Zusatzdiensteinheit 112 (siehe 1) die Wortgröße (z.B. 32 Bit oder 64 Bit), die durch das in Schritt 210 ermittelte Betriebssystemimage verwendet wird, ob das Betriebssystemimage das Little-Endian-, das Big-Endian- oder ein Mixed-Endian-Format verwendet, ob sich das Betriebssystemimage im Hypervisormodus befindet und welche Register verwendet werden, um die Adresse des ersten Eintrags im Aufruf-Stack-Frames zu ermitteln.
-
In Schritt 216 ruft die Zusatzdiensteinheit 112 (siehe 1) Taskdaten ab (d.h. Daten über die zum Zeitpunkt des vollständigen Systemabsturzes durch den aktuellen CPU-Thread ausgeführte Task). An Schritt 216 ist die Zusatzdiensteinheit 112 (siehe 1) insofern beteiligt, als sie unter Verwendung der in Schritt 212 abgerufenen Task-Formatierungsdaten den Speicherplatz des Taskspeichers im Hauptspeicher 104 des Systems (siehe 1) abruft. Gemäß einer Ausführungsform kopiert die Zusatzdiensteinheit 112 (siehe 1) Seiten vom Taskspeicher, die die Taskdaten (d.h. die abgerufenen Taskdaten) enthält, und schreibt die Seiten, die die abgerufenen Taskdaten enthalten, in die Speicherauszugsdatei 118 und geht dann weiter zu Schritt 218.
-
Schritt 218 startet eine innere Schleife für jeden Aufruf-Stack-Frame in dem Aufrufstapel des Betriebssystemimages, dem der aktuelle CPU-Thread zugeordnet ist. Der gerade in einer Iteration der inneren Schleife befindliche Aufruf-Stack-Frame wird hierin auch als der aktuelle Aufruf-Stack-Frame bezeichnet.
-
In Schritt 220 ruft die Zusatzdiensteinheit 112 (siehe 1) den Aufruf-Stack-Frame unter Verwendung der in Schritt 212 abgerufenen Formatierungsdaten des Frames ab. Gemäß einer Ausführungsform kopiert die Zusatzdiensteinheit 112 (siehe 1) die Seiten aus dem Systemhauptspeicher 104 (siehe 1), der den Aufruf-Stack-Frame (d.h. den abgerufenen Aufruf-Stack-Frame) enthält, und schreibt die Seiten, die den abgerufenen Aufruf-Stack-Frame enthalten, in die Speicherauszugsdatei 118 und fährt mit Schritt 222 fort.
-
In Schritt 222 ermittelt die Zusatzdiensteinheit 112 (siehe 1) eine Programmausführungsadresse für den aktuellen Aufruf-Stack-Frame, ruft die Programminformation für den aktuellen Aufruf-Stack-Frame unter Verwendung der ermittelten Programmausführungsadresse ab und ermittelt den Typ der Programminformation. Schritt 222 kann Programminformationen in verschiedenen Formaten abrufen, beispielsweise im eXtended Common Object File Format (XCOFF). Bevor der Prozess zu Schritt 218 (wenn eine Adresse eines für die innere Schleife zu berücksichtigenden nächsten Aufruf-Stack-Frames erkannt wird) oder zu Schritt 308 zurückspringt (wenn für den aktuellen CPU-Thread kein nächster Aufruf-Stack-Frame gefunden wird und für die äußere Schleife ein nächster CPU-Thread berücksichtigt werden soll) oder aus anderen Gründen mit Schritt 224 fortgefahren wird, kopiert die Zusatzdiensteinheit 112 (siehe 1) Seiten, die die Programminformationen (d.h. die abgerufenen Programminformationen) vom Systemhauptspeicher 104 (siehe 1) enthalten und schreibt die Seiten, die die abgerufenen Programminformationen enthalten in die Speicherauszugsdatei 118.
-
Wenn die innere Schleife das Ende des Aufrufstapels erreicht und keine weiteren Aufruf-Stack-Frames formatiert werden müssen, springt der Prozess zurück zu Schritt 208, und wenn es einen nächsten CPU-Thread gibt, wird dieser für eine weitere Iteration in der äußeren Schleife ab Schritt 208 berücksichtigt. Wenn die Verarbeitung aller Aufruf-Stack-Frames bzw. CPU-Threads in der inneren und der äußeren Schleife abgeschlossen ist, wird der Prozess von 2 mit Schritt 224 beendet.
-
Bei jedem Abrufen von Daten vom Systemhauptspeicher 104 (siehe 1) in Schritt 204, 206, 208, 210, 212, 214, 216, 220 und 222 führt das Programm 114 (siehe 1) zur Erfassung der Speicherauszugsdaten eine Adressumsetzung durch. Wenn es vorher keinen vollständigen Systemabsturz gegeben hätte, könnte die Adressumsetzung während der Ausführungszeit durch die Hardware des Computersystems 102 (siehe 1) durchgeführt werden. Da die Hardware vor Schritt 202 durch den vollständigen Systemabsturz abgebrochen wurde, kann die Hardware nicht zur Adressumsetzung verwendet werden. Somit sucht das Programm 114 zur Erfassung der Speicherauszugsdaten nach Metadaten in den Metadaten 116 (siehe 1) des Betriebssystemimages, wo die Metadaten in Verbindung mit einer bestimmten CPU-Task des aktuellen CPU-Threads gespeichert sind, und ruft diese ab. Die abgerufenen Metadaten für die betreffende CPU-Task enthalten den Typ des Aufruf-Stack-Frames und des Adressumsetzungsmodus (z.B. Adressierung im Ein-Speicher-Adressraum oder private Adressierung; real oder virtuell; gemeinsam genutzt usw.). Anschließend ermittelt das Programm 114 zur Erfassung von Speicherauszugsdaten (siehe 1) das Verfahren der CPU zur Adressumsetzung. Auf der Grundlage des ermittelten Verfahrens zur Adressumsetzung führt das Programm 114 zur Erfassung von Speicherauszugsdaten (siehe 1) die Adressumsetzung in Schritt 204, 206, 208, 210, 212, 214, 216, 220 und 222 durch, um Daten vom Systemhauptspeicher 104 (siehe 1) abzurufen.
-
Der Prozess von 2 kann in die Speicherauszugsdatei 118 Steuerstrukturen zum Erstellen eines Speicherauszugs für Images einfügen. Zum Erstellen eines Speicherauszugs der Steuerstrukturen übernimmt die Zusatzdiensteinheit 112 (siehe 1) die Adressumsetzung, die Adressumsetzungsdaten und die erforderlichen Speicherplätze der Daten der Image-Steuerstruktur. Gemäß einer alternativen Ausführungsform kann die Zusatzdiensteinheit 112 (siehe 1) die Daten zum Erstellen eines Speicherauszugs der Image-Steuerstrukturen auf Frame- oder Seitenebene übernehmen, um sie in einer Datenbank zu speichern und die Daten später zu analysieren.
-
Gemäß Ausführungsformen der vorliegenden Erfindung besteht jedes Mal, wenn eine Seite in Schritt 216, 220 und 222 in die Speicherauszugsdatei 118 geschrieben wird, die Möglichkeit, dass eine Duplikatseite in die Speicherauszugsdatei geschrieben werden kann. Gemäß einer weiteren Ausführungsform verhindert die Zusatzdiensteinheit 112 (siehe 1) das Eintreten von Seitenduplikaten durch Verwendung eines Seiten-Cachespeichers, der die Seiten des Systemhauptspeichers 104 (siehe 1) überwacht, die in das Speicherauszugs-Image der Speicherauszugsdatei 118 ausgegeben werden sollen. Anstatt in Schritt 216, 220 und 222 mehrere getrennte Ausgaben in die Speicherauszugsdatei 118 zu tätigen, gibt der Seiten-Cachespeicher gemäß der weiteren Ausführungsform jede durch Schritt 216, 220 und 222 angeforderte Seite zum Abschluss der Speicherauszugsbearbeitung in Schritt 224 nur genau einmal aus.
-
Nach Schritt 224 enthält die Speicherauszugsdatei 118 die in Schritt 202, 204, 206, 216, 220 und 222 geschriebenen Seiten und andere Daten, die ein Speicherauszugsimage darstellen. Auf der Grundlage des Speicherauszugsimages in der Speicherauszugsdatei 118 ermittelt ein menschlicher Analytiker oder ein Computer einen Status des Betriebssystems im Computersystem 102, diagnostiziert den Hardwareausfall und stellt fest, dass der Hardwareausfall durch Software verursacht wurde, ermittelt wahlweise eine oder mehrere Maßnahmen zur Wiederherstellung des Computersystems 102 und führt wahlweise eine oder mehrere Maßnahmen zur Wiederherstellung des Computersystems durch.
-
COMPUTERSYSTEM
-
3 ist ein Blockschaubild eines Computersystems, das Bestandteil des Systems von 1 ist und den Prozess von 2 gemäß Ausführungsformen der vorliegenden Erfindung implementiert. Das System 300 stellt eine Ausführungsform des Systems 100 (siehe 1) dar und beinhaltet das Computersystem 102, das als eingebettetes System die Zusatzdiensteinheit 112 enthält. Bei der Zusatzdiensteinheit 112 handelt es sich um ein eigenes Computersystem, das im Allgemeinen eine Zentraleinheit (CPU) 302, einen Speicher 304, eine Eingabe-/Ausgabe(E/A)-Schnittstelle 306, einen Bus 308 und eine Computer-Datenspeichereinheit 312 zum Speichern von Programmen umfasst. Gemäß einer weiteren Ausführungsform handelt es sich bei der Zusatzdiensteinheit 112 und deren Komponenten um ein Computersystem außerhalb des Computersystems 102, das mit diesem verbunden ist. Die CPU 302 führt Rechen- und Steuerfunktionen der Zusatzdiensteinheit 112 aus, darunter die Ausführung von Anweisungen, die im Programmcode 314 enthalten sind, um ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit auszuführen, wobei die Anweisungen über den Speicher 304 durch die CPU 302 ausgeführt werden. Die CPU 302 kann eine einzige Zentraleinheit umfassen oder auf eine oder mehrere Zentraleinheiten an einem oder mehreren Standorten (z.B. auf einem Client und einem Server) verteilt sein. Gemäß einer Ausführungsform beinhaltet der Programmcode 314 ein Programm zur Codespeicherauszugserfassung 114 (siehe 1)
-
Der Speicher 304 kann ein beliebiges bekanntes computerlesbare Speichermedium umfassen, das im Folgenden beschrieben wird. Gemäß einer Ausführungsform stellen Cachespeicherelemente des Speichers 304 temporären Speicherplatz zumindest für Abschnitte des Programmcodes (z.B. für den Programmcode 314) bereit, um während der Ausführung von Anweisungen des Programmcodes die Anzahl der Zugriffe auf den Massenspeicher zu verringern. Außerdem kann sich der Speicher 304 ebenso wie die CPU 302 an einem einzigen physischen Standort befinden, der eine oder mehrere Arten von Datenspeichern umfasst, oder auf eine Vielzahl physischer Systeme in verschiedenen Formen verteilt sein. Ferner kann der Speicher 304 Daten enthalten, die zum Beispiel über ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN) verteilt sind.
-
Die Schnittstelle 306 umfasst ein System zum Austauschen von Daten an oder von einer Quelle außerhalb der Zusatzdiensteinheit 112. Eine oder mehrere (nicht gezeigte) E/A-Einheiten können mit der Zusatzdiensteinheit 112 verbunden sein und jede bekannte Art von Peripherieeinheiten umfassen, darunter eine Anzeigeeinheit (z.B. einen Monitor), eine Tastatur, eine Maus, einen Drucker, Lautsprecher, ein Handgerät, ein Faxgerät usw. Der Bus 308 stellt eine Datenübertragungsverbindung zwischen den Komponenten in der Zusatzdiensteinheit 112 bereit und kann jede Art von Übertragungsverbindung umfassen, darunter elektrische, optische, drahtlose u sw.
-
Die E/A-Schnittstelle 306 ermöglicht der Zusatzdiensteinheit 112 auch das Speichern von Informationen (z.B. Daten oder Programmanweisungen wie beispielsweise den Programmcode 314) auf der Computer-Datenspeichereinheit 312 oder einer anderen (nicht gezeigten) Computer-Datenspeichereinheit und das Abrufen der Informationen von diesen. Die Computer-Datenspeichereinheit 312 kann jedes bekannte computerlesbare Speichermedium umfassen, das im Folgenden beschrieben wird. Zum Beispiel kann es sich bei der Computer-Datenspeichereinheit 312 um eine permanente Datenspeichereinheit wie beispielsweise ein magnetisches Plattenlaufwerk (d.h. ein Festplattenlaufwerk) oder ein optisches Plattenlaufwerk (z.B. ein CD-ROM-Laufwerk, in das eine CD-ROM eingelegt wird) handeln.
-
Der Speicher 304 und/oder die Speichereinheit 312 können den Computerprogrammcode 314 speichern, der Anweisungen beinhaltet, die über den Speicher 304 durch die CPU 302 ausgeführt werden, um Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit zu erfassen. Obwohl 3 zeigt, dass der Speicher 304 den Programmcode 314 enthält, sind durch die vorliegende Erfindung Ausführungsformen denkbar, bei denen der Speicher 304 nicht gleichzeitig den gesamten Code 314, sondern stattdessen zu jedem Zeitpunkt jeweils nur einen Abschnitt des Codes 314 enthält.
-
Ferner kann der Speicher 304 andere in 3 nicht gezeigte Systeme beinhalten, beispielsweise ein Betriebssystem (z.B. Linux), das durch die CPU 302 ausgeführt wird und die Steuerung verschiedener Komponenten ermöglicht, die sich innerhalb der Zusatzdiensteinheit 112 befinden und/oder mit dieser verbunden sind.
-
Die Speichereinheit 312 und/oder eine oder mehrere andere (nicht gezeigte) Computer-Datenspeichereinheiten, die mit der Zusatzdiensteinheit 112 verbunden sind, können Metadaten 116 (siehe 1) des Betriebssystemimages, eine Speicherauszugsdatei 118 (siehe 1) und Systemhardwaredaten speichern, die von Hardwareeinheiten des Computersystems 102 erfasst wurden.
-
Das Computersystem 102 umfasst im Allgemeinen eine CPU 352, einen Speicher 354, eine Eingabe-/Ausgabe(E/A)-Schnittstelle 356, einen Bus 358 und ist mit einer oder mehreren E/A-Einheiten 360 und einer Computer-Datenspeichereinheit 362 verbunden. Die CPU 352 führt Rechen- und Steuerfunktionen des Computersystems 102 aus. Die CPU 352 kann eine einzelne Zentraleinheit umfassen oder auf eine oder mehrere Zentraleinheiten an einem oder mehreren Standorten (z.B. auf einem Client und einem Server) verteilt sein.
-
Der Speicher 354 kann jedes bekannte computerlesbare Speichermedium umfassen. Der Speicher 354 kann sich an einem einzigen physischen Standort befinden, der eine oder mehrere Arten von Datenspeichern umfasst, oder auf eine Vielzahl physischer Systeme unterschiedlicher Form verteilt sein. Ferner kann der Speicher 354 Daten enthalten, die zum Beispiel über ein LAN oder ein WAN verteilt sind.
-
Die E/A-Schnittstelle 356 umfasst ein beliebiges System zum Austauschen von Informationen zwischen einer externen Quelle und dem Computersystem 102, darunter zum Austauschen von Informationen zwischen der Zusatzdiensteinheit 112 und einer oder mehreren Komponenten des Computersystems 102. Der Doppelpfeil mit der gestrichelten Linie in 3 zwischen der CPU 352 und der Zusatzdiensteinheit 112 zeigt an, dass die Informationen, die durch den hierin offengelegten Prozess zum Abrufen der Speicherauszugsdaten verwendet werden, zwischen der CPU 352 und der Zusatzdiensteinheit 112 über die E/A-Schnittstelle 356 ausgetauscht werden, ohne dass zwischen der Zusatzdiensteinheit 112 und der CPU 352 eine direkte Verbindung bestehen muss, wodurch sich charakteristische Ausführungsformen der vorliegenden Erfindung von einer ambulanten Einheit unterscheiden. Der Doppelpfeil mit der gestrichelten Linie in 3 zwischen dem Speicher 354 und der Zusatzdiensteinheit 112 zeigt an, dass die Informationen, die durch den hierin offengelegten Prozess zum Abrufen der Speicherauszugsdaten verwendet werden, zwischen dem Speicher 354 und der Zusatzdiensteinheit 112 über die E/A-Schnittstelle 356 ausgetauscht werden, ohne dass zwischen der Zusatzdiensteinheit 112 und dem Speicher 354 eine direkte Verbindung bestehen muss, wodurch sich charakteristische Ausführungsformen der vorliegenden Erfindung zusätzlich von einer ambulanten Einheit unterscheiden.
-
Eine oder mehrere E/A-Einheiten 360 können mit dem Computersystem 102 verbunden sein und jeden bekannten Typ von Peripherieeinheit umfassen, darunter eine Anzeigeeinheit (z.B. einen Monitor), eine Tastatur, eine Maus, einen Drucker, Lautsprecher, ein Handgerät, ein Fax usw. Der Bus 358 stellt eine Datenübertragungsverbindung zwischen jeder der Komponenten im Computersystem 102 bereit und kann jede Art von Übertragungsverbindung umfassen, darunter elektrische, optische, drahtlose usw.
-
Die E/A-Schnittstelle 356 ermöglicht dem Computersystem 102 auch das Speichern von Informationen (z.B. Daten oder Programmanweisungen) auf der Computer-Datenspeichereinheit 362 oder einer anderen (nicht gezeigten) Computer-Datenspeichereinheit und das Abrufen der Informationen von diesen. Die Computer-Datenspeichereinheit 362 kann jedes bekannte computerlesbare Speichermedium umfassen.
-
Gemäß einer Ausführungsform ist der Speicher 354 gleich mit dem Systemhauptspeicher 104 (siehe 1) identisch oder enthält diesen. Ferner kann der Speicher 354 andere in 3 nicht gezeigte Systeme beinhalten, beispielsweise ein Betriebssystem (z.B. Linux), das durch die CPU 352 ausgeführt wird und die Steuerung verschiedener Komponenten ermöglicht, die Teil des Computersystems 102 oder mit diesem verbunden sind.
-
Dem Fachmann ist einsichtig, dass die vorliegende Erfindung als System, Verfahren oder Computerprogrammprodukt realisiert werden kann. Demgemäß kann ein Aspekt einer Ausführungsform der vorliegenden Erfindung die Form eines kompletten Hardwareaspekts, eines kompletten Softwareaspekts (darunter Firmware, residente Software, Mikrocode usw.) oder eines Aspekts annehmen, der Software- und Hardwareaspekte in sich vereint, die hierin im Allgemeinen sämtlich als Modul bezeichnet werden können. Darüber hinaus kann eine Ausführungsform der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien (z.B. im Speicher 304 und/oder in der Computer-Datenspeichereinheit 312) verkörpert ist, in denen ein computerlesbarer Programmcode (z.B. der Programmcode 314) verkörpert oder gespeichert ist.
-
Es kann jede Kombination von einem oder mehreren computerlesbaren Medien (z.B. der Speicher 304 und die Computer-Datenspeichereinheit 312) verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder um ein computerlesbares Speichermedium handeln. Gemäß einer Ausführungsform dient als computerlesbares Speichermedium eine computerlesbare Speichereinheit oder eine computerlesbare Speichervorrichtung. Bei dem computerlesbaren Speichermedium kann es sich unter anderem um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine geeignete Kombination derselben handeln. Eine nicht erschöpfende Liste weiterer spezieller Beispiele für das computerlesbare Medium beinhaltet: eine elektrische Verbindung mit einer oder mehreren Drahtleitungen, eine tragbare Computerdiskette, eine Festplatte, einen Arbeitsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine geeignete Kombination derselben. In Verbindung mit diesem Dokument kann es sich bei dem computerlesbaren Speichermedium um ein körperliches Medium handeln, das ein Programm (z.B. das Programm 314) zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit einem darin verkörperten computerlesbaren Programmcode beinhalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine Vielzahl von Formen annehmen, unter anderem elektromagnetische, optische oder beliebige geeignete Kombinationen derselben. Bei einem computerlesbaren Signalmedium kann es sich um jedes computerlesbare Medium handeln, das kein computerlesbares Speichermedium ist, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen übertragen, weiterleiten oder transportieren kann.
-
Ein auf einem computerlesbaren Medium verkörperter Programmcode (z.B. der Programmcode 314) kann unter Verwendung jedes geeigneten Mediums übertragen werden, unter anderem drahtlos, leitungsgebunden, über Lichtwellenleiter, HF usw. oder jede geeignete Kombination derselben.
-
Ein Computerprogrammcode (z.B. der Programmcode 314) zum Ausführen von Operationen gemäß Aspekten der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben werden, darunter eine objektorientierte Programmiersprache wie beispielsweise Java®, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen. Anweisungen des Programmcodes können ganz auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden, wobei es sich bei dem oben erwähnten Computer des Benutzers, dem fernen Computer und Server zum Beispiel um die Zusatzdiensteinheit 112 oder ein anderes (nicht gezeigtes) Computersystem handeln kann, das Komponenten analog den Komponenten der Zusatzdiensteinheit 112 von 3 aufweist. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers durch eine beliebige Art von (nicht gezeigtem) Netz verbunden sein, darunter ein LAN oder ein WAN, oder die Verbindung kann zu einem externen Computer hergestellt werden (z.B. über das Internet unter Verwendung eines Internet-Providers).
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufpläne (z.B. 2) und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) (z.B. 1 und 3) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Anweisungen eines Computerprogramms (z.B. durch den Programmcode 314) implementiert werden können. Die Anweisungen des Computerprogramms können einem oder mehreren Hardware-Prozessoren (z.B. der CPU 302) eines Universalcomputers, einem Spezialcomputer oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine derart zu erzeugen, dass die Anweisungen, die durch den/die Prozessor/en des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Implementieren der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder spezifizierten Funktionen/Aktionen erzeugen.
-
Diese Anweisungen des Computerprogramms können auch in einem computerlesbaren Medium (z.B. im Speicher 304 oder der Computer-Datenspeichereinheit 312), das einen Computer (z.B. das Computersystem 102) führen kann, einer anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten gespeichert werden, um in einer bestimmten Weise so zu funktionieren, dass die in dem computerlesbaren Medium gespeicherten Anweisungen (z.B. das Programm 314) ein Herstellungserzeugnis ergeben, das Anweisungen aufweist, die die Funktion/Aktion implementieren, die in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder angegeben ist.
-
Die Anweisungen des Computerprogramms können auch in einen Computer (z.B. in die Zusatzdiensteinheit 112), eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe auf dem Computer, der anderen programmierbaren Vorrichtung oder anderen Einheiten auszuführender Arbeitsschritte zu bewirken und einen computerimplementierten Prozess derart zu erzeugen, dass die auf dem Computer, den anderen programmierbaren Vorrichtungen oder anderen Einheiten ausgeführten Anweisungen (z.B. das Programm 314) Prozesse zum Implementieren der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktionen/Aktionen bereitstellen.
-
Jede der Komponenten einer Ausführungsform der vorliegenden Erfindung kann durch einen Dienstanbieter installiert, verwaltet, gewartet usw. werden, der anbietet, eine Datenverarbeitungsinfrastruktur in Bezug auf das Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit zu installieren oder zu integrieren. Somit legt eine Ausführungsform der vorliegenden Erfindung einen Prozess zum Unterstützen einer Computerinfrastruktur offen, wobei der Prozess mindestens einen unterstützenden Service zum Integrieren, Hosting, Warten und/oder Installieren eines computerlesbaren Codes (z.B. des Programmcodes 314) in einem Computersystem (z.B. der Zusatzdiensteinheit 112) mit einem oder mehreren Prozessoren (z.B. der CPU 302) umfasst, wobei der/die Prozessor/en in dem Code enthaltene Anweisungen ausführen, die das Computersystem zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit veranlassen.
-
Gemäß einer weiteren Ausführungsform stellt die Erfindung ein Verfahren bereit, das die Prozessschritte der Erfindung auf der Grundlage von Abonnements, Werbeeinnahmen und/oder Gebühren ausführt. Das heißt, ein Dienstanbieter wie beispielsweise ein Lösungsentwickler kann anbieten, einen Prozess zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit zu erstellen, zu warten, zu unterstützen usw. In diesem Fall kann der Dienstanbieter eine Computerinfrastruktur erstellen, warten, unterstützen usw., die die Prozessschritte der Erfindung für einen oder mehrere Kunden aufführt. Der Dienstanbieter wiederum kann Zahlungen von Kunden aufgrund von Abonnements und/oder Gebührenvereinbarungen entgegennehmen und/oder der Dienstanbieter kann Zahlungen für den Verkauf von Werbeinhalten an einen oder mehrere Dritte entgegennehmen.
-
Der Ablaufplan in 2 und die Blockschaubilder in 1 und 3 veranschaulichen die Architektur, die Funktionalität und die Wirkungsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Abschnitt des Codes (z.B. des Programmcodes 314) darstellen, der eine oder mehrere ausführbare Anweisungen zum Implementieren der angegebenen logischen Funktion/en umfasst. Zu beachten ist auch, dass bei einigen weiteren Implementierungen die in dem Block angegebenen Funktionen in einer von den Figuren abweichenden Reihenfolge ausgeführt werden können. Zum Beispiel können zwei nacheinander dargestellte Blöcke je nach der beabsichtigten Funktionalität in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in umgekehrter Reihenfolge ausgeführt werden. Es wird auch darauf hingewiesen, dass jeder Block in den Blockschaubildern und/oder dem Ablaufplan und Kombinationen von Blöcken in den Blockschaubildern und/oder dem Ablaufplan durch spezielle Hardwaresysteme, die die angegebenen Funktionen oder Aktionen ausführen, oder durch Kombinationen von spezieller Hardware und Computeranweisungen implementiert werden können.
-
Während Ausführungsformen der vorliegenden Erfindung hierin zum Zweck der Veranschaulichung beschrieben wurden, sind dem Fachmann viele Modifikationen und Änderungen offensichtlich. Demgemäß sollen die beigefügten Ansprüche alle solchen Modifikationen und Änderungen im Rahmen des Erfindungsgedankens und des Schutzumfangs dieser Erfindung umfassen.