[go: up one dir, main page]

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 Verfahrens

Info

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
Application number
DE69031581T
Other languages
English (en)
Other versions
DE69031581D1 (de
Inventor
Gerard Claes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SAS
Original Assignee
Bull SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bull SAS filed Critical Bull SAS
Application granted granted Critical
Publication of DE69031581D1 publication Critical patent/DE69031581D1/de
Publication of DE69031581T2 publication Critical patent/DE69031581T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3604Analysis of software for verifying properties of programs
    • G06F11/3612Analysis of software for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/366Debugging of software using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data 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.
DE69031581T 1989-07-07 1990-07-03 Verfahren zur Beobachtung eines in ein Rechnersystem geladenen Programms und Vorrichtung zur Durchführung des besagten Verfahrens Expired - Fee Related DE69031581T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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