DE69031581T2 - Verfahren zur Beobachtung eines in ein Rechnersystem geladenen Programms und Vorrichtung zur Durchführung des besagten Verfahrens - Google Patents
Verfahren zur Beobachtung eines in ein Rechnersystem geladenen Programms und Vorrichtung zur Durchführung des besagten VerfahrensInfo
- Publication number
- DE69031581T2 DE69031581T2 DE69031581T DE69031581T DE69031581T2 DE 69031581 T2 DE69031581 T2 DE 69031581T2 DE 69031581 T DE69031581 T DE 69031581T DE 69031581 T DE69031581 T DE 69031581T DE 69031581 T2 DE69031581 T2 DE 69031581T2
- Authority
- DE
- Germany
- Prior art keywords
- program
- information
- memory
- application program
- observation
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
- G06F11/3612—Analysis of software for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/366—Debugging of software using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Automatic Analysis And Handling Materials Therefor (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Description
- Die Erfindung betrifft im allgemeinen den Ablauf der Ausführung eines Programms, das in ein Datenverarbeitungssystem geladen ist, das beispielsweise durch die folgende minimale Konfiguration definiert ist: eine Zentraleinheit, ein Hauptspeicher, ein oder mehrere Eingabe- und/oder Ausgabeperipheriegeräte, ein Betriebssystem und je nach Wahl des Anwenders ein oder mehrere Anwendungsprogramme.
- Es ist bekannt, die Ausführung eines momentan ablaufenden Anwendungsprogramms mittels einer Debugging-Software zu beobachten. Derartige Softwareprogramme nehmen die momentanen Informationen auf, die sie häufig in Form einer Tabelle organisieren, wie dies in dem Artikel von B. Sundermeier mit dem Titel "Real time multiprocessing debugging", veröffentlicht in WESCON '87, Konferenzaufzeichnung, Bd. 31, 1983, Seiten 27/3, 1-5, offenbart ist.
- Außerdem ermöglichen bestimmte Betriebssysteme wie etwa das UNIX-System V (siehe UNIX-System V User's reference Manual von AT&T, veröffentlicht von Prentice Hall, USA, 1986, Seiten 218-222 und 286-287) die überwachung der Ausführung eines Befehls (d. h. eines Programms) oder die sofortige überwachung des Datenauswertungskontexts.
- Seit mehreren Jahren entwickelt sich die Verwendung des Datenverarbeitungswerkzeugs mehr und mehr zu einem bedienungsfreundlichen Betrieb zwischen dem Datenverarbeitungssystem und dessen direkten Anwender. Insbesondere wird der bedienungsfreundliche Betrieb dazu verwendet, die nicht professionellen Anwender in Echtzeit zu unterstützen. Beispielsweise weisen zahlreiche Anwendungssoftwareprogramme eine "Hilfe"-Funktion auf, die durch eine hierfür vorgesehene Taste der Tastatur aktiviert wird. Diese Unterstützung ist jedoch bis heute aufgrund fehlender präziser und sofortiger Informationen bezüglich des Ausführungszustands des in Dienst befindlichen Programms und bezüglich des Auswertungskontexts dieses Programms sehr begrenzt und sehr allgemein (in Form eines Verzeichnisses oder einer Speicherhilfe) geblieben. Diese Situation ist besonders im Rahmen von Anwendungen hinderlich, in denen die Bedienungsfreundlichkeit eine gewisse Wichtigkeit besitzt, insbesondere bei der Selbstschulung oder bei der Auflösung von Störungen während des Betriebs.
- Um den Ablauf der Ausführung eines in ein Datenverarbeitungssystem geladenen Programms zu verbessern, schlägt die Erfindung, die durch die unten angegebenen Ansprüche definiert ist, ein Verfahren zum Beobachten der Ausführung dieses Programms vor, dadurch gekennzeichnet, daß Einheiten momentaner Information, die das momentan ausgeführte Programm und/oder seinen Datenauswertungskontext betrifft, an vorgegebenen Punkten des Datenverarbeitungs systems abgegriffen werden,
- - optional bestimmte der Informationseinheiten gemäß im voraus erstellten Analyseprozeduren verarbeitet werden,
- - eine Auswahl von verarbeiteten und/oder nicht verarbeiteten Informationseinheiten gemäß einem im voraus erstellten Raster in einer Zustandstabelle TE gespeichert wird,
- - der Zugriff auf die Zustandstabelle TE, insbesondere im Lesemodus, durch bezüglich des beobachteten momentan ausgeführten Programms externe Dienstprogramme SER zugelassen wird.
- In einer ersten Ausführungsform des Verfahrens gemäß der vorliegenden Erfindung:
- - wird der Zustandstabelle TE ein zeitliches Bezugssystem in bezug auf das beobachtete momentan ausgeführte Programm zugeordnet und wird der Inhalt der Zustandstabelle TE während eines Zeitintervalls, das wenigstens gleich einer vorgegebenen Dauer, die momentaner Beobachtungszyklus genannt wird, gehalten,
- - wird die gesamte Zustandstabelle TE oder ein Teil derselben durch aufeinanderfolgende Abgriffe in jedem neuen Beobachtungs zyklus automatisch aktualisiert.
- Vorteilhaft werden sämtliche Zustandstabellen TE, die den bezüglich des momentanen Zyklus vorhergehenden Beobachtungszyklen entsprechen, oder ein Teil derselben in einer Struktur zeitlich geordneter Tabellen TANT (TANT1 bis TANTN) gespeichert.
- Somit ist es möglich, mehrere weitere Programme, beispielsweise Dienstsoftwareprogramme, eine Historie der momentanen Ausführung des beobachteten Programms, zur Verfügung zu stellen. Darüber hinaus kann diese Operation in einer das beobachtete Programm nicht störenden Weise verwirklicht werden. Im Fall einer Störung ermöglichen die Abgriffe, die vor einem Störereignis ausgeführt wurden, die Diagnose und eine einfachere Auflösung der Störung.
- In den herkömmlichen Datenverarbeitungssystemen hat nämlich das Auftreten eines Störereignisses sehr häufig den späteren Abgriff von Informationen verhindert, die für die Rücksetzung des Systems in den Betriebszustand notwendig sind.
- In einer weiteren Ausführungsform der Erfindung wird im Anwendungsprogramm eine Dienstzone organisiert, die im Lesemodus und/oder im Schreibmodus auf der Grundlage von bezüglich des beobachteten Anwendungsprogramms externen Programmen SER arbeitet, um die Eingabe und die Ausgabe von Informationen oder Befehlen, die das beobachtete Anwendungsprogramm und/oder dessen Datenauswertungskontext betreffen, in das Anwendungsprogramm bzw. aus dem Anwendungsprogramm zu ermöglichen. Dieses Merkmal ist in den Fällen sehr nützlich, in denen es zweckmäßig ist, in das System, insbesondere in das Anwendungsprogramm, Befehle zu schicken, deren Ausführungsbedingungen von der Schnittstelle beobachtet werden, um die Ausführung einer Diagnose und anschließend die Rücksetzung des Systems in den Betriebszustand zu ermöglichen.
- In einer nochmals weiteren Ausführungsform des Verfahrens gemäß der Erfindung wird die Zustandstabelle TE mittels Hauptfeldern strukturiert. Vorteilhaft enthält die Zustandstabelle wenigstens ein Hauptfeld, das aus den folgenden Feldern gewählt ist.
- Funktion (FO): definiert durch die Liste der letzten vom Programm ausgeführten Funktionen und der laufenden oder der bald ausgeführten Funktionen zusammen mit ihrem Kontext;
- Zentralsystem (SC): definiert durch den Zustand bestimmter Stapel, Register und Zonen des Speichers des Zentralsystems;
- Eingang (EN): definiert durch die letzten Daten, die von den Eingabeperipherieeinrichtungen mit ihrem Kontext (z. B. die Fehler- und/oder Validitätstests) empfangen wurden;
- Ausgang (SO): definiert durch die letzten Daten, die an die Ausgabeperipherieeinrichtungen mit ihrem Kontext geschickt werden;
- Zeit (CH): definiert durch Informationen und/oder Analysen, die die "Zeit"-Funktion (Geschwindigkeit der Ausführung, der Übertragung, der Synchronisation usw.) verwenden;
- Träger (SU): definiert durch die Informationen, die den Hardware- und den Softwareträger des beobachteten Programms, insbesondere die Systemkonfiguration, betreffen.
- Diese Struktur der Anordnung in einem im voraus erstellten Raster ist besonders nützlich für einen einfachen Zugang durch die Dienstsoftwareprogramme. Trotz der unterschiedlichen Anwendungssoftwareprogramme, die beobachtet werden können, läßt diese Struktur auch die Implementierung von Standardverarbeitungen durch die Dienstsoftwareprogramme des Systems zu.
- Die Erfindung betrifft außerdem eine Vorrichtung zur Ausführung der verschiedenen Varianten des Verfahrens gemäß der Erfindung in Verbindung mit einem Datenverarbeitungssystem, das wenigstens eine Zentraleinheit, einen Hauptspeicher, Eingabe- und/oder Ausgabeperipheriegeräte, ein Betriebssystem und wenigstens ein Anwendungsprogramm enthält, wobei die Vorrichtung dadurch gekennzeichnet ist, daß sie außerdem eine Beobachtungsschnittstelle enthält, die umfaßt:
- - Mittel, die Erfassungseinrichtungen für momentane Information bilden,
- - Mittel zum Verarbeiten der momentanen Informationen,
- - Mittel zum Speichern der momentanen Information vor oder nach der Verarbeitung,
- - Mittel zum Lesen der gespeicherten Information, auf die von außerhalb des beobachteten momentan ausgeführten Anwendungsprogramms zugegriffen werden kann.
- Vorteilhaft sind bestimmte Mittel, die Erfassungseinrichtungen bilden, dem Hauptspeicher und/oder den Eingabe- und/oder Ausgabeperipheriegeräten beispielsweise in Form von Leseeinrichtungen für den Hauptspeicher und/oder in Form eines Tastaturfilters, in Form einer Leseeinrichtung für den Bildschirmspeicher und/oder in Form von Leseeinrichtungen für die Maus und/oder in Form einer Leseeinrichtung des Drucker-Pufferspeichers und/oder eines Modems zugeordnet.
- Außerdem enthält in einer weiteren Ausführungsform der Erfindung die Beobachtungsschnittstelle Mittel zum Lesen und/oder zum Schreiben im beobachteten Anwendungsprogramm, auf die von außerhalb desselben zugegriffen werden kann.
- Die Erfindung wird nun mit Bezug auf die beigefügte Zeichnung beschrieben, in der:
- - Fig. 1 ein herkömmliches Datenverarbeitungssystem zeigt, in dem das Verfahren gemäß der Erfindung ausgeführt werden kann,
- - Fig. 2 ein Prinzipschaltbild zeigt, das das Beobachtungsverfahren gemäß der Erfindung veranschaulicht,
- - und Fig. 3 ein Schema von Speichertabellen zeigt, die für die Ausführung des Verfahrens gemäß der Erfindung verwendet werden.
- Das in Fig. 1 gezeigte Datenverarbeitungssystem mit herkömmlicher Einheitsarchitektur enthält eine Zentraleinheit U.C. 10 und einen Hauptspeicher 12, der seinerseits in einen Festwertspeicher (ROM) 14 und einen Schreib-Lese-Speicher (RAM) 16 unterteilt ist, die über einen internen Kommunikationsbus 18 geeignet verbunden sind. Das zentrale Untersystem 10, 12 des Datenverarbeitungssystems kommuniziert mit einer Gesamtheit von Eingabe- und/oder Ausgabeperipheriegeräten UTIL, auf die der Anwender/die Bedienungsperson des Systems über eine Eingabe/Ausgabeeinheit I/O 20, die an den Bus 18 angeschlossen ist, zugreifen kann. In einem nicht beschränkenden Beispiel sind für die Bildung der Gesamtheit UTIL vier Peripheriegerät- Typen dargestellt worden, genauer eine Tastatur 22 (Eingabe), ein Bildschirm 24 (Eingabe/Ausgabe), eine Hilfsplattenspeichereinheit 26 (Eingabe/Ausgabe) und ein Drucker 28 (Ausgabe).
- In völlig herkömmlicher Weise ist das Management der Eingabeund Ausgabeperipheriegeräte durch eine Gesamtheit von Programmen, die Betriebssystem OS genannt wird, das in den Schreib- Lese-Speicher 16 mit Hilfe von im Festwertspeicher 14 vorhandenen Initialisierungsprogrammen geladen worden ist, gewährleistet. In den Schreib-Lese-Speicher sind außerdem ein oder mehrere Anwendungsprogramme APP geladen, die je nach den Eigenschaften des Systems im Einzelbetrieb oder im Simultanbetrieb ausgeführt werden können. In jedem Fall erfolgt das Management der Gesamtheit von Wechselwirkungen INTER zwischen dem Benutzer, den Peripheriegeräten UTIL und dem Anwendungsprogramm APP durch das Betriebssystem OS.
- Fig. 2 zeigt das Prinzipschaltbild, das das Unterstützungsverfahren gemäß der Erfindung veranschaulicht.
- Im oberen Teil von Fig. 2 sind die drei Diagrammblöcke UTIL 22, OS 24 und APP 26 als Elemente des obenbeschriebenen Datenverarbeitungssystems gezeigt. Außerdem erfolgt die Gesamtheit der Wechselwirkungen zwischen dem Anwender und dem Anwendungsprogramm APP 26 - über den Umweg der Peripheriegeräte UTIL 22
- - über den Kanal INTER (der durch den Doppelpfeil 28 dargestellt ist), der einen Teil des Betriebssystems OS 24 bildet.
- Gemäß der Erfindung enthält eine Beobachtungsschnittstelle 30 Mittel, die Erfassungseinrichtungen 32 für Einheiten momentaner Information bilden. Diese Erfassungseinrichtungen 32, die in Fig. 2 schematisch gezeigt sind, sind dem Hauptspeicher und den Eingabe- und Ausgabeperipheriegeräten des Systems zugeordnet. Sie liegen insbesondere in Form von Programmen und/oder Schaltungen vor, die die Funktionen einer Leseeinrichtung für den Hauptspeicher, eines Tastaturfilters, einer Leseeinrichtung für den Bildschirmspeicher, einer Leseeinrichtung für die Maus, einer Leseeinrichtung für den Drucker-Pufferspeicher und/oder für das Modem erfüllen können.
- Neben den Erfassungseinrichtungen 32 enthält die Beobachtungsschnittstelle 30 Mittel 34 zur Verarbeitung der momentanen Information, Mittel zum Speichern dieser momentanen Information vor oder nach der Verarbeitung, die aus einer Steuereinrichtungsschaltung 36 und aus einem Beobachtungsspeicher MO 38 des Typs Schreib-Lese-Speicher gebildet sind, und ein Steuermodul 40, das die Mittel für den Zugriff auf den Beobachtungsspeicher 38, insbesondere Mittel zum Lesen dieses Speichers, auf der Grundlage von anderen Anwendungen, die in das System insbesondere vom Betriebssystem 24 selbst geladen worden sind, und von Dienstprogrammen SER 42 wie beispielsweise ein Selbstschulungsprogramm für den Benutzer und ein Programm zur Auflösung von Störungen, enthält. Wie in Fig. 2 gezeigt ist, steht das Steuermodul 40 mit dem Betriebssystem 24 und mit den Dienstprogrammen SER 42 bidirektional in Verbindung. Insbesondere enthält es außerdem Schreibmittel, die ihm ermöglichen,
- Informationen und/oder Befehle direkt zum Anwendungsprogramm 26 zu schicken.
- Der Beobachtungsspeicher 38 ist in Fig. 3 schematisch dargestellt. Er enthält eine Zustandstabelle TE, die den momentanen Zustand der momentan ausgeführten Anwendung in ihrem datentechnischen Kontext sowie frühere Zustandstabellen TANT (TANT1 bis TANTN), in denen die Informationen, die bestimmten Rubriken entsprechen, zeitlich angeordnet sind, um eine Historie zu bilden.
- Die Zustandstabellen TE und TANT sind in Hauptfelder (z. B. das Feld Funktion oder FO) strukturiert, die ihrerseits in Rubriken (a, b, ..., 1, j, k, ...) unterteilt sind. Die Rubriken sind in der Tabelle TE mit einer Null gekennzeichnet (z. B. ao, bo) oder in der Tabelle TANTI mit einem Index -i (z. B. a-n, b-n für die Tabelle TANTN) gekennzeichnet. In dem hier beschriebenen nicht beschränkenden Beispiel werden die folgenden Hauptfelder verwendet:
- 1/ Funktion (FO): definiert durch die Liste der letzten vom beobachteten Programm APP ausgeführten Funktionen und der laufenden oder der bald ausgeführten Funktionen zusammen mit ihrem Kontext (z. B. die Parameter der Funktionen), die Rück sprungadressen in das Programm, die zugeordneten Unterbrechungen usw.);
- 2/ Zentralsystem (SC): definiert durch den Zustand bestimmter Stapel, Register und Zonen des Speichers des Zentralsystems (Zentraleinheit und Hauptspeicher);
- 3/ Eingang (EN): definiert durch die letzten Daten, die von den Eingabeperipherieeinrichtungen mit ihrem Kontext (z. B. die Fehler- und/oder Validitätstests) empfangen wurden;
- 4/ Ausgang (SO): definiert durch die letzten Daten, die an die Ausgabeperipherieeinrichtungen mit ihrem Kontext geschickt werden;
- 5/ Zeitmesser (CH): definiert durch die Informationen, die mit dem Zeitbegriff in Verbindung stehen (Geschwindigkeit der Ausführung, der Übertragung, der Synchronisation usw.);
- 6/ Träger (SU): definiert durch die Informationen, die den Datenauswertungskontext des beobachteten Programms APP, insbesondere den Hardware- und den Softwareträger des Programms APP betreffen, beispielsweise die Konfiguration des Systems, die verfügbaren und/oder für die Anwendung APP notwendigen Speicherräume, die Spannungswerte an bestimmten Punkten des Datenverarbeitungssystems, der Benutzer-Zugriffscode usw.
- Somit sind sämtliche Rubriken der Tabellen, die jeweils einer wohldef inierten Informationseinheit entsprechen, in einem im voraus erstellten Raster im Beobachtungsspeicher MO angeordnet, um die Tabellen TE und TANT zu bilden. Es ist anzumerken, daß die früheren Zustandstabellen TANT nicht alle in der Tabelle TE vorgesehenen Rubriken enthalten, sondern im allgemeinen auf die Rubriken beschränkt sind, für die eine Historie von Nutzen ist. Der Inhalt dieser Rubriken oder bestimmter von ihnen kann von den verschiedenen Dienstprogrammen SER in standardisierter Weise ohne Zeitverlust und ohne Gefahr eines Adressierungsfehlers gelesen werden.
- Das Laden des Beobachtungsspeichers 38 geschieht in der folgenden Weise:
- Die Steuerschaltung 36, der eine Ablaufsteuerung zugeordnet ist, greift für jeden Beobachtungszyklus den Inhalt der Ausgangspuffer der Erfassungseinrichtungen 32 und der Ausgangspuffer der Verarbeitungsschaltung 34 ab und führt dann das Schreiben der abgegriffenen Daten in die Tabelle TE aus. Außerdem nimmt die Steuerschaltung 36 die Aktualisierung der Rubriken der Tabellen TANT vor. Diese Operation wird gemäß zweier verschiedener Prozeduren verwirklicht, die in Abhangigkeit von den Eigenschaften der in der betreffenden Rubrik enthaltenen Information verwendet werden:
- a) - Im Fall von Informationen mit sequentiellem oder kontinuierlichem Charakter (z. B. ein von einer Erfassungseinrichtung gemessener Wert) wird eine Reaktualisierung der betreffenden Rubriken automatisch durch Verschiebung in jedem neuen Beobachtungszyklus ausgeführt. Beispielsweise löst die Schreibreihenfolge des neuen Werts der einen Zähler-Zeitmesser betreffenden Rubrik (50) automatisch die vorherige Übertragung des in "so" enthaltenen Werts an die Rubrik "s-1" der Tabelle TANT1usw. bis zur Tabelle TANTN aus.
- - Im Fall von Informationen mit Zufallscharakter, beispielsweise am Ende der Ausführung einer Funktion oder eines vorgegebenen Befehls, wird die Aktualisierung der Tabellen TANT nur nach Erfassung einer Differenz zwischen dem neuen Wert, der als Inhalt der betreffenden Rubrik (beispielsweise einer Rubrik des Feldes FO) zu verwenden ist, und dem tatsächlichen Wert des Inhalts dieser Rubrik ausgeführt.
- Während jedes Beobachtungszyklus und als Folge der Aktualisierungsphase kann auf die Tabellen TE und TANT durch das Betriebssystem OS und durch die Dienstprogramme SER über eine geeignete Schaltung des Steuermoduls 40 zum Lesen zugegriffen werden.
- Es werden nicht sämtliche Rohinformationen, die von den Erfassungseinrichtungen 32 abgegriffen werden, automatisch in den Beobachtungsspeicher 38 eingegeben. Bestimmte werden als Basisdaten für die Verarbeitungsmittel 34 verwendet, die Funktionen ausführen können, die nach dem Belieben des Entwurfsingenieurs der Schnittstelle sehr verschieden sein können (Arithmetikoperationen, Statist ikoperationen, Codierungs- und Decodierungsoperationen, Logikunterbrechungsoperationen usw.).
- Die geeignete Verwendung der Verarbeitungsmittel 34 ermöglicht einerseits die Einsparung von Raum im Beobachtungsspeicher und andererseits die Vorverarbeitung bestimmter Rohinformationen, um sie in eine ausgearbeitete Form zu bringen, die von den Dienstprogrammen SER leichter verarbeitbar ist.
- Es ist nützlich anzumerken, daß der Abgriff der vom beobachteten Anwendungsprogramm stammenden Informationen einerseits in nicht störender Weise ausgeführt werden kann (da die Beobachtungsschnittstelle zwischen dem Benutzer und seiner Anwendung APP transparent ist) und andererseits kontinuierlich ausgeführt werden kann, ohne das Eintreten eines Störereignisses abzuwarten (die für das System oder für den Anwender notwendigen Informationen sind somit von vornherein in ihrer Gesamtheit stets verfügbar). In einer Variante des hier beschriebenen Verfahrens gemäß der Erfindung wird automatisch eine Adressentabelle geladen, auf die von außerhalb des beobachteten Programms direkt zugegriffen werden kann und die die momentanen Adressen der Blöcke enthält, die die Ausführung des beobachteten Programms betreffen, insbesondere den Code der momentan ausgeführten Funktion und die Adresse des momentanen Inhalts des Kontexts, der dieser Funktion zugeordnet ist. Diese Organisation des Anwendungsprogramms erleichtert und beschleunigt die Abgriffe durch die Erfassungseinrichtungen 32 der Schnittstelle 30. Die Anwendung kann somit von sich aus und in standardisierter Weise erklären, was sie verarbeitet und in welchem Kontext sie dies tut.
- Um die Darlegung der Erfindung abzuschließen, wird im folgenden ein Beispiel der Beobachtung einer gewöhnlichen Büroanwendung, eines Textverarbeitungsprogramms, über die Beobachtungsschnittstelle gemäß der Erfindung angegeben. In diesem Anwendungsbeispiel ist der Schnittstelle ein Dienstprogramm zugeordnet, das durch ein Expertensystem zur Selbstschulung des Anwenders für diese Anwendung gebildet ist.
- Ein häufiger Bedienungsfehler bei den nicht professionellen Anwendern von Textverarbeitungen ist die ungewollte oder unkontrollierte Aktivierung der Funktion "Gehe zum Ende des Dokuments". Dadurch entsteht ein leerer Bildschirm, der den Anwender verwirrt und diesen letzteren dazu bringt, ein Selbstschulungs-Expertensystem aufzurufen.
- Ab seiner Aktivierung führt das Expertensystem das Lesen der Rubriken des Beobachtungsspeichers MO aus, die es benötigt, um seine Diagnose zu stützen und um dem Anwender das Verschwinden des Texts vom Bildschirm zu erklären. Insbesondere werden die Rubriken gelesen, die
- - der letzten ausgeführten Funktion ("Gehe zum Ende des Dokuments")
- - dem Zustand des Zentralsystems und des Informationsträgers, beispielsweise auf Höhe der Takte und der Spannungen (was zeigt, daß das Datenverarbeitungssystem funktionsfähig ist),
- - dem allgemeinen Ausführungszustand der Anwendung (Fehlen eines Hinweises einer fehlerhaften Operation, z. B.: "Datei unlesbar" oder "unzureichende Speicherkapazität")
- entsprechen
- Die Verarbeitung dieser in der Beobachtungsschnittstelle gelesenen Informationen ermöglicht dem Expertensystem, auf die unerwartete Aktivierung des Befehls "Gehe zum Ende des Dokuments" zu schließen und durch eine Nachricht auf dem Bildschirm zu erklären, daß der Anwender seinen Text nach unten verschoben hat und daß er somit das Ende des Dokuments erreicht hat.
- In dem Fall, in dem der Anwender die Rückkehr in den früheren Zustand wünscht, sucht das Expertensystem im Beobachtungsspeicher die zuletzt eingetippten Daten vor der fehlerhaften Bedienung, z. B. "ABCD", und nutzt diese, um den Cursor wieder an der früheren Position zu positionieren. Bei mehreren Lösungen (im Fall eines Textes mit Wiederholungen) schlägt das Expertensystem dem Anwender die verschiedenen Möglichkeiten vor.
- Im allgemeinen ist das Selbstschulungs-Expertensystem kraft des Verfahrens zur Beobachtung der Ausführung eines Programms gemäß der Erfindung und kraft seiner Vorrichtung zur Ausführung in der Lage, die am häufigsten verwendeten Funktionen, die Funktionen, die anstelle einer anderen Funktion verwendet werden, und die gut oder schlecht geschriebenen Daten zu analysieren und eventuell an die Anwendung Befehle auszugeben (Neupositionierung des Cursors, Befehle zur Ausführung von Demonstrationsfunktionen usw.), wobei das Steuermodul in diesem letzteren Fall im Schreibmodus arbeitet.
- Die Erfindung ist außerdem sehr vorteilhaft mit einem Expertensystem des Typs verwendbar, der die Diagnose und die Auflösung von Störungen im System unterstützt, insbesondere im Rahmen der partizipativen Wartung. Auch hier führt das Diagnose-Expertensystem entsprechend seinem Bedarf das Lesen von Informationen bezüglich des globalen Zustands des Systems und seiner Historie im Beobachtungsspeicher aus. Hierzu ist es häufig günstig, das Steuermodul 40 im Schreibmodus im Betriebssystem 24 und/oder in der Anwendung zu betreiben und Informationen und/oder Ausführungsbefehle (z. B. Funktionstest-Befehle) zu schicken. Die Beobachtung durch die Schnittstelle 30 der Ausführungsbedingungen dieser Befehle ermöglicht die Erstellung einer schnellen und präzisen Diagnose bezüglich der Störung. Es ist gleichermaßen möglich, das Steuermodul 40 im Schreibmodus zu verwenden, um die Befehle zum Zurücksetzen in den Betriebszustand des Datenverarbeitungssystems zu schicken.
- Schließlich wird angemerkt, daß die in den Tabellen des Speichers 38 verfügbaren Informationen an wohlbestimmten Adressen angeordnet sind und ohne Unterschied für mehrere Expertensysteme oder Betriebssysteme oder weitere Dienstprogramme zugänglich sind.
Claims (18)
1. Verfahren zum Beobachten der Ausführung eines
Programms, das in ein Datenverarbeitungssystem geladen ist, das
ein Betriebssystem (OS), ein Anwendungsprogramm (APP) und ein
bezüglich des Anwendungsprogramms externes Dienstprogramm
(SER) für den Zugriff auf einen Beobachtungsspeicher enthält,
wobei das Verfahren dadurch gekennzeichnet ist, daß es die
folgenden Schritte enthält:
- Abgreifen von das momentan ausgeführte Programm und
eventuell seinen Datenauswertungskontext betreffenden
momentanen Informationseinheiten an vorgegebenen Punkten des
Datenverarbeitungssystems;
- Speichern einer Auswahl der Informationseinheiten gemäß
einer im voraus erstellten Zustandstabelle (TE);
- Zulassen des Zugriffs auf die Zustandstabelle (TE),
insbesondere zum Lesen durch das bezüglich des beobachteten
momentan ausgeführten Programms externe Dienstprogramm (SER);
- automatisches Laden einer Adressentabelle, auf die von
außerhalb des beobachteten Anwendungsprogramms zugegriffen
werden kann und die die momentanen Adressen von
Informationsblöcken, die auf das Anwendungsprogramm bezogen sind, enthält;
- Organisation einer im Lese- oder Schreibmodus arbeitenden
Dienstzone im Speicher ausgehend von dem bezüglich des
beobachteten Anwendungsprogramms externen Dienstprogramm (SER),
um die Eingabe und die Ausgabe von das beobachtete
Anwendungsprogramm oder seinen Datenauswertungskontext betreffenden
Informationen oder Befehlen zu ermöglichen.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß
es außerdem die folgenden Schritte enthält:
- Einordnen der Zustandstabelle (TE) in ein zeitliches
Bezugssystem in bezug auf das beobachtete momentan ausgeführte
Programm und Halten des Inhalts der Zustandstabelle (TE)
während eines Zeitintervalls, das wenigstens gleich einer
vorgegebenen Dauer ist und momentaner Beobachtungszyklus
genannt wird;
- automatisches Aktualisieren der gesamten Zustandstabelle
(TE) oder eines Teils derselben durch aufeinanderfolgende
Abgriffe in jedem neuen Beobachtungszyklus.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß
es außerdem einen Schritt des Speicherns aller
Zustandstabellen (TE) oder eines Teils derselben, die den dem momentanen
Zyklus vorhergehenden Beobachtungszyklen entsprechen, in einer
zeitlich geordneten Struktur früherer Zustandstabellen (TANT1
bis TANTN).
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß
das automatische Laden der Tabellen (TANT1 bis TANTN) durch
Verschieben in jedem neuen Beobachtungszyklus verwirklicht
wird.
5. Verfahren nach irgendeinem der vorangehenden
Ansprüche, dadurch gekennzeichnet, daß die Zustandstabelle (TE)
anhand von Hauptfeldern strukturiert ist, die ihrerseits in
Rubriken unterteilt sind.
6. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß der Schritt der Aktualisierung der
Tabellen (TANT1 bis TANTN) nur dann ausgeführt wird, wenn
zwischen dem im Inhalt der Rubrik zu berücksichtigenden neuen
Wert und dem momentanen Wert des Inhalts der Rubrik eines
Feldes eine Differenz festgestellt wird.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß
die Zustandstabelle (TE) wenigstens ein aus den folgenden
Feldern gewähltes Hauptfeld enthält:
- Funktion (FO): definiert durch die Liste der letzten vom
Programm ausgeführten Funktionen und der laufenden oder der
bald ausgeführten Funktionen und durch ihren Kontext;
- Zentralsystem (SC): definiert durch den Zustand bestimmter
Stapel, Register und Zonen des Speichers des Zentralsystems;
- Eingang (EN): definiert durch die letzten Daten, die von
den Eingangsperipherieeinrichtungen mit ihrem Kontext
empfangen wurden;
- Ausgang (SO): definiert durch die letzten Daten, die an
die Ausgangsperipherieeinrichtungen mit ihrem Kontext gesendet
werden;
- Zeit (CH): definiert durch Informationen oder Analysen,
die die Zeitfunktion verwenden;
- Träger (SU): definiert durch die Informationen, die den
Hardware- und den Softwareträger des beobachteten Programms
betreffen.
8. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß es auf Höhe des Betriebssystems
des Datenverarbeitungssystems in für das beobachtete Programm
transparenter Weise ausgeführt wird.
9. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß es einen Schritt der Verarbeitung
einer Informationseinheit gemäß im voraus erstellter
Prozeduren
sowie die Speicherung von verarbeiteten
Informationseinheiten in dem im voraus erstellten Raster enthält.
10. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß
die geladene Adressentabelle insbesondere die Adresse des
Codes der momentan ausgeführten Funktion sowie die Adresse des
Inhalts des der Funktion zugeordneten momentanen Kontexts
enthält.
11. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß die Rubriken des Funktionsfeldes
(FO) durch die Parameter von Funktionen, die Adressen für den
Rücksprung in das Programm und die zugeordneten
Wechselwirkungen gebildet sind.
12. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß die Rubriken des Hauptfeldes
Zentralsystem (SC) durch Informationen über die Zentraleinheit
und den Hauptspeicher gebildet sind.
13. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß die Rubriken des Hauptfeldes
Eingang (EN) durch Fehlerprüfungen und Validitätsprüfungen
gebildet sind.
14. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß die Rubriken des Hauptfeldes
Zeitmesser (CH) durch die Informationen gebildet sind, die mit
der Ausführungsgeschwindigkeit, der
Übertragungsgeschwindigkeit und dem Synchronismus in Beziehung stehen.
15. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß die dem Hauptfeld Träger (SU)
zugeordneten Rubriken durch die Systemkonfiguration, den
verfügbaren und für die Anwendung (APP) notwendigen
Speicherplatz, die Spannungswerte an einem bestimmten Punkt des
Datenverarbeitungssystems
und den Anwenderzugriffscode gebildet
sind.
16. Vorrichtung zum Ausführen des Verfahrens nach einem
der vorangehenden Ansprüche in Verbindung mit einem
Datenverarbeitungssystem, das wenigstens eine Zentraleinheit (10),
einen Hauptspeicher (12), wenigstens eine Eingangs- und/oder
Ausgangsperipherieeinrichtung (22), die mit der Zentraleinheit
Daten austauscht, ein Betriebssystem (OS), wenigstens ein
momentan ausgeführtes Anwendungsprogramm (APP) und ein
bezüglich des Anwendungsprogramms externes Dienstprogramm (SER)
aufweist, wobei die Vorrichtung dadurch gekennzeichnet ist,
daß sie außerdem eine Beobachtungsschnittstelle (30) enthält,
die umfaßt:
- Erfassungseinrichtungen (32), die Puffer für die
momentanen Informationen enthalten, wobei die Sensoren dem
Hauptspeicher oder den Eingangs- oder
Ausgangsperipherieeinrichtungen des Systems zugeordnet sind,
- Verarbeitungsmittel (34) für die momentane Information,
die Puffer enthalten,
- eine Steuerschaltung (36), der eine Ablaufsteuerung
zugeordnet ist, um in jedem Beobachtungszyklus den Inhalt der
Puffer abzufragen,
- Speichermittel (38) für die momentane Information vor oder
nach der Verarbeitung, die den Beobachtungsspeicher bilden,
- Lesemittel (40) für die gespeicherte Information, auf die
von außerhalb des beobachteten momentan ausgeführten
Anwendungsprogramms zugegriffen werden kann.
17. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet,
daß die die Erfassungseinrichtungen (32) bildenden Mittel die
Form einer Leseeinrichtung für den Hauptspeicher oder eines
Tastaturfilters oder einer Leseeinrichtung für den
Bildschirmspeicher oder einer Leseeinrichtung für die Maus oder
einer Leseeinrichtung des Drucker-Pufferspeichers oder eines
Modems besitzen.
18. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet,
daß die Beobachtungsschnittstelle Mittel (40) zum Lesen oder
Schreiben im beobachteten Anwendungsprogramm enthält, auf die
von außerhalb desselben zugegriffen werden kann.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR8909158A FR2649507B1 (fr) | 1989-07-07 | 1989-07-07 | Procede d'observation de l'execution d'un programme charge dans un systeme informatique et dispositif pour la mise en oeuvre dudit procede |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69031581D1 DE69031581D1 (de) | 1997-11-20 |
DE69031581T2 true DE69031581T2 (de) | 1998-03-26 |
Family
ID=9383574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69031581T Expired - Fee Related DE69031581T2 (de) | 1989-07-07 | 1990-07-03 | Verfahren zur Beobachtung eines in ein Rechnersystem geladenen Programms und Vorrichtung zur Durchführung des besagten Verfahrens |
Country Status (8)
Country | Link |
---|---|
US (1) | US6151687A (de) |
EP (1) | EP0407295B1 (de) |
JP (1) | JP3031559B2 (de) |
KR (1) | KR940002275B1 (de) |
AT (1) | ATE159359T1 (de) |
CA (1) | CA2020504C (de) |
DE (1) | DE69031581T2 (de) |
FR (1) | FR2649507B1 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05341819A (ja) * | 1991-02-05 | 1993-12-24 | Mitsubishi Electric Corp | Sfcプログラムのデバッグ装置及びデバッグ方法 |
US5339261A (en) * | 1992-10-22 | 1994-08-16 | Base 10 Systems, Inc. | System for operating application software in a safety critical environment |
US6380730B1 (en) * | 2000-07-12 | 2002-04-30 | Credence Systems Corporation | Integrated circuit tester having a program status memory |
CA2393196C (en) * | 2002-07-11 | 2005-10-04 | Corel Corporation | System and method for preflighting documents |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4205370A (en) * | 1975-04-16 | 1980-05-27 | Honeywell Information Systems Inc. | Trace method and apparatus for use in a data processing system |
US4315311A (en) * | 1975-10-28 | 1982-02-09 | Compagnie Internationale Pour L'informatique Cii-Honeywell Bull (Societe Anonyme) | Diagnostic system for a data processing system |
US4740895A (en) * | 1981-08-24 | 1988-04-26 | Genrad, Inc. | Method of and apparatus for external control of computer program flow |
US4503495A (en) * | 1982-01-15 | 1985-03-05 | Honeywell Information Systems Inc. | Data processing system common bus utilization detection logic |
US4462077A (en) * | 1982-06-24 | 1984-07-24 | Bell Telephone Laboratories, Incorporated | Trace facility for use in multiprocessing environment |
JPS60129851A (ja) * | 1983-12-19 | 1985-07-11 | Fujitsu Ltd | ログ・デ−タ分類付け収集処理方式 |
US5103394A (en) * | 1984-04-30 | 1992-04-07 | Hewlett-Packard Company | Software performance analyzer |
JPS6191736A (ja) * | 1984-10-11 | 1986-05-09 | Nec Corp | 主記憶履歴情報の編集出力方式 |
US4813009A (en) * | 1984-11-02 | 1989-03-14 | Tektronix, Inc. | Method and apparatus for determining internal status of a processor |
JPH0731615B2 (ja) * | 1986-04-18 | 1995-04-10 | 日本電気株式会社 | 情報処理装置 |
US4953084A (en) * | 1987-11-16 | 1990-08-28 | Hewlett-Packard Company | Method and apparatus using variable ranges to support symbolic debugging of optimized code |
US5067107A (en) * | 1988-08-05 | 1991-11-19 | Hewlett-Packard Company | Continuous computer performance measurement tool that reduces operating system produced performance data for logging into global, process, and workload files |
-
1989
- 1989-07-07 FR FR8909158A patent/FR2649507B1/fr not_active Expired - Fee Related
-
1990
- 1990-07-03 EP EP90401925A patent/EP0407295B1/de not_active Expired - Lifetime
- 1990-07-03 DE DE69031581T patent/DE69031581T2/de not_active Expired - Fee Related
- 1990-07-03 AT AT90401925T patent/ATE159359T1/de not_active IP Right Cessation
- 1990-07-05 CA CA002020504A patent/CA2020504C/fr not_active Expired - Fee Related
- 1990-07-06 JP JP2179391A patent/JP3031559B2/ja not_active Expired - Lifetime
- 1990-07-07 KR KR1019900010354A patent/KR940002275B1/ko not_active IP Right Cessation
-
1993
- 1993-09-10 US US08/118,773 patent/US6151687A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0407295B1 (de) | 1997-10-15 |
CA2020504A1 (fr) | 1991-01-08 |
KR940002275B1 (ko) | 1994-03-19 |
ATE159359T1 (de) | 1997-11-15 |
JPH03118642A (ja) | 1991-05-21 |
FR2649507A1 (fr) | 1991-01-11 |
EP0407295A1 (de) | 1991-01-09 |
DE69031581D1 (de) | 1997-11-20 |
JP3031559B2 (ja) | 2000-04-10 |
FR2649507B1 (fr) | 1994-07-08 |
KR910003506A (ko) | 1991-02-27 |
US6151687A (en) | 2000-11-21 |
CA2020504C (fr) | 1995-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69720821T2 (de) | Fehlersuchsystem für Programme mit einer graphischen Benutzerschnittstelle | |
DE69735628T2 (de) | Verfahren und system zum auswählen eines informationssatzes in einem informationsverarbeitungssystem und lokale station in einem solchen system | |
DE3889645T2 (de) | Methode, um eine dynamische belehrende Anzeige bereitzustellen. | |
DE69831732T2 (de) | Verfahren und gerät zum korrigieren von fehlern in einem rechnersystem | |
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE2328058C2 (de) | Fehlerdiagnoseeinrichtung in einer digitalen Datenverarbeitungsanordnung | |
DE1499182C3 (de) | Datenspeichersystem | |
DE2244402A1 (de) | Datenverarbeitungsanlage | |
DE69032689T2 (de) | Rechnersysteme mit einer Prozessdatenbank und Verfahren zur Benutzung in diesen Systemen | |
DE2737353A1 (de) | Verfahren zum testen der adressbildung in einem dv-system und vorrichtung zur durchfuehrung des verfahrens | |
DE1285219B (de) | Steuerwerk zur Ausfuehrung von Unterprogrammen | |
DE69908446T2 (de) | Programmfehlerbeseitigung | |
DE69701993T2 (de) | Beständiges heap für dynamische bildobjekte | |
DE2350229A1 (de) | Datenverarbeitungsanlage, insbesondere als steuereinrichtung fuer fernsprechvermittlungsanlagen | |
DE60010847T2 (de) | Verfahren zur Fehlerbeseitigung in einem Thread-Programm | |
DE69814750T2 (de) | Logikanalysator zur Erkennung der Übereinstimmung einer Abtastungsprobe mit einem Quellcodebefehl | |
DE3518818A1 (de) | Datenverarbeitungsvorrichtung und verfahren und vorrichtung zur umsetzung von datenelementen | |
DE69031581T2 (de) | Verfahren zur Beobachtung eines in ein Rechnersystem geladenen Programms und Vorrichtung zur Durchführung des besagten Verfahrens | |
DE2458259A1 (de) | Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen | |
DE3037475A1 (de) | Schnittstellenschaltungsanordnung fuer eine datenverarbeitungsanlage | |
DE4135278C2 (de) | ||
DE3235264C2 (de) | ||
DE69026048T2 (de) | Überwachungsgerät zur selektiven Feststellung von einem Signalzustand in einem Betriebssystem | |
DE69428343T2 (de) | Verbesserter endlicher Zustandsautomat für eine Prozesssteuerung | |
DE3586695T2 (de) | Selbstpruefendes datenverarbeitungssystem mit pruefmasterarbitrierung. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |