-
Verfahren und Schaltungsanordnung zum überwachen des ord-
-
nun#sgemäßen Ablaufs eines Programms.
-
Die Erfindung bezieht sich auf ein Verfahren und eine Schaltungsanordnung
zum Uberwachen des ordnungsgemäßen Ablaufs eines Programms, welches aus einer Reihe
von gegebenenfalls mehrfach auszuführenden Unterprogrammen besteht, und zur Abgabe
eines Fehlermeldesignals bei Feststellen eines fehlerhaften Programmablaufs, in
einer im Echtzeitbetrieb arbeitenden Datenverarbeitungsanlage, unter Verwendung
von in die Folge auszuführender Programmbefehle eingefügten Prüfbefehlen, deren
Auftreten überwacht wird.
-
Es sind bereits ein Verfahren und eine Schaltungsanordnung zum Uberwachen
des ordnungsgemäßen Ablaufs eines Programms vorgeschlagen worden (DE-Anm. P 28 46
040.4), welches aus einer Reihe von Programmschritten besteht, die durch Adressen
eines Programmschrittzählers festgelegt werden, wobei ein Fehlermeldesignal dann
abgegeben wird, wenn ein fehlerhafter Programmablauf festgestellt
wird.
Zu diesem Zweck wird wenigstens eine festlegbare Zählerstellung des Programmschrittzählers
für eine Inbetriebsetzung eines insbesondere durch einen Zähler gegebenen tJberwachungszeitgliedes
und nach dessen Inbetriebsetzung für ein Zurücksetzen dieses Uberwachungszeitgliedes
in eine Ausgangsstellung herangezogen. Ein bei Erreichen einer anderen Einstellung,
insbesondere der Endstellung, des Uberwachungszeitgliedes abgegebenes Ausgangssignal
wird dann für eine Fehleranzeige und gegebenenfalls für eine Stillsetzung des weiteren
Programmablaufs herangezogen. Obwohl auf diese Art und Weise auf relativ einfache
Weise der ordnungsgemäße Ablauf eines Programms überwacht werden kann, ohne daß
gesonderte Zustände überwacht werden müssen, die im Zuge des normalen Programmablaufs
zu erwarten sind, eignet sich die betreffende Programmüberwachung Jedoch nicht ohne
weiteres in den Fällen, in denen umfangreiche Programme abzuwickeln sind.
-
Es sind ferner bereits ein Verfahren und eine Schaltungsanordnung
zum überwachen des ordnungsgemäßen Ablaufs eines Programms vorgeschlagen worden
(DE-Anm. P 28 46 053.9), wobei zwischen wenigstens zwei aufeinanderfolgend auszuführenden
Programmschritten ein gesonderter t;berwachungs Programmschritt ausgeführt wird,
durch dessen erstmaliges Ausführen ein Zeitglied derart in Betrieb gesetzt wird,
daß es lediglich bei erneutem Auftreten des betreffenden Uberwachungs-Programmschritts
in seinem Betriebszustand gehalten wird und erst bei Ausbleiben des betreffenden
Uberwachungs-Programmschritts innerhalb einer wählbaren Ablaufzeit zur Abgabe eines
Fehlermeldesignals führt. Obwohl hierdurch eine einfache Uberwachung des ordnungsgemäßen
Ablaufs eines Programms möglich ist, eignet sich diese bekannte Überwachungsmethode
Jedoch ebenfalls nicht ohne weiteres für Fälle, in denen relativ umfangreiche Programme
auf ihren ordnungsgemäßen Ablauf zu überwachen sind.
-
Der Erfindung liegt demgemäß die Aufgabe zugrunde, einen Weg zu zeigen,
wie besonders umfangreiche Programme auf ihren ordnungsgemäßen Ablauf überwacht
werden können, ohne daß dabei ein allzu hoher Überwachungsaufwand erforderlich ist.
-
Gelöst wird die vorstehend aufgezeigte Aufgabe bei einem Verfahren
der eingangs genannten Art erfindungsgemäß dadurch, daß lediglich die Ubergangsstellen
von einem Unterprogramm zu einem anderen Unterprogramm der im Zuge der Jeweiligen
Programmabwicklung auszuführenden Unterprogrammen Jeweils durch ein eine Parameterangabe
über die Ebene des zugehörigen Unterprogramms in Bezug auf sämtliche gegebenenfalls
abzuwickelnden Unterprogramme und eine Angabe über die Häufigkeit, in der das Jeweilige
Unterprogramm im Zuge des Programmablaufs benutzt wird, aufweisendes Prüfbefehlswort
gekennzeichnet werden und daß die im Zuge der Jeweiligen Programmabwicklung tatsächlich
ermittelten Prüfbefehle als Ist-Befehle für einen Vergleich mit einer vorgegebenen
Soll-Befehlsfolge bereitgestellt werden.
-
Die Erfindung bringt den Vorteil mit sich, daß auf relativ einfache
Weise der ordnungsgemäße Ablauf auch relativ umfangreicher Programme überwacht werden
kann, die aus einer Reihe von gegebenenfalls mehrfach auszuführenden Unterprogrammen
bestehen. Durch die Überwachung gemäß der Erfindung erhält man gewissermaßen eine
sogenannte Grobspur des Programmablaufs, die in vielen Fällen für die Beurteilung
ausreicht, ob der Jeweiligen Programmablauf ordnungsgemäß erfolgt ist oder nicht.
Mit anderen Worten ausgedruckt heißt dies, daß in vorteilhafter Weise besondere
Stellen des Jeweiligen Programmablaufs gesondert markiert sind und daß das Auftreten
dieser Markierungsstellen im Zuge der Jeweiligen Programmabwicklung überwacht wird.
-
Zweckmäßigerweise wird das Auftreten der Prüfbefehle zum Auslösen
einer Unterbrechung in der Datenverarbeitungsanlage und zum Auswerten eines in dem
Jeweiligen Prüfbefehl neben einer Parameterangabe enthaltenen Operationscodeteiles
herangezogen. Hierdurch ergibt sich der Vorteil einer relativ einfachen Ermittelung
der Prüfbefehle in der Folge sämtlicher auftretender Befehle.
-
Vorzugsweise werden durch den Jeweiligen Prüfbefehl Speicherstellen
eines Speichers bezeichnet, in welchem die in dem Jeweiligen Prüfbefehl enthaltenen
genannten Angaben abgespeichert werden. Diese Maßnahme bringt den Vorteil mit sich,
daß die für einen Vergleich bereitzustellenden Parameterangaben auf einfache und
sichere Weise festgehalten werden können.
-
Zur Durchführung des Verfahrens gemäß der Erfindung ist es zweckmäßig,
eine Schaltungsanordnung zu verwenden, die dadurch gekennzeichnet ist, daß mit einem
die im Zuge einer Programmabwicklung insgesamt benutzbaren Unterprogramme enthaltenden
Programmspeicher eine Befehlsbewertungsschaltung verbunden ist, die lediglich bei
Auftreten von die Ubergangsstellen von einem Unterprogramm zu einem anderen Unterprogramm
markierenden, Jeweils eine Parameterangabe über die Ebene des zugehörigen Unterprogramms
in Bezug auf sämtliche gegebenenfalls abzuwickelnden Unterprogramme und eine Angabe
über die Häufigkeit, in der das Jeweilige Unterprogramm im Zuge des Programmablaufs
benutzt wird, aufweisenden Prüfbefehlen Jeweils einen Lesebefehl zum Einlesen der
in dem Jeweiligen Prüfbefehl enthaltenen besonderen Angaben in einen gesonderten
Speicher abgibt, Und daß die in dem Speicher eingespeicherte Folge von besonderen
Angaben aus diesem Speicher als Ist-Angaben auslesbar und mittels eines Vergleichers
mit einer Jeweils vorgegebenen Folge von Soll-Angaben vergleichbar ist. Hierdurch
ergibt sich der Vorteil eines relativ
geringen schaltungstechnischen
Aufwands beim Überwachen des ordnungsgemäßen Ablaufs eines auch umfangreichen Programms.
-
Vorzugsweise gehört die zuvor erwähnte Befehlsbewertungsschaltung
zu einer auf die Zuführung eines entsprechenden Befehls hin selektiv wirksam steuerbaren
Uberwachungsschaltung, die den mit dem genannten Speicher verbundenen Vergleicher
und eine durch diesen Vergleicher steuerbare Fehlerregistriereinrichtung enthält.
Hierdurch ergibt sich der Vorteil eines besonders geringen Aufwands bei der Realisierung
der Schaltungsanordnung gemäß der Erz in dung.
-
Anhand von Zeichnungen wird die Erfindung nachstehend an einem Ausführungsbeispiel
näher erläutert.
-
Fig. 1 zeigt in einem Blockschaltbild eine Schaltungsanordnung gemäß
der Erfindung.
-
Fig. 2 zeigt ein Diagramm, auf welches im Zusammenhang mit der Erläuterung
der Arbeitsweise der in Fig. 1 dargestellten Schaltungsanordnung eingegangen werden
wird.
-
In Fig.1 ist eine im Echt2eitbebjeb artei#nde Datenverarbeitunesanlage
angedeutet, die aus einem zum eigentlichen Betriebssystem BSy gehörenden Zentralprozessor
CPU und aus einem zum eigentlichen Anwender-Programmteil gehörenden Programm-Speicher
PSp besteht. Von dem Betriebssystem BSy sind periphere Einrichtungen PE steuerbar,
die ihrerseits Signale an das Betriebssystem BSy abzugeben vermögen. Die zu dem
Betriebssystem BSy gehörende Zentraleinheit CPU ist mit entsprechenden Anschlüssen
an einer Adreßbusleitung AB, an einer Steuerbusleitung CB bzw. an einer Datenbusleitung
DB angeschlossen.
-
Der eigentliche Programmspeicher PSp der Datenverarbeitungsanlage
mag
in einer Mehrzahl von Moduln Mod1, Mod2 bis ModN aufgegliedert sein. Jeder Modul
kann in eine Anzahl von Modul-Abschnitten untergliedert sein, und Jeder derartige
Modul-Abschnitt kann eine Anzahl von Unterprogrammen umfassen, die auch als Prozeduren
bezeichnet werden. In Fig. 1 ist Jedoch angedeutet, daß der Modul Mod2 bereits derartige
Unterprogramme bzw. Prozeduren umfaßt.
-
Dies sind gemäß Fig. 1 drei Unterprogramme bzw. Prozeduren, die mit
Pr#, Pr1 bzw. Pr2 bezeichnet sind. Diese Unterprogramme bzw. Prozeduren sollen nach
Maßgabe festgelegter Programmierungsanweisungen aufeinanderfolgen ablaufen. Dies
ist in Fig. 1 dadurch angedeutet, daß eine Verzweigung von dem Unterprogramm Pr~
zum Unterprogramm Pr1, ferner eine weitere Verzweigung von diesem Unterprogramm
Pr1 zu dem Unterprogramm Pr2, sodann wieder der Übergang zu dem Unterprogramm Pr1
und schließlich der Ubergang zu dem Unterprogramm Pr~ angedeutet ist. Dies bedeutet,
daß in drei verschiedenen Ebenen liegende Unterprogramme im Zuge der angedeuteten
Programmabwicklung abgewickelt werden. Man spricht in diesem Fall auch davon, daß
das betreffende Programm eine sogenannte Schachteltiefe von drei Ebenen besitzt.
-
Bevor auf den zuvor bereits angedeuteten Programmablauf weiteeingegangen
wird, seien zunächst die schaltungstechnischen Einzelheiten der in Fig. 1 dargestellten
Schaltungsanordnung weiter erläutert. Bezüglich der in dem Programmspeicher PSp
angedeuteten Unterprogramme bzw.
-
Prozeduren ist noch anzumerken, daß die beispielsweise als Register
aufzufassenden Unterprogrammbereiche Pr~, Pr1 und Pr2 eingangsseitig Jeweils mit
einem Adressierungseingang Ae~ bzw. Ae1 bzw. Ae2 gemeinsam an einem Adressierungseingang
Ae des Programmspeichers PSp angeschlossen sein mögen. Dieser Adressierungseingang
Ae ist an einer Adressierungsleitung AL angeschlossen, über die das Betriebssystem
BSy entsprechende Adressen an den Pro-
grammspeicher PSp abgibt.
Ausgangsseitig sind die betreffenden Unterprogrammregister Pr#, Pr1, Pr2 gemeinsam
an einer Datenleitung DL angeschlossen, die über einen Ausgang Dal mit dem Betriebssystem
BSy und über einen weiteren Ausgang Da2 mit der Eingangsseite einer Uberwachungsschaltung
Uw verbunden ist. An dieser Stelle sei noch angemerkt, daß die in den übrigen Moduln
des Programmspeichers PSp enthaltenen Unterprogranimregister mit der Adreßleitung
AL und der Datenleitung DL in entsprechender Weise verbunden sein mögen wie die
in Fig. 1 näher dargestellten und zuvor betrachteten Unterprogrammregister.
-
Die zuvor erwähnte Uberwachungssschaltung Uw umfaßt unter anderem
eine Befehlsbewertungsschaltung Bs, die im vorliegenden Fall im wesentlichen aus
einem Decoder Dec besteht.
-
Diesem Decoder Dec wird eingangsseitig Jeweils ein Teil der auf der
Datenleitung DL auftretenden Information zugeführt.
-
Handelt es sich bei dieser Information um einen Befehl, so besteht
dieser zumindest aus einem Operationscodeteil und aus einem nachfolgenden Operandenteil.
Der Operationscodeteil des über die Datenleitung DL Jeweils übertragenen Befehls
wird in dem Decoder Dec der Befehlsbewertungsschaltung Bs decodiert. Handelt es
sich bei diesem Operationscodeteil um einen ganz bestimmten Operationscodeteil,
auf den der Decoder Dec anzusprechen hat, so gibt dieser Decoder Dec ausgangsseitig
beispielsweise ein Binärsignal "1 n ab, welches zusammen mit einem von dem Betriebssystem
BSy über die Steuerleitung CL abgegebenen entsprechenden binären Steuersignal "1"
dazu führt, daß ein in der Uberwachungsschaltung Uw vorgesehenes UND-Glied GA ausgangsseitig
ein einen Schalter Sw schließendes Steuersignal (~1") abgibt. Damit wird dann der
dem betreffenden Operationscodeteil nachfolgende Operandenteil in einen Speicher
M1 eingeschrieben, der ebenfalls zu der Uberwachungsschaltung Uw gehört.
-
Der Speicher Ml ist ausgangsseitig mit der einen Eingangsseite eines
Vergleichers Com verbunden. Der Vergleicher Com ist eingangsseitig ferner mit dem
Ausgang eines weiteren Speichers M2 verbunden. Ausgangsseitig ist der Vergleicher
Com mit einer beispielsweise durch ein Register Reg gebildeten Registriereinrichtung
verbunden.
-
Nachdem zuvor der Aufbau der in Fig. 1 dargestellten Schaltungsanordnung
erläutert worden ist, sei nunmehr die Arbeitsweise dieser Schaltungsanordnung näher
betrachtet. Dazu sei angenommen, daß von dem Betriebssystem BSy her gerade der Modul
Mod2 des Programmspeichers PSp angesteuert bzw. adressiert wird. Dieser Vorgang
beginnt damit, daß der erste Befehl des Unterprogramms Pr~ aufgerufen wird. Dieser
Befehl ist in Fig. 1 mit P## bezeichnet. Er stellt gewissermaßen den Anfangsbefehl
der nunmehr ablaufenden Befehlsfolge dar. Dieser Befehl P~~ ist durch eine Linksschraffur
als gesonderter Prüfbefehl gekennzeichnet. Damit soll lediglich zum Ausdruck gebracht
sein, daß dieser Befehl für das Überwachen des ordnungsgemäßen Ablaufs des Programms
ausgenutzt wird. Dieser Befehl besteht ebenso wie alle übrigen, in entsprechender
Weise zu berücksichtigenden Prüfbefehle aus einer Parameterangabe über die sogenannte
Schachteltiefe und aus einer Zahlenangabe, die eine Information darüber liefert,
in welcher Häufigkeit die Jeweilige Unterprogrammebene im Zuge des Programmablaufs
angesteuert bzw. benutzt wird.
-
Mit PP ist die erste Unterprogrammebene - die nullte Ebene - bezeichnet,
und mit ~ im Anschluß an P~ ist angegeben, daß im Zuge des betreffenden Programmablaufs
die betreffende Unterprogrammebene das erstemal benutzt wird.
-
Innerhalb des Unterprogramms Pr# werden die Programmbefehle zunächst
soweit ausgeführt, bis der in Fig. 1 ebenfalls durch eine Linksschraffur besonders
markierte Programmbefehl P1~ erreicht ist. Bei diesem Programmbefehl
handelt
es sich ebenfalls um einen Prüfbefehl - also um einen Befehl, der für Prüfzwecke
herangezogen wird. Mit Auftreten dieses Programmbefehls P1~ gelangt man zu dem Unterprogramm
Pr1 hin. Die betreffende Befehisangabe bedeutet, daß die Unterprogrammebene Pr1
das erste Mal erreicht wird.
-
Im Zuge des Unterprogramms Pr1 werden einige Befehle ausgeführt, bis
dort der Befehl P2# erreicht wird, der ebenfalls als Prüfbefehl verwendet wird und
der entsprechend durch eine Linksschraffur hervorgehoben ist. Mit Auftreten dieses
Befehls gelangt man schließlich zu dem Unterprogramm Pr2 hin, welches gemäß Fig.
1 vollständig abgewickelt wird. Am Ende des Unterprogramms Pr2 tritt ein Programmbefehl
P2# auf, der durch eine Rechtsschraffur hervorgehoben ist und der ebenfalls als
Prüfbefehl ausgewertet wird.Nach Auftreten dieses Befehls P2# gelangt der Programmablauf
wieder zu dem Unterprogramm Prl hin. Dieses Unterprogramm Pr1 wird dann vollständig
abgewickelt, wobei der letzte Programmbefehl dieses Unterprogramms Pr1 mit P1# besonders
markiert ist (Rechtsschraffur). Mit Auftreten dieses letzten Befehles gelangt die
Programmabwicklung wieder zu dem Unterprogramm Prgd hin. Dieses Unterprogramm Pr#
wird dann bis zu seinem Ende abgewickelt. Am Ende dieses Unterprogramms Pr# tritt
der Befehl P~~ auf, der ebenfalls durch eine Rechtsschraffur hervorgehoben ist.
Dieser Programmbefehl P~~ bedeutet wie die entsprechend markierten Programmbefehle
P1~ bzw. P2#, daß das Unterprogramm der zugehörigen Unterprogrammebene beendet ist.
-
Sämtliche vorstehend erwähnten besonders markierten Pro grammbefehle
werden nun als Prüfbefehle durch die Überwachungsschaltung Uw überwacht. Da die
betreffenden Prüfbefehle Jeweils einen Operationscodeteil umfassen, auf den der
Decoder Dec der Überwachungsschaltung Uw anspricht,
gelangen die
neben diesem Operationscodeteil Jeweils vorhandenen Operanden über den dann Jeweils
geschlossenen Schalter Sw in den Speicher M1 hinein. Die betreffenden Operanden
umfassen dabei die erwähnten Parameterangaben - das sind die Angaben über die Unterprogrammschachteltiefe
- und die Angaben über die Häufigkeit, in der das Jeweilige Unterprogramm im Zuge
des Programmablaufs benutzt ist. Diese Angaben werden in dem Speicher M1 in der
Reihenfolge ihres Eintreffens als Ist-Angaben gespeichert.
-
Gegebenenfalls können die für die Speicherung dieser Angaben dienenden
Speicherbereiche durch die einzelnen Prüfbefehle selbst bezeichnet werden.
-
Die in dem Speicher M1 enthaltenen Ist-Parameterangaben werden mittels
des Vergleichers Com mit einer vorgegebenen Folge von Soll-Parameterangaben verglichen,
die in dem Speicher M2 abgespeichert sein mögen. In dem dem Vergleicher Com ausgangsseitig
nachgeordneten Register Reg können Fehlermeldungen in dem Fall registriert werden,
daß Abweichungen zwischen den Ist-Angaben und den Soll-Angaben festgestellt werden.
Die so registrierten Fehlermeldungen können zur Korrektur der Befehls-Ablauffolge
herangezogen werden.
-
Bezüglich der vorstehend erwähnten Prüfbefehle, die in der Uberwachungsschaltung
Uw ausgewertet werden, ist noch anzumerken, daß dadurch die Zentraleinheit CPU des
Betriebssystems BSy zur Ausführung einer Unterbrechung angesteuert werden kann,
und zwar über die Datenleitung DL.
-
In Fig. 2 ist ein möglicher Programmablauf unter Einbeziehung von
vier Unterprogrammen bzw. Prozeduren näher veranschaulicht. Dabei erfolgt in der
im Zusammenhang mit Fig. 1 erläuterten Art und Weise zunächst der Einstieg in ein
erstes Unterprogramm, was durch die Para-
meterangabe P~~ markiert
ist. Sodann erfolgt der Ubergang in ein zweites Unterprogramm, was mit P1~ markiert
ist.
-
Anschließend erfolgt der Ubergang in ein weiteres Unterprogramm, was
durch P2# markiert ist. Schließlich erfolgt der Übergang in das vierte Unterprogramm,
was durch die Parameterangabe P5~ markiert ist. Mit der Jeweils letzten Angabe ~#~
in der Jeweiligen Parameterangabe ist zum Ausdruck gebracht, daß die betreffende
Unterprogramm-Ebene bzw. Prozedur-Schachteltiefe das erste Mal erreicht ist.
-
Nachdem gemäß Fig. 2 Programmbefehle des Unterprogramms der Ebene
3 abgewickelt sind, tritt der Prüfbefehl P3~ erneut auf. Dieser Prüfbefehl bedeutet
nunmehr, daß wieder in die nächstniedere Unterprogrammebene 2 übergegangen wird.
Nach Ausführen von Programmbefehlen in dieser Programmebene tritt der Prüfbefehl
P2# auf. Dieser Programmbefehl bedeutet, daß in die nächstniedere Unterprogrammebene
1 übergegangen wird. Nach Ausführen von weiteren Programmschritten bzw. Programmbefehlen
in dieser Unterprogrammebene 1 tritt dann der Prüfbefehl P31 auf.
-
Dieser Prüfbefehl bedeutet den Ubergang in die Unterprogrammebene
3, und zwar nunmehr zum zweiten Mal - dies ist durch die 1 am Ende der Parameterangabe
P31 angedeutet. Nach Ausführen von Programmbefehlen in der Unterprogrammebene 3
tritt wieder ein Prüfbefehl P31 auf, der zur Rückkehr in die Unterprogrammebene
1 führt. Nachdem Programmbefehle in dieser Unterprogrammebene 1 ausgeführt sind,
tritt der Prüfbefehl P1~ auf, durch den angegeben wird, daß in die erste Programmebene
~ zurückgekehrt wird.
-
Nach Ausführen von Programmbefehlen in dieser Unterprogrammebene ~
tritt schließlich der Prüfbefehl P~~ auf.
-
Damit ist das Ende des Programmablaufs erreicht. Die einzelnen Stellen,
an denen die zuvor erwähnten Prüfwörter auftreten, sind in Fig. 2 in Ordinatenrichtung
als Zählerstellungen eines Prozedur-Aufrufzählers markiert. In der Abszissenrichtung
ist in Fig. 2 die Prozedur-Schachtel-
tiefe angegeben. Aus dem
dargestellten Verlauf des Ubergangs von einem Unterprogramm zu einem anderen Unterprogramm
bzw. von einer Prozedur zu einer anderen Prozedur erkennt man dabei, daß gewis#ermaßen
eine Grobspur gezeichnet wird, die sehr wohl eine Aussage über den ordnungsgemäßen
Ablauf eines Programms geben kann. Durch Vergleich der betreffenden aufeinanderfolgenden
Ist-Angaben mit den bereitgestellten Soll-Angaben läßt sich somit der Jeweiligen
Programmablauf auf seine Ordnungsmäßigkeit überwachen.
-
5 Patentansprüche 2 Figuren
Leerseite Leerseite