DE69422476T2 - Betriebssystembasierte Programmleistungsüberwachung - Google Patents
Betriebssystembasierte ProgrammleistungsüberwachungInfo
- Publication number
- DE69422476T2 DE69422476T2 DE69422476T DE69422476T DE69422476T2 DE 69422476 T2 DE69422476 T2 DE 69422476T2 DE 69422476 T DE69422476 T DE 69422476T DE 69422476 T DE69422476 T DE 69422476T DE 69422476 T2 DE69422476 T2 DE 69422476T2
- Authority
- DE
- Germany
- Prior art keywords
- code
- executed
- program
- kernel
- processor
- 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 - Lifetime
Links
- 238000012544 monitoring process Methods 0.000 title claims description 15
- 230000006870 function Effects 0.000 claims description 47
- 238000000034 method Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
- Die vorliegende Erfindung betrifft im allgemeinen Datenverarbeitungssysteme und im besonderen auf die Ausführung der Überwachung von Programmen, die auf Datenverarbeitungssystemen laufen.
- Es wurde bereits eine Reihe unterschiedlicher statistischer Verfahren zur Überwachung eines auf einem Datenverarbeitungssystem laufenden Programms entwickelt. Eines der meistverwendeten Verfahren besteht darin, die zur Ausführung bestimmter Programmfunktionen benötigte Zeit zu überwachen. Eine Schwierigkeit bei diesem Herangehen besteht darin, daß häufig das Schrittintervall der zur Zeitmessung der Funktionen verwendeten Uhr zu groß ist, um ein genaues Bild darüber zu liefern, wie sich die Verarbeitungszeit auf die jeweiligen Funktionen aufteilt. Die Zählung der Befehle ist ein anderes statistisches Verfahren zur Überwachung der Ausführung eines Programms. Befehlszählverfahren wurden im allgemeinen beschränkt auf die Überwachung der Ausführung von Programmen auf Benutzerebene (im Gegensatz zu Programmen auf Systemebene), zum Beispiel von Anwendungsprogrammen. Diese Verfahren waren zur Überwachung der Leistung von Kernels des Betriebssystems nicht einsetzbar. Im Ergebnis dieser Einschränkungen waren statistische Verfahren für Programmierer oft wenig hilfreich bei ihren Bemühungen um eine Erhöhung der Programmleistung.
- Die Patentschrift EP-A-0 526 055 legt ein Rechnersystem zur Überwachung der Ausführung eines Rechnerprogramms offen, das dazu dient, mittels der Erkennung vorgegebener Befehle, für die ein bestimmtes, zu jedem Befehl hinzugefügtes Testbit als Flag gesetzt wird, eine Profilanalyse zu erstellen.
- Gemäß der vorliegenden, in den beigefügten Ansprüchen niedergelegten Erfindung wird ein Verfahren offengelegt, das in einem Datenverarbeitungssystem angewandt wird, das einen Prozessor für die Ausführung von Befehlen und einen Speichermechanismus für die Speicherung eines Betriebssystems und eines Überwachungsprogramms auf Benutzerebene aufweist. Der Prozessor führt Befehle auf einer Benutzerebene und einer Systemebene aus. Bei dem Datenverarbeitungssystem kann es sich um ein vernetztes System handeln. Bei diesem Verfahren ist im Kernel des Betriebssystems eine Einrichtung zur Überwachung der Programmleistung vorgesehen. Die Einrichtung kann zum Beispiel die vom Prozessor ausgeführten Befehle zählen, zählen, wie oft ein Codeabschnitt während der Programmausführung aufgerufen wird, oder eine Anzahl nach der jeweiligen Funktion kategorisierter separater Zählungen ausführen, die die Anzahl der im Rahmen der jeweiligen Funktionen ausgeführten Befehle angeben. Ein Codeabschnitt des Programms wird vom Prozessor ausgeführt. Die Einrichtung im Kernel des Betriebssystems wird dann verwendet, um die Systemleistung zu überwachen. Die Art der verwendeten Einrichtung bestimmt die von der Einrichtung gezählten Werte. Die Zählungen werden dem Überwachungsprogramm auf Benutzerebene berichtet. Die Einrichtung kann zum Beispiel die Anzahl von Befehlen während der Ausführung eines Codeabschnittes des Programms oder die Anzahl der Aufrufe des Codeabschnittes des Programms zählen, oder die Einrichtung kann eine Anzahl nach der jeweiligen. Funktion kategorisierter separater Zählungen ausführen, die die Anzahl der im Rahmen der jeweiligen Funktionen ausgeführten Befehle angeben, wenn eine erste Funktion während der Ausführung des Programms aufgerufen wird. Das Programm kann ein Programm auf Benutzerebene oder Teil des Kernels des Betriebssystems sein.
- Die vorliegende Erfindung wird im Detail durch die beigefügten Ansprüche definiert.
- Fig. 1 ist ein Blockdiagramm eines vernetzten Systems zur Umsetzung einer bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 2 ist ein Blockdiagramm, das ein Rechnersystem nach Fig. 1 detaillierter zeigt.
- Fig. 3 ist ein Blockdiagramm, das ein API nach Fig. 2 detaillierter zeigt.
- Fig. 4 ist ein Flußdiagramm, das aus der Sicht eines Benutzers die Schritte zeigt, die bei der Überwachung der Programmleistung und dem Tuning des Programms ge mäß der bevorzugten Ausführungsform der vorliegenden Erfindung ausgeführt werden.
- Fig. 5 ist ein Flußdiagramm, das detaillierter zeigt, wie Haltepunkte eingefügt werden und wie ein Programm zum Ablauf gebracht wird, wenn es von der bevorzugten Ausführungsform der vorliegenden Erfindung überwacht wird.
- Eine bevorzugte Ausführungsform der vorliegenden Erfindung schafft eine Einrichtung im Kernel eines Betriebssystems zur Überwachung der Leistung von Programmen. Die Einrichtung bietet einem Benutzer eine Reihe von Optionen. Erstens ermöglicht es die Einrichtung dem Benutzer, die Anzahl der von einer Funktion ausgeführten Befehle jedesmal zu zählen, wenn die Funktion aufgerufen wird. Zweitens ermöglicht es die Einrichtung dem Benutzer, die Anzahl und Häufigkeit der Aufrufe einer bestimmten Funktion zu zählen, ohne die in der Funktion ausgeführten Befehle zu zählen, und drittens ermöglicht es die Einrichtung dem Benutzer, die Anzahl der in jeder Funktion ausgeführten Befehle zu zählen, die im Ergebnis des Aufrufs einer Anfangsfunktion aufgerufen wird. Da die Einrichtung im Kernel des Betriebssystems vorgesehen ist, kann sie nicht nur zur Überwachung der Leistung von Programmen auf Benutzerebene, wie zum Beispiel Anwendungsprogrammen, sondern auch zur Leistungsüberwachung des Kerneis und anderer Abschnitte des Betriebssystems verwendet werden. Durch die Einrichtung im Kernel des Betriebssystems erhöht sich auch die Überwachungsgeschwindigkeit und wird ein Herangehen an die Leistungsüberwachung möglich, das keinerlei Beeinträchtigung der Operationen mit sich bringt und keine Modifikationen an dem zu überwachenden Programm erfordert.
- Die bevorzugte erfindungsgemäße Ausführungsform kann in einem vernetzten System wie in jenem aus Fig. 1 eingesetzt werden. Natürlich kann die Erfindung auch in einem Einprozessorsystem eingesetzt werden. Das vernetzte System weist eine Anzahl von Rechnersystemen 12 auf, die über ein Netzwerk 14 miteinander kommunizieren. Jedes der Rechnersysteme 10 kann gleichlaufend eine Spur des Programms verfolgen, das es ausführt. Das Netzwerk kann eine beliebige verschiedene Netzwerktypen, einschließlich lokaler Netzwerke (LANs) oder Fernnetzwerke, umfassen. Für Fachleute liegt es auf der Hand, daß das vernetzte System 10 eine andere Anzahl von Rechnersystemen als in Fig. 1 umfassen kann. Die Abbildung von vier Rechnersystemen im Netzwerk dient nur der Veranschaulichung.
- Fig. 2 zeigt ein detaillierteres Blockdiagramm der in einem der Rechnersysteme 12 enthaltenen Komponenten. Nicht jedes der Rechnersysteme muß diese Konfiguration aufweisen, sondern die dargestellte Konfiguration ist als rein illustrativ aufzufassen. Das Rechnersystem 12 weist eine zentrale Verarbeitungseinheit (CPU) 13 und einen Speicher 16 auf. Die CPU verfügt über eine Anzahl von Registern 17 einschließlich eines Registers FLAGS und eines Registers SS (Stapelsegment). Diese Register werden nachstehend ausführlicher beschrieben. Der Speicher 16 enthält eine Kopie eines vernetzten Betriebssystems 28, zum Beispiel das Betriebssystem NT von Microsoft, vermarktet von der Microsoft Corporation Redmond, Washington. In der bevorzugten erfindungsgemäßen Ausführungsform verfügt jedes der Rechnersysteme 12 über eine Kopie des Betriebssystems, das auf ihm läuft. Das Betriebssystem 28 weist ein Kernel 30 auf, das seinerseits einen Codeabschnitt 32 umfaßt, der die Leistungsüberwachung unterstützt. Der Codeabschnitt 32 wird unten ausführlicher erläutert. Der Speicher 16 kann auch mindestens ein Anwendungsprogramm 26 enthalten, das auf der CPU 13 laufen kann. Das Anwendungsprogramm 26 muß sich jedoch nicht resident im Speicher 16 befinden.
- Das Rechnersystem 12 weist weiterhin eine Anzahl peripherer Geräte auf. Diese peripheren Geräte umfassen eine sekundäre Speichereinrichtung 18, zum Beispiel ein Diskettenlaufwerk, eine Tastatur 20, eine Bildschirmanzeige 22 und eine Maus 24.
- Fig. 3 zeigt ein Blockdiagramm, das den Codeabschnitt 32 detaillierter darstellt. Das API umfaßt eine Haltepunkteinrichtung 34 zur Unterstützung der Erzeugung von Haltepunkten in einem auf der CPU 13 laufenden Programm. Der Codeabschnitt 32 weist weiterhin einen Einzelschritt-Interrupthandler 36 zum Behandeln von Einzelschrittinterrupts auf. Um die Rolle der Haltepunkteinrichtung 34 und des Einzelschritt-Interrupthandlers 36 zu erklären, ist es nützlich, zuerst darzulegen, was Haltepunkte und Einzelschrittinterrupts sind.
- Ein Einzelschrittinterrupt ist ein Interrupt, der verwendet wird, wenn ein Programm in Einzelschritten arbeitet. Das Arbeiten in Einzelschritten bezieht sich auf einen Betriebsmodus der CPU 13, bei dem zu einem bestimmten Zeitpunkt nur ein Befehl unter Kontrolle eines Überwachungsprogramms ausgeführt wird. Das Arbeiten in Einzelschritten bietet Debuggern und Leistungsüberwachungsprogrammen die Möglichkeit, ein Programm langsam auszuführen, um dessen Ausführung sorgfältig zu überwachen. Im vorliegenden Falle stellt der Einzelschritthandler 36 das Überwa chungsprogramm dar, unter dessen Kontrolle ein zu überwachendes Programm zu einem Zeitpunkt jeweils einen Befehl ausführt. Im allgemeinen wird ein Befehl ausgeführt und danach ein Einzelschrittinterrupt gesetzt, um die Steuerung des Prozessors auf das Überwachungsprogramm umzuschalten. Viele Mikroprozessoren, wie zum Beispiel die 80 · 86-Mikroprozessoren, bieten einen bequemen Mechanismus zum Umschalten des Mikroprozessors in den Einzelschrittmodus. Bei den 80 · 86- Mikroprozessoren ist ein Einzelschritt-Trapflag im Register FLAGS vorgesehen (siehe Fig. 2). Wenn das Einzelschritt-Trapflag auf Eins gesetzt ist, arbeitet der Prozessor im Einzelschrittmodus; umgekehrt arbeitet der Prozessor nicht im Einzelschrittmodus, wenn das Einzelschritt-Trapflag auf Null gesetzt ist.
- Ein Haltepunkt bezieht sich auf einen Haltepunkt-Interrupt, der verwendet wird, um die ungehinderte Ausführung eines Programms zu unterbrechen, und der für Debugging- und Leistungsüberwachungsprogramme von Nutzen ist. Die Schwierigkeit bei der Ausführung eines vollständigen Programms im Einzelschrittmodus besteht darin, daß sie sehr langsam erfolgt. In vielen Fällen kann der größte Teil eines Programms bereits von Programmfehlern befreit oder getunt sein, während nur ein kleiner Abschnitt davon ausführlicher geprüft werden soll. Unter derartigen Umständen ist ein Haltepunkt-Interrupt besonders sinnvoll. Ein Haltepunkt-Interrupt wird erzeugt, indem ein spezieller Betriebscode in das Programm eingefügt wird. Bei seiner Ausführung bewirkt dieser Betriebscode das Setzen eines Haltepunkt-Interrupts. Beim Setzen des Haltepunkt-Interrupts wird die Kontrolle an die Haltepunkteinrichtung 34 übergeben, die dann weitere Handlungen nach Bedarf ausführen kann. Die Rolle von Haltepunkten und Einzelschrittinterrupts in der bevorzugten Ausführungsform der vorliegenden Erfindung wird unten bei, der Behandlung der Fig. 4 und 5 ausführlicher beschrieben.
- Neben der Haltepunkteinrichtung 34 und dem Einzelschritthandler 16 weist der Codeabschnitt 32 weiterhin einen Code auf, der sich auf die Kontextumschaltung 38 bezieht. Dieser Code 38 schafft einen Auslöser für Kontextumschaltungen und weist einen Handler auf, der den Kontextschalter prüft und bestimmt, ob der neue Kontext in Einzelschritten abgearbeitet werden soll oder nicht. Soll der neue Kontext in Einzelschritten abgearbeitet werden, so stellt der Handler sicher, daß in Einzelschritten vorgegangen wird.
- Der Codeabschnitt 32 weist weiterhin Zählerwerte 40 auf. Wie oben dargelegt, bietet die bevorzugte erfindungsgemäße Ausführungsform dem Benutzer die Gelegenheit, die Anzahl der in der Funktion ausgeführten Befehle, die Anzahl der Aufrufe der Funktion innerhalb eines Programms und die Anzahl der bei jeder Funktion ausgeführten Befehle zu überwachen, die im Ergebnis des Aufrufs einer Anfangsfunktion aufgerufen wird. Jeder dieser Zählwerte wird in einem separaten Zähler gespeichert, und die Werte der Zähler werden als Zählerwerte 40 im Datenbereich des Codeabschnitts 32 gehalten.
- Fig. 4 ist ein Flußdiagramm der Schritte, die zur Überwachung der Leistung eines Programms oder eines Programmabschnittes in der bevorzugten erfindungsgemäßen Ausführungsform ausgeführt werden. Zunächst wählt der Benutzer ein Leistungsmaß (Schritt 42). Eine Benutzerschnittstelle, zum Beispiel ein Menü in einer Dialogbox, wird auf der Bildschirmanzeige 22 (Fig. 2) des vom Benutzer verwendeten Rechnersystems 12 (Fig. 1) angezeigt, um es dem Benutzer zu ermöglichen, das gewünschte Leistungsmaß auszuwählen. Wie oben dargelegt, gibt es eine Reihe verschiedener Leistungsmaße, die von der bevorzugten Ausführungsform der vorliegenden Erfindung berechnet werden können. Der Benutzer wählt weiterhin, welche Funktionen im Programm überwacht werden sollen (Schritt 44). Nach der Auswahl des Leistungsmaßes und der zu überwachenden Funktionen werden die Betriebscodes für die Erzeugung von Haltepunkt-Interrupts in jede der zu überwachenden Funktionen eingefügt, und das Programm oder der Programmabschnitt wird ausgeführt (Schritt 46). Die entsprechenden Zählerwerte 40 werden während des Ablaufs des Programms berechnet. Die Zählerwerte 40 werden während der Programmausführung auf der Bildschirmanzeige 22 angezeigt (Schritt 48 in Fig. 4). Wenn die Ausführung des Programms oder des Programmabschnittes abgeschlossen ist, kann der Benutzer die Leistungsdaten prüfen und als Richtschnur für das von ihm vorzunehmende geeignete Tunen des Programms verwenden (Schritt 50). Wie die Daten zum Tunen des Programms verwendet werden, ist von der Art der erfaßten Daten abhängig. Dem Fachmann wird klar sein, wie er die Leistungsmeßdaten beim angemessenen Tunen des Programms verwendet.
- Fig. 5 ist ein Flußdiagramm, das für die einzelnen Funktionen die Schritte detaillierter zeigt, die beim Einfügen eines Haltepunktes und bei der Programmausführung (d. h. Schritt 46 in Fig. 4) vorzunehmen sind. Wie oben erwähnt, wird ein Haltepunkt- Betriebscode am ersten Befehl jeder der zu überwachenden Funktionen eingefügt (Schritt 52 in Fig. 5). Dann beginnt das System mit der Funktionsausführung (Schritt 54). Da der Haltepunkt nun der erste Befehl in der Funktion ist, erfaßt das Kernel den Haltepunkt (Schritt 56) und stellt dann fest, welches Leistungsmaß der Benutzer für die Funktion gewünscht hat (Schritt 58). Wenn das einzige gewünschte Leistungsmaß eine Zählung der Anzahl der aufrufe der Funktion ist, wird ein Zähler in den Zählerwerten 40 (Fig. 3), der die Anzahl von Aufrufen der Funktion verfolgt, erhöht, um anzuzeigen, daß die Funktion aufgerufen wurde (Schritt 60). Nach der Erhöhung des Zählers wird die Funktion erneut gestartet und nimmt die Ausführung in voller Geschwindigkeit wieder auf.
- Vor der Betrachtung der Schritte, die bei der bevorzugten erfindungsgemäßen Ausführungsform auszuführen sind, wenn der Benutzer die Anzahl der ausgeführten Befehle überwachen will, ist es zunächst hilfreich, die Begriffe "Thread" und "Stapel" zu erläutern. Ein Thread stellt einen ausführbaren Abschnitt einer Aufgabe dar, die selbständig und zeitgleich mit anderen Threads ausgeführt werden kann. Das Betriebssystem 28 ist ein Multithread-System. Natürlich liegt es für den Fachmann auf der Hand, daß die vorliegende Erfindung nicht unbedingt in einem Multithread- System verwendet werden muß. Sie kann ebenso in Einzelprozessor- und Multiprozessorsystemen zum Einsatz kommen. Ein Multithread-Betriebssystem ist in der Lage, mehrere Threads gleichzeitig abzuarbeiten. Der Stapel ist eine Last-in-first-out- (LIFO)-Datenstruktur und wird verwendet, um Daten zu halten und Informationen für den Thread zu registrieren. Jedem Thread ist ein Abschnitt des Stapelsegmentes zugeordnet. Das SS-(Stapelsegment)-Register (Fig. 2) zeigt auf einen Speicherabschnitt, der Stapel für die Threads des ausgeführten Programms enthält. Jeder Thread besitzt einen ihm zugeordneten Stapelzeiger-(SP)-Wert, der auf den obersten Wert des Stapels (d. h. auf den Abschnitt des dem Thread zugeordneten Stapelsegmentes) zeigt. Fachleuten ist natürlich klar, daß die vorliegende Erfindung auch in Umgebungen verwendet werden kann, die keine Stapel verwenden.
- Wenn in Schritt 58 der Fig. 5 festgestellt wird, daß der Benutzer eine Anzahl ausgeführter Befehle und nicht die Anzahl von Funktionsaufrufen zählen möchte, wird der Wert des Stapelzeigers für den derzeit ausgeführten Thread im Speicher 16 gespeichert (Schritt 64). Das Einzelschritt-Trapflag im Register FLAGS (Fig. 2) wird dann so gesetzt, daß die CPU 13 veranlaßt wird, in den Einzelschrittmodus einzutreten (Schritt 66). Im Einzelschrittmodus wird jedesmal, wenn ein Befehl ausgeführt wird, der Zählerwert, der die Anzahl ausgeführter Befehle in der derzeitigen Funktion verfolgt, um eins erhöht (Schritt 68). Die Befehle werden gezählt, bis der Thread die überwachte Funktion verläßt oder endet. Die Befehlszählung kann auch angehalten werden, wenn ein Thread selbst den Plan verläßt, doch wird die Befehlszählung wieder aufgenommen, wenn der Thread in den Plan zurückkehrt.
- Zwar wurde die vorliegende Erfindung anhand einer bevorzugten Ausführungsform beschrieben, doch Fachleuten ist klar, daß verschiedene Änderungen in Form und Detail vorgenommen werden können, ohne von der in den beigefügten Ansprüchen definierten vorliegenden Erfindung abzuweichen.
Claims (19)
1. Verfahren, das auf einem Datenverarbeitungssystem implementiert werden kann,
welches einen Prozessor zum Ausführen eines durch einen Computer ausführbaren Codes
und einen Speichermechanismus (16) zum Speichern eines Betriebssystems (28) mit einem
Kernel (30) umfaßt, wobei das Verfahren durch folgende Schritte gekennzeichnet ist:
Vorsehen einer Einrichtung (32) im Kernel des Betriebssystems zum Zählen der
Anzahl der ausgewählten Codeabschnitte, die durch den Prozessor ausgeführt werden, und
Vorsehen eines Überwachungsprogramms auf der Benutzerebene zum Überwachen der
Zählung der ausgeführten ausgewählten Codeabschnitte,
Verwenden der Einrichtung (32) im Kernel des Betriebssystems (28), um die Anzahl
der ausgewählten Codeabschnitte zu zählen, die während der Ausführung des Codes (26)
im Prozessor ausgeführt werden, und
Berichten der Zählung der ausgeführten ausgewählten Codeabschnitte an das
Überwachungsprogramm auf der Benutzerebene.
2. Verfahren nach Anspruch 1, wobei die ausgewählten Codeabschnitte einzelne
Befehle im Code enthalten, so daß die Einrichtung (32) im Kernel zählt, wie oft die einzelnen
Befehle ausgeführt werden, wenn eine Funktion im Code aufgerufen wird (68).
3. Verfahren nach wenigstens einem der vorstehenden Ansprüche, wobei die
ausgewählten Codeabschnitte wenigstens einen Teil einer Funktion im Code umfassen, so daß die
Einrichtung im Kernel zählt, wie oft die Funktion aufgerufen wird.
4. Verfahren nach wenigstens einem der vorstehenden Ansprüche, wobei die
ausgewählten Codeabschnitte einzelne Befehle in einer Vielzahl von Funktionen im Code
enthalten, so daß die Einrichtung im Kernel zählt, wie oft die einzelnen Befehle in jeder aus der
Vielzahl von Funktionen ausgeführt werden, wenn die Vielzahl von Funktionen als Ergebnis
der Ausführung einer Anfangsfunktion aufgerufen werden.
5. Verfahren nach wenigstens einem der vorstehenden Ansprüche, wobei der Code im
Prozessor ausgeführt wird, ohne daß der Code neu compiliert wird, um den Code für die
Profilierung aufzubereiten.
6. Verfahren nach wenigstens einem der vorstehenden Ansprüche, wobei der im
Prozessor ausgeführte Code durchgeführt wird, ohne daß eine mit dem Code assoziierte
Wortgröße vergrößert wird.
7. Verfahren nach wenigstens einem der vorstehenden Ansprüche, wobei der durch den
Prozessor ausgeführte Code ein Teil des Kernels des Betriebssystems ist.
8. Verfahren nach wenigstens einem der vorstehenden Ansprüche, wobei der durch den
Prozessor ausgeführte Code sin nicht zum Kernel des Betriebssystems gehörender
Abschnitt ist.
9. Verfahren nach wenigstens einem der vorstehenden Ansprüche, wobei der durch den
Prozessor ausgeführte Code ein Programm auf der Benutzerebene ist.
10. Verfähren nach wenigstens einem der vorstehenden Ansprüche, welches weiterhin
einen Schritt zum Anpassen des im Prozessor ausgeführten Codes umfaßt, um die Anzahl
der Befehle zu reduzieren, welche ausgeführt werden, wenn der Code wieder im Prozessor
ausgeführt wird.
11. System zum Messen der Leistung eines überwachten Programms, welches einen
durch einen Computer ausführbaren Code umfaßt, wobei das System einen
Speichermechanismus (16) zum Speichern eines Überwachungsprogramms auf der Benutzerebene und
eines Betriebssystems (28) mit einem Kernel sowie einen Prozessor mit einer
Programmausführungseinheit zum Ausführen des überwachten Programms und des
Überwachungsprogramms auf der Benutzerebene umfaßt, und wobei das System dadurch gekennzeichnet
ist, daß
der Kernel (30) eine Zählereinrichtung (32) zum Zählen der Anzahl von ausgewählten
Abschnitten des überwachten Programms, welche ausgeführt werden, umfaßt,
und daß der Prozessor umfaßt:
eine Einrichtung zum Aufrufen der Zählereinrichtung, so daß die Anzahl der
ausgewählten Codeabschnitte des überwachten Programms gezählt wird, welche ausgeführt
werden, während wenigstens ein Teil des überwachten Programms im Prozessor ausgeführt
wird, und
einen Zählungsberichter, welcher die durch die Zählereinrichtung gemachten
Zählungen an das Überwachungsprogramm auf der Benutzerebene berichtet.
12. System nach Anspruch 11, wobei die ausgewählten Codeabschnitte einzelne Befehle
in dem überwachten Programm enthalten, so daß die Einrichtung im Kernel zählen kann, wie
oft die einzelnen Befehle ausgeführt werden, wenn eine Funkton in dem überwachten
Programm aufgerufen wird.
13. System nach Anspruch 12, wobei die ausge wählten Codeabschnitte wenigstens
einen Teil einer Funktion in den überwachten Programm enthalten, so daß die Einrichtung
(32) im Kernel (30) zählen kann, wie oft die Funktion aufgerufen wird.
14. System nach wenigstens einem der vorstehenden Ansprüche, wobei die
ausgewählten Codeabschnitte einzelne Befehle in einer Vielzahl von Funktionen in dem
überwachten Programm enthalten, so daß die Einrichtung im Kernel zählen kann, wie oft die einzelnen
Befehle in jeder aus der Vielzahl von Funktionen ausgeführt werden, wenn die Vielzahl von
Funktionen als Ergebnis der Ausführung einer Anfangsfunktion aufgerufen werden.
15. System nach wenigstens einem der vorstehenden Ansprüche, wobei der durch einen
Computer ausführbare Code des überwachten Programms nicht für die Profilierung
aufbereitet wird.
16. System nach wenigstens einem der vorstehenden Ansprüche, wobei eine mit dem
durch einen Computer ausführbaren Code des überwachten Programms assoziierte
Wortgröße nicht mit Bezug auf die Wortgröße des durch einen Computer ausführbaren Codes
vergrößert wird, wenn das überwachte Programm auf anderen Systemen ausgeführt wird.
17. System nach wenigstens einem der vorstehenden Ansprüche, wobei die
ausgewählten Codeabschnitte im Kernel des Betriebssystems enthalten sind.
18. System nach wenigstens einem der vorstehenden Ansprüche, wobei die
ausgewählten Codeabschnitte in einem nicht zum Kernel des Betriebssystems gehörenden
Abschnitt enthalten sind.
19. System nach wenigstens einem der vorstehenden Ansprüche, wobei die
ausgewählten Codeabschnitte in einem Programm auf der Benutzerebene enthalten sind.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/147,645 US5485574A (en) | 1993-11-04 | 1993-11-04 | Operating system based performance monitoring of programs |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69422476D1 DE69422476D1 (de) | 2000-02-10 |
DE69422476T2 true DE69422476T2 (de) | 2000-05-31 |
Family
ID=22522352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69422476T Expired - Lifetime DE69422476T2 (de) | 1993-11-04 | 1994-11-03 | Betriebssystembasierte Programmleistungsüberwachung |
Country Status (5)
Country | Link |
---|---|
US (1) | US5485574A (de) |
EP (1) | EP0652518B1 (de) |
JP (1) | JP4034363B2 (de) |
CA (1) | CA2134060C (de) |
DE (1) | DE69422476T2 (de) |
Families Citing this family (102)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263488B1 (en) * | 1993-12-03 | 2001-07-17 | International Business Machines Corporation | System and method for enabling software monitoring in a computer system |
JP3366475B2 (ja) * | 1994-04-12 | 2003-01-14 | 三菱電機株式会社 | データ処理速度の評価方法 |
US6026236A (en) * | 1995-03-08 | 2000-02-15 | International Business Machines Corporation | System and method for enabling software monitoring in a computer system |
WO1996036918A1 (en) * | 1995-05-19 | 1996-11-21 | At & T Ipm Corp. | Method for monitoring a digital multiprocessor |
US5875294A (en) | 1995-06-30 | 1999-02-23 | International Business Machines Corporation | Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states |
US5949971A (en) * | 1995-10-02 | 1999-09-07 | International Business Machines Corporation | Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system |
US5748855A (en) * | 1995-10-02 | 1998-05-05 | Iinternational Business Machines Corporation | Method and system for performance monitoring of misaligned memory accesses in a processing system |
US5729726A (en) * | 1995-10-02 | 1998-03-17 | International Business Machines Corporation | Method and system for performance monitoring efficiency of branch unit operation in a processing system |
US5691920A (en) * | 1995-10-02 | 1997-11-25 | International Business Machines Corporation | Method and system for performance monitoring of dispatch unit efficiency in a processing system |
US5887167A (en) * | 1995-11-03 | 1999-03-23 | Apple Computer, Inc. | Synchronization mechanism for providing multiple readers and writers access to performance information of an extensible computer system |
US5920719A (en) * | 1995-11-06 | 1999-07-06 | Apple Computer, Inc. | Extensible performance statistics and tracing registration architecture |
US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
US6304893B1 (en) | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
US5987245A (en) | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US6038590A (en) | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
US5799143A (en) * | 1996-08-26 | 1998-08-25 | Motorola, Inc. | Multiple context software analysis |
US5878208A (en) * | 1996-11-25 | 1999-03-02 | International Business Machines Corporation | Method and system for instruction trace reconstruction utilizing limited output pins and bus monitoring |
US5884080A (en) * | 1996-11-26 | 1999-03-16 | International Business Machines Corporation | System and method for instruction burst performance profiling for single-processor and multi-processor systems |
US5970439A (en) * | 1997-03-13 | 1999-10-19 | International Business Machines Corporation | Performance monitoring in a data processing system |
US5872976A (en) * | 1997-04-01 | 1999-02-16 | Landmark Systems Corporation | Client-based system for monitoring the performance of application programs |
US5944841A (en) * | 1997-04-15 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor with built-in instruction tracing capability |
US6134594A (en) | 1997-10-28 | 2000-10-17 | Microsoft Corporation | Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects |
US7076784B1 (en) | 1997-10-28 | 2006-07-11 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment |
US6148396A (en) * | 1997-11-26 | 2000-11-14 | Compaq Computer Corporation | Apparatus for sampling path history in a processor pipeline |
US6374367B1 (en) | 1997-11-26 | 2002-04-16 | Compaq Computer Corporation | Apparatus and method for monitoring a computer system to guide optimization |
US5964867A (en) * | 1997-11-26 | 1999-10-12 | Digital Equipment Corporation | Method for inserting memory prefetch operations based on measured latencies in a program optimizer |
US5923872A (en) * | 1997-11-26 | 1999-07-13 | Digital Equipment Corporation | Apparatus for sampling instruction operand or result values in a processor pipeline |
US6000044A (en) * | 1997-11-26 | 1999-12-07 | Digital Equipment Corporation | Apparatus for randomly sampling instructions in a processor pipeline |
US6092180A (en) * | 1997-11-26 | 2000-07-18 | Digital Equipment Corporation | Method for measuring latencies by randomly selected sampling of the instructions while the instruction are executed |
US6237059B1 (en) | 1997-11-26 | 2001-05-22 | Compaq Computer Corporation | Method for estimating statistics of properties of memory system interactions among contexts in a computer system |
US6163840A (en) * | 1997-11-26 | 2000-12-19 | Compaq Computer Corporation | Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline |
US6549930B1 (en) | 1997-11-26 | 2003-04-15 | Compaq Computer Corporation | Method for scheduling threads in a multithreaded processor |
US6070009A (en) * | 1997-11-26 | 2000-05-30 | Digital Equipment Corporation | Method for estimating execution rates of program execution paths |
US6442585B1 (en) | 1997-11-26 | 2002-08-27 | Compaq Computer Corporation | Method for scheduling contexts based on statistics of memory system interactions in a computer system |
US6195748B1 (en) | 1997-11-26 | 2001-02-27 | Compaq Computer Corporation | Apparatus for sampling instruction execution information in a processor pipeline |
US6119075A (en) * | 1997-11-26 | 2000-09-12 | Digital Equipment Corporation | Method for estimating statistics of properties of interactions processed by a processor pipeline |
US5809450A (en) * | 1997-11-26 | 1998-09-15 | Digital Equipment Corporation | Method for estimating statistics of properties of instructions processed by a processor pipeline |
US6332178B1 (en) | 1997-11-26 | 2001-12-18 | Compaq Computer Corporation | Method for estimating statistics of properties of memory system transactions |
US6047390A (en) * | 1997-12-22 | 2000-04-04 | Motorola, Inc. | Multiple context software analysis |
US6199199B1 (en) * | 1998-09-16 | 2001-03-06 | International Business Machines Corporation | Presentation of visual program performance data |
US20020059544A1 (en) * | 1999-02-04 | 2002-05-16 | Boucher Michael L. | Methods and systems for determining and displaying activities of concurrent processes |
US6434714B1 (en) * | 1999-02-04 | 2002-08-13 | Sun Microsystems, Inc. | Methods, systems, and articles of manufacture for analyzing performance of application programs |
GB2348718A (en) * | 1999-04-07 | 2000-10-11 | Ibm | Data processing system having a centralised trace facility with dynamic tracing |
US6961749B1 (en) | 1999-08-25 | 2005-11-01 | Network Appliance, Inc. | Scalable file server with highly available pairs |
US6557167B1 (en) * | 1999-09-03 | 2003-04-29 | International Business Machines Corporation | Apparatus and method for analyzing performance of a computer program |
US6748555B1 (en) * | 1999-09-09 | 2004-06-08 | Microsoft Corporation | Object-based software management |
US6961930B1 (en) | 1999-09-22 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Efficient, transparent and flexible latency sampling |
US6542985B1 (en) * | 1999-09-23 | 2003-04-01 | Unisys Corporation | Event counter |
US7020621B1 (en) | 1999-10-06 | 2006-03-28 | Accenture Llp | Method for determining total cost of ownership |
WO2001026010A1 (en) * | 1999-10-06 | 2001-04-12 | Accenture Llp | Method and estimator for production scheduling |
US6675374B2 (en) | 1999-10-12 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | Insertion of prefetch instructions into computer program code |
US6978303B1 (en) * | 1999-10-26 | 2005-12-20 | Iontal Limited | Monitoring of computer usage |
US6883120B1 (en) * | 1999-12-03 | 2005-04-19 | Network Appliance, Inc. | Computer assisted automatic error detection and diagnosis of file servers |
US6658557B1 (en) | 2000-05-25 | 2003-12-02 | Advanced Micro Devices, Inc. | Synthesizing the instruction stream executed by a microprocessor from its branch trace data |
US6658652B1 (en) | 2000-06-08 | 2003-12-02 | International Business Machines Corporation | Method and system for shadow heap memory leak detection and other heap analysis in an object-oriented environment during real-time trace processing |
US6792392B1 (en) * | 2000-06-30 | 2004-09-14 | Intel Corporation | Method and apparatus for configuring and collecting performance counter data |
US7389497B1 (en) * | 2000-07-06 | 2008-06-17 | International Business Machines Corporation | Method and system for tracing profiling information using per thread metric variables with reused kernel threads |
US6658654B1 (en) | 2000-07-06 | 2003-12-02 | International Business Machines Corporation | Method and system for low-overhead measurement of per-thread performance information in a multithreaded environment |
US6735758B1 (en) | 2000-07-06 | 2004-05-11 | International Business Machines Corporation | Method and system for SMP profiling using synchronized or nonsynchronized metric variables with support across multiple systems |
US6904594B1 (en) | 2000-07-06 | 2005-06-07 | International Business Machines Corporation | Method and system for apportioning changes in metric variables in an symmetric multiprocessor (SMP) environment |
US6742178B1 (en) | 2000-07-20 | 2004-05-25 | International Business Machines Corporation | System and method for instrumenting application class files with correlation information to the instrumentation |
US6662359B1 (en) | 2000-07-20 | 2003-12-09 | International Business Machines Corporation | System and method for injecting hooks into Java classes to handle exception and finalization processing |
US6957208B1 (en) | 2000-10-31 | 2005-10-18 | Sun Microsystems, Inc. | Method, apparatus, and article of manufacture for performance analysis using semantic knowledge |
US7120879B2 (en) | 2001-04-20 | 2006-10-10 | Peter Pius Gutberlet | Hierarchical presentation techniques for a design tool |
US7509485B2 (en) * | 2002-09-04 | 2009-03-24 | Chou Hui-Ling | Method for loading a program module in an operating system |
US7353501B2 (en) * | 2002-11-18 | 2008-04-01 | Microsoft Corporation | Generic wrapper scheme |
US7487502B2 (en) * | 2003-02-19 | 2009-02-03 | Intel Corporation | Programmable event driven yield mechanism which may activate other threads |
US7849465B2 (en) | 2003-02-19 | 2010-12-07 | Intel Corporation | Programmable event driven yield mechanism which may activate service threads |
US7900092B2 (en) * | 2003-07-11 | 2011-03-01 | Computer Associates Think, Inc. | Kernel-level method of flagging problems in applications |
US20050193375A1 (en) * | 2004-02-27 | 2005-09-01 | Larson Matthew D. | Software monitoring system for the polling of processes to determine the presently executing function |
US7822662B2 (en) * | 2004-03-29 | 2010-10-26 | Microsoft Corporation | Key performance indicator system and method |
US20060025984A1 (en) * | 2004-08-02 | 2006-02-02 | Microsoft Corporation | Automatic validation and calibration of transaction-based performance models |
US20060048011A1 (en) * | 2004-08-26 | 2006-03-02 | International Business Machines Corporation | Performance profiling of microprocessor systems using debug hardware and performance monitor |
US7383470B2 (en) * | 2004-09-30 | 2008-06-03 | Microsoft Corporation | Method, system, and apparatus for identifying unresponsive portions of a computer program |
US20060070077A1 (en) * | 2004-09-30 | 2006-03-30 | Microsoft Corporation | Providing custom product support for a software program |
US8161461B2 (en) * | 2005-03-24 | 2012-04-17 | Hewlett-Packard Development Company, L.P. | Systems and methods for evaluating code usage |
US20060224925A1 (en) * | 2005-04-05 | 2006-10-05 | International Business Machines Corporation | Method and system for analyzing an application |
US20070074224A1 (en) * | 2005-09-28 | 2007-03-29 | Mediatek Inc. | Kernel based profiling systems and methods |
US20070079177A1 (en) * | 2005-09-30 | 2007-04-05 | Charles Spirakis | Process monitoring and diagnosis apparatus, systems, and methods |
JP5431633B2 (ja) * | 2006-03-17 | 2014-03-05 | 富士通セミコンダクター株式会社 | 性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法 |
JP2008276683A (ja) * | 2007-05-07 | 2008-11-13 | Nec Electronics Corp | 試験装置 |
US7552396B1 (en) * | 2008-04-04 | 2009-06-23 | International Business Machines Corporation | Associating screen position with audio location to detect changes to the performance of an application |
US8713535B2 (en) * | 2008-06-30 | 2014-04-29 | Microsoft Corporation | Reliable and accurate usage detection of a software application |
CN101650787A (zh) * | 2008-08-13 | 2010-02-17 | 鸿富锦精密工业(深圳)有限公司 | 仿生老化系统及其老化方法 |
US8140832B2 (en) * | 2009-01-23 | 2012-03-20 | International Business Machines Corporation | Single step mode in a software pipeline within a highly threaded network on a chip microprocessor |
JP5463699B2 (ja) * | 2009-03-12 | 2014-04-09 | 富士通株式会社 | 並列処理支援プログラム、並列処理支援装置および並列処理支援方法 |
US8572357B2 (en) | 2009-09-29 | 2013-10-29 | International Business Machines Corporation | Monitoring events and incrementing counters associated therewith absent taking an interrupt |
JP2011100388A (ja) * | 2009-11-09 | 2011-05-19 | Fujitsu Ltd | トレース情報収集装置,トレース情報処理装置,およびトレース情報収集方法 |
US8571834B2 (en) | 2010-01-08 | 2013-10-29 | International Business Machines Corporation | Opcode counting for performance measurement |
US8286192B2 (en) * | 2009-12-04 | 2012-10-09 | Red Hat, Inc. | Kernel subsystem for handling performance counters and events |
US9665461B2 (en) * | 2009-12-04 | 2017-05-30 | Red Hat, Inc. | Obtaining application performance data for different performance events via a unified channel |
US8935703B2 (en) * | 2009-12-11 | 2015-01-13 | Red Hat, Inc. | Performance counter inheritance |
US8954996B2 (en) * | 2009-12-11 | 2015-02-10 | Red Hat, Inc. | Profiling the system providing performance statistics in real time |
US8171340B2 (en) * | 2009-12-11 | 2012-05-01 | Red Hat, Inc. | Software performance counters |
US9389936B2 (en) | 2011-09-23 | 2016-07-12 | Microsoft Technology Licensing, Llc. | Monitoring the responsiveness of a user interface |
US8538792B1 (en) * | 2012-04-26 | 2013-09-17 | Jpmorgan Chase Bank, N.A. | Method and system for determining total cost of ownership |
CN109144844B (zh) | 2017-06-27 | 2023-01-31 | 阿里巴巴集团控股有限公司 | 追踪方法、装置、设备和机器可读介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4845615A (en) * | 1984-04-30 | 1989-07-04 | Hewlett-Packard Company | Software performance analyzer |
US5103394A (en) * | 1984-04-30 | 1992-04-07 | Hewlett-Packard Company | Software performance analyzer |
US5047919A (en) * | 1986-04-03 | 1991-09-10 | Harris Corporation | Method and apparatus for monitoring software execution in a parallel multiprocessor computer system |
GB2197506A (en) * | 1986-10-27 | 1988-05-18 | Burr Brown Ltd | Providing and handling break points in a software monitor |
JP2777496B2 (ja) * | 1991-02-28 | 1998-07-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータシステムにおいてマルチプロセスをプロファイリングする際の使用方法 |
GB2258063B (en) * | 1991-07-26 | 1995-07-05 | Research Machines Plc | Monitoring execution of a computer program to provide profile analysis |
-
1993
- 1993-11-04 US US08/147,645 patent/US5485574A/en not_active Expired - Lifetime
-
1994
- 1994-10-21 CA CA002134060A patent/CA2134060C/en not_active Expired - Fee Related
- 1994-11-01 JP JP26881394A patent/JP4034363B2/ja not_active Expired - Lifetime
- 1994-11-03 DE DE69422476T patent/DE69422476T2/de not_active Expired - Lifetime
- 1994-11-03 EP EP94117366A patent/EP0652518B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0652518B1 (de) | 2000-01-05 |
DE69422476D1 (de) | 2000-02-10 |
CA2134060C (en) | 2001-01-02 |
JP4034363B2 (ja) | 2008-01-16 |
EP0652518A1 (de) | 1995-05-10 |
US5485574A (en) | 1996-01-16 |
JPH07182209A (ja) | 1995-07-21 |
CA2134060A1 (en) | 1995-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69422476T2 (de) | Betriebssystembasierte Programmleistungsüberwachung | |
DE69029983T2 (de) | Leistungsverbesserungsgerät für auf Regeln beruhendes Expertensystem | |
DE4011745C2 (de) | ||
DE4332993C1 (de) | Tracer-System zur Fehleranalyse in laufenden Realzeitsystemen | |
DE69614645T2 (de) | System und Verfahren zum Profilieren von Code für eine symmetrische Multiprozessorarchitektur | |
DE3854546T2 (de) | Verfahren und Gerät zur Programmablaufmessung. | |
DE69604347T2 (de) | Bestimmung der dynamischen Eigenschaften von Programmen | |
DE69317982T2 (de) | Verfahren und Anlage zur Realzeitdatensammlung und Anzeigevorrichtung | |
DE10050684A1 (de) | Verfahren und System zur periodischen Ablaufverfolgung für die Echtzeitgenerierung von Segmenten von Aufrufstack-Bäumen | |
DE3751284T2 (de) | Verfahren für die Abschätzung der Leistung eines Datenprozessorsystems. | |
DE3687842T2 (de) | Verfahren und Gerät zum Software-Austesten. | |
DE69031538T2 (de) | System und Verfahren zur Sammlung von Softwareanwendungsereignissen | |
DE69811832T2 (de) | Verfahren zur Schätzung von Statistiken der Eigenschaften von durch eine Prozessorpipeline bearbeiteten Wechselwirkungen | |
DE69703329T2 (de) | Verfahren und Anordnung zur Änderung von Ergebnissen einer Computerprogrammausführungsfolge | |
CH654943A5 (de) | Pruefeinrichtung fuer mikroprogramme. | |
EP0228480A1 (de) | Verfahren und Einrichtung zur Analyse von Steuerprogrammen | |
DE102006041444B4 (de) | Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem | |
EP2962205B1 (de) | Mehrkern-prozessorsystem mit fehleranalysefunktion | |
DE102014102551A1 (de) | Maschine und Verfahren zum Evaluieren von fehlschlagenden Softwareprogrammen | |
DE69128908T2 (de) | Verfahren zum Durchführen von erlässlichen Befehlen in einem Rechner | |
WO2002006949A2 (de) | Verfahren und vorrichtung zur messung der laufzeit einer task in einem echtzeitsystem | |
WO2015086357A1 (de) | Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts | |
DE102013000857A1 (de) | Kompakte Funktionsablaufprotokollierung | |
DE112011100168B4 (de) | Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung | |
DE60010847T2 (de) | Verfahren zur Fehlerbeseitigung in einem Thread-Programm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |