Beschreibung
Verfahren zum Tracen von Daten
In einer zeitgemäßen Einrichtung zur Verarbeitung von Informationen kommen üblicherweise eine Vielzahl von Informationsverarbeitungsvorgängen - auch 'Prozesse' genannt - auf den in der Einrichtung vorgesehenen prozeßverarbeitenden Einrichtungen, z.B. Prozessoren, zum Ablauf. Hierbei versteht man unter einem Prozeß den Vorgang einer algorithmisch, d.h. in einer Abfolge von einzelnen Informationsverarbeitungschritten, ablaufenden Informationsverarbeitung. Beispiele für Prozesse sind das Editieren von Dateien oder Vermitteln von E-Mails;
Beispiele für Informationsverarbeitungsschritte sind das Öffnen, Drucken und/oder Speichern einer Datei oder das Ändern eines Speicherbereichs im Arbeitsspeicher.
Die Ausführung der Informationsverarbeitungschritte durch einen Prozessor erfolgt unter der Steuerung von Programmen, die aus einer Folge von Anweisungen - auch 'Maschinenbefehle' genannt - bestehen. Hierbei werden durch unterschiedliche Maschinenbefehle unterschiedliche elementare Verarbeitungs- schritte des Prozessors gekennzeichnet. Beispiele für elementare Verarbeitungsschritte sind arithmetische Operationen, z.B. ganzzahlige Addition oder Subtraktion. Durch das Programm wird dem Prozessor somit angezeigt, welche seiner elementaren Verarbeitungsschritte in welcher Reihenfolge er- bracht werden sollen. Zur Durchführung der Informationsverarbeitungschritte werden von den Programmen je nach Art der Informationsverarbeitungschritte unterschiedliche Komponenten einer zeitgemäßen Informationsverarbeitungseinrichtung genutzt. Diese Komponenten werden auch 'Betriebsmittel' ge- nannt. Beispiele für Betriebsmittel sind Drucker, Prozessoren, Speicherplatz oder Dateien. Um eine möglichst optimale Auslastung der Betriebsmittel zu gewährleisten, werden diese üblicherweise gleichzeitig, d.h. wechselseitig oder gemein-
sa , genutzt. Diese Betriebsart der Einrichtung wird 'Mehr¬ programmbetrieb' bzw. 'Multi-Tasking' genannt, d.h. die Ein¬ richtung verarbeitet scheinbar gleichzeitig mehrere Programme. Die Abarbeitung der Programme kann hierbei sequen- tiell, d.h. eines nach dem anderen, oder nebenläufig, d.h. zeitlich ineinander verzahnt, erfolgen. Die verzahnte Abarbeitung von mehreren Programmen wird auch ' Interleaving' genannt .
Da beispielsweise durch die gleichzeitige Benutzung der Betriebsmittel Konflikte entstehen können - beispielsweise, wenn zwei Programme gleichzeitig auf demselben Drucker Daten ausgeben oder gleichzeitig auf eine gleiche Datei schreibend zugreifen möchten - ist zur Verwaltung der Betriebsmittel üb- licherweise ein Betriebssystem vorgesehen. Ein Betriebssystem umfaßt hierbei diejenigen Programme, die unter anderem den Zugriff auf die Betriebsmittel, die zeitliche Reihenfolge der Bearbeitung der in der Einrichtung ablaufenden Programme und die Aufrechterhaltung der Betriebsart steuern und überwachen. Zur Unterscheidung werden diese Steuerungsprogramme 'Betriebssystemprogramme' oder auch 'Systemsoftware' und die auf die Betriebsmittel mit Hilfe der Systemsoftware zugreifenden Programme 'Benutzerprogramme' oder auch 'AnwendungsSoftware' genannt .
Zeitgemäße Prozessoren sehen zur Unterstützung dieser Einteilung der Programme in zwei Klassen üblicherweise zwei Betriebsmodi vor, einen privilegierten Betriebsmodus - auch 'Systemmodus' genannt -, in dem alle Maschinenbefehle ohne Begrenzung ihrer Wirkungsweise ausgeführt werden dürfen, und einem nicht privilegierten Betriebsmodus - auch 'Usermodus' genannt -, in dem einige Maschinenbefehle in ihrer Wirkungsweise begrenzt oder untersagt sind. Beispielsweise sind in dem nicht privilegierten Betriebsmodus diejenigen Maschinen- befehle untersagt, mit denen ein direkter Zugriff auf die Betriebsmittel der Einrichtung bewirkt wird. Üblicherweise kommt die Anwendungssoftware im Usermodus zum Ablauf und die
Systemsoftware im Systemmodus. Von der Anwendungssoftware kann somit nur mit Hilfe der Systemsoftware auf die Betriebsmittel der Einrichtung zugegriffen werden. In den Benutzerprogrammen sind somit keine Programmteile enthalten, die z.B. festlegen, in welchen Speicherzellen eines Arbeitsspeichers die Benutzerprogramme gespeichert werden, wie und wo die Daten der Benutzerprogramme auf Hintergrundspeichern, z.B. Festplatten, abgelegt werden, in welcher Reihenfolge die Be- nutzerprogramme abgearbeitet werden oder wie Benutzerpro- gramme und Daten vor unberechtigten Zugriffen geschützt werden. Diese und weitere Aufgaben, z.B. Verwaltungs-, Steue- rungs- oder Überwachungsaufgaben, werden vom Betriebssystem übernommen. Beispielsweise werden folgende elementare Informationsverarbeitungsschritte vom Betriebssystem bewirkt: - Einlesen eines Zeichens von einer Tastatur
- Ausgeben eines Zeichens auf einen Bildschirm Einlesen eines Programms in einen Speicher
Zur Durchführung der elementaren Informationsverarbeitungs- schritte sind im Betriebssystem unterschiedliche 'Betriebssystemprozeduren' vorgesehen. Prozeduren sind hierbei zu aufrufbaren Einheiten zusammengefaßte Sequenzen von Maschinenbefehlen. Diese werden im allgemeinen von der AnwendungsSoftware aufgerufen. Der Aufruf einer Betriebssystemprozedur er- folgt bei zeitgemäßen Prozessoren üblicherweise mit Hilfe eines Maschinenbefehls, mit dem von dem Prozessor der Ablauf des aufrufenden Programms unterbrochen und zu der Systemsoftware verzweigt wird. Die Unterbrechung wird auch 'Interrupt', der Maschinenbefehl 'SVC (Supervisor-Call) und die aufgeru- fene Betriebssystemprozedur auch 'SVC-Prozedur' genannt. Nach vollständiger Bearbeitung der aufgerufenen Prozedur wird üblicherweise zu dem nächsten, d.h. dem in der Maschinenbefehlsequenz des aufrufenden Programms unmittelbar auf den Maschinenbefehl SVC folgenden Maschinenbefehl des aufrufenden Pro- gramms verzweigt.
Im Hinblick auf möglichst flexible Einsatzmöglichkeiten ent¬ halten Prozeduren üblicherweise variable Anteile - auch 'for¬ male Parameter' genannt -, die meist beim Aufruf der Prozedur von dem aufrufenden Programm durch die Angabe von 'Aufrufpa- rametern' festgelegt werden. Hierbei werden die formalen Pa¬ rameter nach gewissen Regeln, die auch 'Parameterübergabe' genannt werden, durch die Aufrufparameter ersetzt. Nach der Bearbeitung der Prozedur werden dem aufrufenden Programm üb¬ licherweise von der aufgerufenen Prozedur 'Ergebnisparameter' übergeben, die eine durch die Aufgabe der Prozedur bestimmte Information enthalten, z.B. eine Auftragsbestätigung, eine Fehlermeldung oder einen von der Prozedur berechneten oder ermittelten Wert. Hierbei hängt der Wert der berechneten Ergebnisparameter häufig von den Werten der Aufrufparameter ab.
Prozeduren mit formalen Parametern sind in Folge der größeren Flexibilität jedoch fehleranfälliger als Prozeduren ohne formale Parameter. Sie müssen deshalb beim Test von Programmen auf Fehlerfreiheit mit erhöhter Sorgfalt getestet werden. Hierbei sind zwei potentielle Fehlerquellen von besonderer Bedeutung:
(1) Die Werte der Ergebnisparameter der Prozeduren sind im allgemeinen nicht für alle möglichen Wert-Kombinationen der Aufrufparameter definiert. Somit ist zu testen, ob die Prozeduren immer mit zulässigen Wert-Kombinationen der Aufrufparameter aufgerufen werden
(2) Die Prozeduren können logische Codierungsfehler aufweisen. Deshalb ist zu testen, ob von den Prozeduren zu jeder zulässigen Kombination von Eingabewerten das ge- wünschte Ergebnis geliefert wird
Somit ist beim Programmtest, d.h. dem Suchen nach Fehlern in den Programmen, die Protokollierung der Aufruf- und Ergebnisparameter der Prozeduren von zentraler Bedeutung für die Überprüfung der Prozeduren.
Da jedoch wegen der Komplexität zeitgemäßer Programme ein vollständiger Test auf Fehlerfreiheit oft nicht möglich ist,
weisen auch getestete Programme häufig noch Fehler auf, die somit während des Ablaufs der Programme auftreten können. Hierbei haben Fehler in den Prozeduren der Betriebssystempro¬ gramme wegen der beschriebenen zentralen Rolle des Betriebs- Systems im allgemeinen größere Folgen als Fehler in den Be¬ nutzerprogrammen, z.B. den Ausfall der Einrichtung und aller auf ihr ablaufenden Benutzerprogramme.
Die übliche Methode zum Au finden von Fehlern ist eine Proto- kollierung der Ausführung der Prozeduren eines Programms mit Hilfe eines Ablaufverfolgungsprogramms - auch 'Debugger' genannt. Hierbei wird der Ablauf des Programms unter Steuerung des Debuggers Schritt für Schritt verfolgt. Dabei wird der Programmablauf z.B. nach jedem Schritt von dem Debugger ange- halten und es können in Speicherzellen des Arbeitsspeichers gespeicherte Daten, z.B. die Aufruf- und Ergebnisparameter, angezeigt werden. Der Ablauf eines Programms erfolgt jedoch im allgemeinen ohne die Steuerung eines Debuggers, da durch einen Debugger die Abiaufzeit eines Programms signifikant, z.B. um den Faktor zehn, verlangsamt wird. Zudem treten z.B. sporadisch auftretende Fehler bei Ablauf eines Programm unter Steuerung eines Debuggers wegen des verlangsamten zeitlichen Ablaufs des Programms häufig nicht mehr auf. Außerdem erfordert die Fehlersuche mit einem Debugger, daß das fehlerhafte Programm beendet und anschließend zusammen mit einem Debugger gestartet wird, was zu einer Unterbrechung des Programms führt. Somit ist diese Methode für das Auffinden von Fehlern in Betriebssystemprogrammen ungeeignet, da die Betriebssystemprogramme wegen der meist damit verbundenen Unterbrechung des Betriebs der Einrichtung üblicherweise nicht beendet und erneut gestartet werden sollen. Dies ist insbesondere bei Einrichtungen zur Vermittlung von Telephongesprächen nicht erwünscht .
Deshalb besteht die Notwendigkeit, den Ablauf eines Programms während des bestimmungsgemäßen Ablauf zu verfolgen - dies wird in der Fachwelt auch als 'Trace' (dt. = Spur, einer Spur
folgen) bezeichnet. Üblicherweise werden hierzu in die Proze¬ duren der Programme spezielle Maschinenbefehle eingefügt, die gezielt bestimmte Daten, üblicherweise die Aufruf- und die Ergebnisparameter der Prozeduren, z.B. in einen bestimmten Speicherbereich im Arbeitsspeicher oder eine Datei auf dem Hintergrundspeicher protokollieren. Dies hat jedoch den Nachteil, daß weitere Daten, die gegebenenfalls für das Auffinden eines Fehlers zusätzlich erforderlich sind, nicht protokolliert werden, wenn die Protokollierung dieser Daten nicht in den speziellen Maschinenbefehlen vorgesehen ist. Zudem wird der Ablauf des Programms auch dann durch die Protokollierung verlangsamt, wenn keine Protokollierung erforderlich wäre. Dies ist besonders nachteilig bei Betriebssystemprozeduren, da durch eine Verlangsamung des Betriebssystems alle von dem Betriebssystem verwalteten Benutzerprogramme verlangsamt werden, auch diejenigen, die fehlerfrei zum Ablauf kommen.
Der vorhergehend beschriebene technische Hintergrund ist in Engesser, Hermann [Hrsg.]; Claus, Volker [Bearb.]; Duden "In- formatik"; 2. Auflage; Mannheim; Leipzig; Wien; Zürich: Dudenverlag; 1993; ISBN 3-411-05232-5; offenbart. Siehe insbesondere Seite 8f (Ablaufprotokoll, Trace) , Seite 83ff (Betriebsart) , Seite 86 (Betriebsmittel), Seite 86ff (Betriebssystem) , Seite 188 (Debugger) , Seite 457ff (Nebenläufigkeit) , Seite 557ff (Prozedur), Seite 559ff (Prozesse), Seite 720ff (Testen) und Seite 756f (Unterbrechung) .
Der Erfindung liegt somit die Aufgabe zugrunde, ein Verfahren der eingangs genannten Art derart weiterzubilden, daß das Tracen von Daten verbessert wird. Die Aufgabe wird durch die Merkmale des Patentanspruchs 1 gelöst.
Die Erfindung ist im wesentlichen darin zu sehen, daß von einer ersten Prozedur - im folgenden auch Trace-Prozedur ge- nannt - einer im Speicher einer Einrichtung gespeicherten Datenstruktur eine erste Information - im folgenden auch Tracesteuerdaten genannt - entnommen wird, mit Hilfe der Trace-
steuerdaten zumindest ein Speicherbereich ermittelt wird, und zumindest die in dem Speicherbereich gespeicherten Daten getraced werden. Der wesentliche Vorteil des erfindungsgemäßen Verfahrens ergibt sich daraus, daß infolge der Trennung der Tracesteuerdaten von der Trace-Prozedur sehr flexibel und ohne eine erneute Übersetzung der Trace-Prozedur festgelegt werden kann, welche Daten von der Trace-Prozedur getraced werden sollen. Insbesondere können während des Tracens zusätzlich weitere Daten durch Erweiterung der Tracesteuerdaten protokolliert werden, wenn z.B. bei der Fehlersuche erkannt wird, daß ein Tracen der weiteren Daten für die Diagnose des Fehlers erforderlich ist. Außerdem kann so auch das Tracen ohne Unterbrechung des Betriebs unterbunden werden, indem durch die Tracesteuerdaten keine zu tracenden Speicherberei- ehe festgelegt werden. Dies ist besonders vorteilhaft bei Be¬ triebssystemprozeduren, da hier alle Benutzerprogramme schneller zum Ablauf kommen, wenn das Tracen unterlassen wird. Weiterhin kann durch eine schrittweise Reduktion des Umfangs der zu tracenden Daten oder durch ein selektives Tra- cen von sehr wenigen Daten bei sporadisch auftretenden Fehlern gegebenenfalls erreicht werden, daß diese Fehler weiterhin auftreten, sofern durch das gezielte Tracen der zeitliche Ablauf der Betriebssystemprozeduren nur minimal verzögert wird.
Gemäß einer Ausgestaltung des erfindungsgemäßen Verfahrens wird der Speicherbereich durch eine in der ersten Information enthaltene Angabe der Speicheradresse der ersten Speicherzelle und der Anzahl der Speicherzellen definiert - Anspruch 2. Gemäß einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens wird die Anzahl der Speicherzellen durch Angabe des Typs der in dem Speicherbereich gespeicherten Daten definiert - Anspurch 3. Somit können bei der Fehlersuche auf besonders einfache Weise die Aufruf- und Ergebnisparameter an- gegeben werden, da üblicherweise sowohl die Speicheradresse dieser Parameter als auch ihr Datentyp bekannt sind.
Gemäß einer Variante des erfindungsgemäßen Verfahrens wird der Speicherbereich durch eine in der ersten Information ent¬ haltene Angabe der Speicheradressen der ersten Speicherzelle und der letzten Speicherzelle definiert - Anspruch 4. Hiermit können vorteilhaft beliebige Speicherbereiche angegeben werden. Dies ist z.B. dann von besonderem Vorteil, wenn in dem Speicherbereich Daten mit unterschiedlichen Datentypen gespeichert sind und folglich eine Längenangabe per Datentyp nicht möglich ist.
Gemäß einer Weiterbildung des erfindungsgemäßen Verfahrens ist vorgesehen, daß von einem die Einrichtung betreibenden und zumindest die Trace-Prozedur und eine zweite Prozedur - im weiteren auch SVC-Prozedur genannt - enthaltenden Be- triebssystem beim Aufruf der SVC-Prozedur anstatt der SVC- Prozedur die Trace-Prozedur aufgerufen wird - Anspruch 5. Somit kommt vorteilhaft die Trace-Prozedur zum Ablauf, obwohl von dem Aufrufer die SVC-Prozedur aufgerufen wurde. Somit ist keine Veränderung des aufrufenden Programms erforderlich, wo- durch vorteilhaft die dazu üblicherweise erforderliche erneute Übersetzung des aufrufenden Programm entfällt. Dies ist besonders vorteilhaft, wenn das aufrufenden Programm z.B. wegen nicht vorhandener Programmquelldateien nicht übersetzt werden kann.
Gemäß einer Ausgestaltung des erfindungsgemäßen Verfahrens wird die SVC-Prozedur von der Trace-Prozedur aufgerufen - Anspruch 6. Hierdurch wird vorteilhaft auch bei einer Verzweigung zu der Trace-Prozedur der von der SVC-Prozedur bewirkte Dienst erbracht.
Gemäß einer Weiterbildung des erfindungsgemäßen Verfahrens ist vorgesehen, daß zumindest die in dem Speicherbereich gespeicherten Daten in Abhängigkeit von einer in der Daten- Struktur enthaltenen, den Zeitpunkt des Tracens des Speicherbereichs definierenden zweiten Information - im weiteren ebenfalls Tracesteuerdaten genannt - vor und/oder nach dem
Aufruf der SVC-Prozedur getraced werden - Anspruch 7. Somit kann der Umfang der zu tracenden Daten nach Bedarf geregelt werden. So sind z.B. die von dem eigentlich die SVC-Prozedur aufrufenden Programm übergebenen Aufrufparameter lediglich vor dem Aufruf und die von der SVC-Prozedur gebildeten Ergebnisparameter erst nach dem Aufruf der SVC-Prozedur von Interesse.
Gemäß einer Ausgestaltung des erfindungsgemäßen Verfahrens wird die Einrichtung von dem Betriebssystem derart gesteuert, daß lediglich von dem Betriebssystem auf die Datenstruktur zugegriffen werden kann - Anspruch 8. Somit können von der Anwendersoftware die Tracesteuerdaten weder versehentlich, z.B. infolge eines Programmfehlers in der Anwendersoftware, noch absichtlich, z.B. zur Modifikation des Betriebssystems durch einen Computervirus, verändert werden.
Gemäß einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens werden die Tracesteuerdaten von dem Betriebssystem in Abhängigkeit von einer Steuerinformation modifiziert - Anspruch 9. Dies ist vorteilhaft, da häufig erst während der Fehleranalyse offenkundig wird, welche Daten wann getraced werden sollen.
Gemäß einer Weiterbildung des erfindungsgemäßen Verfahrens wird von dem Betriebssystem in Abhängigkeit von einer weiteren Steuerinformation eingestellt, daß beim Aufruf der SVC- Prozedur anstatt der SVC-Prozedur die Trace-Prozedur aufgerufen wird - Anspruch 10. Somit kann wahlweise eingestellt wer- den kann, ob die SVC-Prozedur getraced werden soll oder nicht. Sofern das Tracen deaktiviert ist, erhöht sich wegen des nicht stattfindenden Tracens die Verarbeitungsgeschwindigkeit des Betriebssystems.
Gemäß einer Ausgestaltung des erfindungsgemäßen Verfahrens erfolgen die von dem Betriebssystem bewirkten Modifikationen während des Betriebs der Einrichtung- Anspruch 11. Somit kann
zu jedem Zeitpunkt des Betriebs der Einrichtung bei der Feh¬ lersuche flexibel je nach Bedarf eingestellt werden, welche Daten von welcher Prozedur des Betriebssystems getraced werden.
Das erfindungsgemäße Verfahren wird im folgenden anhand von zwei Figuren näher erläutert. Dabei zeigt
- Figur 1 in einem Blockschaltbild eine zeitgemäße Einrich- tung, in der das erfinungsgemäße Verfahren zum Ab¬ lauf kommt
- Figur 2 in einem Ablaufdiagram den Ablauf eines erfin- dungsgemäßen Trace-Verfahrens
In Figur 1 ist beispielhaft eine informationsverarbeitende Einrichtung E dargestellt, die zumindest prozeßverarbeitende Vorrichtungen sowie Speichermittel enthält. Die prozeßverarbeitenden Vorrichtungen sind als Prozessor CPU, die Speicher- mittel als RAM-Speicher MEM ausgebildet. Der Prozessor CPU und der Speicher MEM sind miteinander verbunden. In dem Speicher MEM sind in Speicherbereichen SB, die aus einer oder mehreren benachbarten Speicherzellen SZ gebildet sind, Daten D gespeichert.
Der Betrieb der Einrichtung E wird von einem in dem Speicher MEM gespeicherten Betriebssystem BS geregelt. Das Betriebssystem BS umfaßt hierbei (1) mehrere Betriebssystemprozeduren BSP, (2) einen Interruptvektor IRV sowie (3) eine Datenstruktur DS .
Als Betriebssystemprozeduren BSP sind ein Interrupt-Handler IRH, eine Trace-Prozedur TRC sowie eine erste SVC-Prozedur SVC (1) und eine zweite SVC-Prozedur SVC (2) vorgesehen. Der Interruptvektor IRV ist zur betriebssysteminternen Verwaltung der Betriebssystemprozeduren BSP vorgesehen und enthält einen
ersten Prozedurverweis IR1 auf die Betriebssystemprozedur SVC (1) und einen zweiten Prozedurverweis IR2 auf die Trace-Pro¬ zedur TRC. In der Datenstruktur DS sind und ein Tracesteuer- datenvektor TSDV und Tracesteuerdaten TSD gespeichert. Hier- bei ist der Tracesteuerdatenvektor TSDV ist zur betriebssysteminternen Verwaltung der Tracesteuerdaten TSD vorgesehen. Durch die Speicherung in der Datenstruktur DS werden die Tracesteuerdaten TSD vorteilhaft von der Trace-Prozedur TRC getrennt. Zur Verbindung der Tracesteuerdaten TSD mit der Traceprozedur TRC wird von der Trace-Prozedur TRC auf den die Tracesteuerdaten TSD verwaltenden Tracesteuerdatenvektor TSDV verwiesen. Der Tracesteuerdatenvektor TSDV enthält einen ersten Tracesteuerdatenverweis TSDP (IR1) und einen zweiten Tracesteuerdatenverweis TSDP (IR2). Der erste Tracesteuerda- tenverweis TSDP (IR1) verweist auf erste Tracesteuerdaten TSD (1) , von denen wiederum auf zweite Tracesteuerdaten TSD (2) verwiesen wird. Der zweite Tracesteuerdatenverweis TSDP (IR2) verweist auf dritte Tracesteuerdaten TSD (3) . Die Tracesteuerdaten TSD sind in den Speicherbereichen SB (TSD) gespeichert. Sie enthalten beispielsweise je eine erste Information INF1 und je eine zweite Information INF2 sowie gegebenenfalls einen Verweis auf weitere Tracesteuerdaten TSD. In der über die von dem Tracesteuerdatenverweis TSDV (IR1) ausgehenden Folge von Verweisen wird auf diejenigen Trace- steuerdaten TSD verwiesen, die festlegen, welche Daten D beim Tracen der Betriebssystemprozedur SVC (1) zu tracen sind. Auf analoge Weise wird in der über die von dem Tracesteuerdatenverweis TSDV (IR2) ausgehenden Folge von Verweisen auf diejenigen Tracesteuerdaten TSD verwiesen, die festlegen, welche Daten D beim Tracen der Betriebssystemprozedur SVC (2) zu tracen sind.
Die Prozeßverarbeitung wird von den in dem Speicher MEM gespeicherten Betriebssystemprozeduren BSP und/oder Benutzer- Programmen BP gesteuert. Als Benutzerprogramme BP sind ein erstes Benutzerprogramm BP (1) und ein zweites Benutzerprogramm BP (2) angedeutet. Der Betriebsmodus BM des Prozessors
CPU ist hierbei während der Ausführung der Benutzerprozeduren BP auf einen nicht privilegierten Betriebsmodus NPM und wäh¬ rend der Ausführung der Betriebssystemprozeduren BSP auf einen privilegierten Betriebsmodus PM eingestellt. Dadurch ist ein Zugriff der Benutzerprogramme BP auf die Datenstruktur DS ausgeschlossen, da die Datenstruktur DS dem Betriebssystem BS zugeordnet ist und somit nur im privilegierten Betriebsmodus PM zugegriffen werden kann. Weiterhin sind in dem Speicher MEM Aufrufparameter AP und Ergebnisparameter EP gespeichert, auf die das Betriebssystem BS und das Benutzerprogramm BP (1) zugreifen können.
In Figur 2 ist beispielhaft ein Aufruf der Trace-Prozedur TRC mit den dabei erfolgenden Zugriffen auf Daten D im Speicher MEM dargestellt. Hierbei sind vier AblaufSequenzen vorgesehen, die den Ablauf der Benutzerprogramme BP sowie von drei Betriebssystemprozeduren BSP - dem Interrupt-Handler IRH, der Trace-Prozedur TRC und der SVC-Prozedur SVC - repräsentieren. Die Betriebssystemprozeduren BSP stellen hierbei Teile des Betriebssystem BS dar und werden von dem Prozessor CPU im privilegierten Betriebsmodus PM bearbeitet, während die Benutzerprogramme BP im nicht privilegierten Betriebsmodus NPM zum Ablauf kommen. Die Daten D, auf die von den Programmen zugegriffen wird und die im Speicher MEM gespeichert sind, sind durch drei gestrichelte Linien dargestellt, die die Datenstruktur DS, den Interrupt-Vektor IRV und Speicherbereiche SB repräsentieren. Durch die gestrichelte Darstellung wird angedeutet, daß die Daten lediglich von den Programmen genutzt werden, jedoch selbst keine den Ablauf des erfindungs- gemäßen Verfahren bewirkenden Programmteile enthalten.
Für das Ausführungsbeispiel wird angenommen, daß von dem Benutzerprogramm BP (1) die SVC-Prozedur SVC (2) aufgerufen wird. Hierbei werden dem Betriebssystem BS Aufrufparameter AP übergeben, indem die Aufrufparameter in dem Speicherbereich SB (AP) gespeichert werden. Der Aufruf erfolgt durch den Maschinenbefehl Interrupt-Request IRQ (SVC (2)), durch den an-
gezeigt wird, daß die SVC-Prozedur SVC (2) zum Ablauf kommen soll. Als Folge des Interrupt-Requests IRQ (SVC (2)) wird von dem Prozessor CPU der Ablauf des Benutzerprogramms BP (1) un¬ terbrochen und stattdessen der Interrupt-Handler IRH bearbei- tet. Der Betriebsmodus des Prozessors wird hierbei von einem nicht privilegierten Betriebsmodus NPM zu einem privilegierten Betriebsmodus PM umgeschaltet. Von dem Interrupt-Handler IRH wird auf den Interrupt-Vektor IRV zugegriffen, der an einer fest vorgegebenen Stelle des Betriebssystems BS gespei- chert ist. Das Betriebssystem BS sei hierbei mit Hilfe von Steuerinformationen SI (IRV) derart konfiguriert, daß jeder Aufruf der SVC-Prozedur SVC (2) getraced wird. Dazu wird im Interruptvektor IRV von dem Prozedurverweis IR2 nicht auf die SVC-Prozedur SVC (2), sondern auf die Trace-Prozedur TRC ver- wiesen. Von dem Interrupt-Handler IRH wird deshalb nach Auswertung des Interruptverweises IR2, die mit Hilfe von Auswertebefehlen EVAL (IRV) erfolgt, mit Hilfe von Aufrufbefehlen CALL (TRC) anstatt der ursprünglich aufgerufenen SVC-Prozedur SVC (2) die Trace-Prozedur TRC aufgerufen.
Von der Trace-Prozedur TRC wird nach ihrem Aufruf auf die Datenstruktur DS zugegriffen und die Tracesteuerdaten TSD (3) entnommen. Der Zugriff auf die Datenstruktur DS erfolgt mit Auswertebefehlen EVAL (DS) . Hierbei werden den Tracesteuer- daten TSD (3) die Informationen INF1 (3) und INF2 (3) entnommen. Die Tracesteuerdaten TSD (3) seien hierbei mit Hilfe von Steuerinformationen SI (DS) derart konfiguriert, daß durch die enthaltene erste Information INF1 (3) der Speicherbereich SB (AP) , in dem die Aufrufparameter AP gespeichert sind, ge- kennzeichnet wird und durch die zweite Information INF2 (3) festgelegt wird, daß das Tracen des Speicherbereich SB (AP) vor dem Aufruf der SVC-Prozedur SVC (2) erfolgen soll. Von der Trace-Prozedur TRC werden hierauf die in dem Speicherbereich SB (AP) gespeicherten Aufrufparameter AP mit Hilfe der Tracebefehlen TRACE (1) getraced. Anschließend wird von der Trace-Prozedur TRC die SVC-Prozedur SVC (2) mit Hilfe von Aufrufbefehlen CALL (SVC (2)) aufgerufen. Im Zuge der Bear-
beitung der SVC-Prozedur SVC (2) werden in dem Speicherbe¬ reich SB (EP) die Ergebnisparameter EP gespeichert. Nach dem Ende der Bearbeitung der SVC-Prozedur SVC (2) wird mit der Bearbeitung der Trace-Prozedur TRC fortgefahren. Da in der Datenstruktur DS keine weiteren relevanten Tracesteuerdaten TSD gespeichert sind, erfolgt keine weiteres Tracen von Daten. Somit ist die Bearbeitung innerhalb des Betriebssystems BS abgeschlossen und es wird mit der Bearbeitung des Benutzerprogramm BP (1) fortgefahren. Üblicherweise wird hierbei der Betriebsmodus des Prozessors CPU wieder vom privilegierten Betriebsmodus PM zurück zum nicht privilegierten Betriebsmodus PM umgeschaltet.
Sofern während dieses Tracens der SVC-Prozedur während des Betriebs der Einrichtung E erkannt wird, daß die Ergebnisparameter EP ebenfalls getraced werden sollten, wird die Datenstruktur DS durch die Eingabe von Steuerinformationen SI (DS) um weitere Tracesteuerdaten TSD (4) erweitert, die eine erste Information INF1 (4) und eine zweite Information INF2 (4) enthalten. Hierbei wird durch die erste Information INF1 (4) der Speicherbereich SB (EP) , in dem die Ergebnisparameter EP gespeichert sind, gekennzeichnet und durch die zweite Information INF2 (4) festgelegt, daß das Tracen des Speicherbereich SB (AP) nach dem Aufruf der SVC-Prozedur SVC (2) erfol- gen soll. Wenn die Ergebnisparameter beispielsweise durch ein Wert vom Datentyp INTEGER repräsentiert sind, erfolgt die Festlegung des Speicherbereich SP (EP) durch die Angabe der Speicheradresse der ersten Speicherzelle SZ des Speicherbereichs SP (EP) und die Angabe des Datentyps INTEGER. Alterna- tiv kann die Festlegung durch die Angabe der ersten und der letzten Speicherzelle eines Speicherbereichs SB erfolgen. Beispielsweise könnte zum Testen der Trace-Prozedur ein Tracen der Tracesteuerdaten TSD erforderlich sein. Hierzu wird der gesamte Speicherbereich SB (DS) getraced, im dem die Tracesteuerdaten TSD üblicherweise gespeichert werden. Die
Festlegung des Speicherbereichs SB (DS) erfolgt durch die Angabe der ersten und der letzten Speicherzelle SZ der für den
Speicherbereichs SB (DS) vorgesehenen Speicherzellen SZ. In¬ folge dieser Modifikation werden bei jedem weiteren Aufruf der SVC-Prozedur SVC (2) von der Trace-Prozedur TRC die Ergebnisparameter EP mit Hilfe der Tracebefehlen TRACE (2) ge- traced, bevor mit der Bearbeitung des aufrufenden Benutzerprogramms BP fortgefahren wird.
Abschließend sei angemerkt, daß die Modifikation der Datenstruktur DS während des Betriebs der Einrichtung E und ohne Unterbrechung des Betriebssystemprogramme BSP oder der Benutzerprogramme BP erfolgt und sofort wirksam ist.