DE10110444A1 - Verfahren und Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts - Google Patents

Verfahren und Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts

Info

Publication number
DE10110444A1
DE10110444A1 DE10110444A DE10110444A DE10110444A1 DE 10110444 A1 DE10110444 A1 DE 10110444A1 DE 10110444 A DE10110444 A DE 10110444A DE 10110444 A DE10110444 A DE 10110444A DE 10110444 A1 DE10110444 A1 DE 10110444A1
Authority
DE
Germany
Prior art keywords
task
computer program
interrupt
tasks
time interval
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.)
Ceased
Application number
DE10110444A
Other languages
English (en)
Inventor
Jens Boettcher
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE10110444A priority Critical patent/DE10110444A1/de
Priority to US10/092,225 priority patent/US20020178209A1/en
Priority to JP2002058817A priority patent/JP2002323984A/ja
Publication of DE10110444A1 publication Critical patent/DE10110444A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording 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 for performance assessment
    • G06F11/3419Recording 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 for performance assessment by assessing time

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)

Abstract

Die Erfindung betrifft ein Verfahren und eine Vorrichtung (1) zum Ermitteln der Auslastung eines Rechengeräts (2). Auf dem Rechengerät (2) wird ein Computerprogramm abgearbeitet. Das Computerprogramm ist in mehrere Tasks (A, B, C) unterteilt und jede Task (A, B, C) umfasst mindestens einen Prozess. Um einerseits die Auslastung des Rechengeräts (2) möglichst genau und zuverlässig und mit einer hohen Dynamik und andererseits die Abarbeitungsdauer der Prozesse oder Tasks (A, B, C) des Computerprogramms unabhängig von Unterbrechungen durch Prozesse höherpriorer Tasks ermitteln zu können, wird vorgeschlagen, dass DOLLAR A - ein Zeitintervall (T) derart gewählt wird, dass während des Zeitintervalls (T) mindestens eine Task (A, B, C) begonnen und wieder beendet wird; DOLLAR A - während des Zeitintervalls (T) nach Beenden der oder jeder Task (A, B, C) die Laufzeit (t¶Laufzeit¶) der Task (A, B, C) ermittelt wird; und DOLLAR A - falls die beendete Task (A, B, C) von mindestens einer weiteren Task (A, B, C) unterbrochen wurde, die Laufzeit der oder jeder weiteren Task (A, B, C) von der ermittelten Laufzeit (t¶Laufzeit¶) abgezogen wird.

Description

Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts. Auf dem Rechengerät wird ein Computerprogramm abgearbeitet. Das Computerprogramm ist in mehrere Tasks unterteilt und jede Task umfasst mindestens einen Prozess.
Die Erfindung betrifft außerdem ein Speicherelement, insbesondere ein Read-Only-Memory, ein Random-Access-Memory oder ein Flash-Memory. Auf dem Speicherelement ist ein Computerprogramm gespeichert, das auf einem Rechengerät, insbesondere auf einem Mikroprozessor, ablauffähig ist.
Schließlich betrifft die vorliegende Erfindung ein Computerprogramm, das auf einem Rechengerät, insbesondere auf einem Mikroprozessor, ablauffähig ist.
Stand der Technik
Ein Computerprogramm im Sinne der vorliegenden Erfindung ist bspw. ein Steuerprogramm, das zur Steuerung/Regelung von technischen Vorgängen und anderer Funktionen in einem Kraftfahrzeug dient. Das Steuerprogramm ist auf einem Rechengerät, insbesondere auf einem Mikroprozessor, eines Steuergeräts eines Kraftfahrzeugs ablauffähig. Das Steuerprogramm ist in mehrere Tasks unterteilt und jede Task umfasst mindestens einen Prozess. Den einzelnen Tasks sind unterschiedliche Prioritäten zugeordnet. Die Tasks können sich gegenseitig unterbrechen. Das Steuerprogramm kann in einem kooperativen oder in einem preemptiven Modus abgearbeitet werden. Die vorliegende Erfindung gilt für die Abarbeitung von Tasks durch das Rechengerät im kooperativen und im preemptiven Modus gleichermaßen.
Die Abarbeitung einzelner Tasks eines Steuerprogramms im kooperativen Modus bedeutet, dass bei unterschiedlich priorisierten Tasks eine auszuführende höherpriorisierte Task zu einer Unterbrechung einer aktuell ausgeführten niederpriorisierten Task führt. Anders als im preemptiven Modus, bei dem eine auszuführende höherpriorisierte Task einen aktuell ausgeführten Prozess einer niederpriorisierten Task unterbricht, wartet im kooperativen Modus die höherpriorisierte Task das Ende des aktuell ausgeführten Prozesses der niederpriorisierten Task ab. Erst danach wird die niederpriorisierte Task unterbrochen und die höherpriorisierte Task ausgeführt. Wenn die höherpriorisierte Task fertig ist, wird die niederpriorisierte Task bei dem Prozess fortgesetzt, vor dem sie unterbrochen wurde.
Die Abarbeitung der Tasks eines Steuerprogramms im kooperativen Modus ist aus der DE 195 00 957 A1 bekannt. Die Unterbrechung einer niederpriorisierten Task durch eine höherpriorisierte Task gehört zu den Aufgaben eines Multi-Tasking Betriebssystems. Ein solches Multi-Tasking Betriebssystem, das sowohl den kooperativen Modus als auch den preemptiven Modus bei der Abarbeitung von Steuerprogrammen unterstützt, ist bspw. das Echtzeitbetriebssystem ERCOSEK von der Firma ETAS Entwicklungs- und Applikationswerkzeuge für elektronische Systeme GmbH & Co. KG, Stuttgart, Deutschland (vgl. ETAS GmbH & Co. KG: ERCOSEK V2.0.0 Manual, Stuttgart, 1998). Auf die DE 195 00 957 A1 und das ERCOSEK-Handbuch wird ausdrücklich Bezug genommen.
Während des Betriebs eines Rechengeräts ist dieses je nach Anzahl der Prozessaufrufe und Abarbeitungsdauer der aufgerufenen Prozesse mehr oder weniger stark ausgelastet. Bei Zeit- oder sicherheitskritischen Anwendungen, wie bspw. der Steuerung von X-by-Wire-Anwendungen (Steer-by-Wire, Brake-by-Wire, etc.) in einem Kraftfahrzeug, muss eine zu starke Auslastung bzw. gar eine Überlastung des Rechengeräts vermieden werden, da bei einer Überlastung eine ordnungsgemäße Abarbeitung des Programms nicht mehr gewährleistet werden kann. Um die Auslastung des Rechengeräts zu überwachen und bei einer zu starken Auslastung geeignete Gegenmassnahmen treffen zu können, ist es bekannt, die Auslastung des Rechengeräts zu ermitteln. Die Gegenmassnahmen bestehen bspw. darin, den Aufruf weniger Zeit- oder sicherheitskritische Prozesse gezielt zu verzögern um den Aufruf und die Abarbeitung von besonders Zeit- oder sicherheitskritischen Prozessen zu ermöglichen.
Zum Ermitteln der Auslastung eines Rechengeräts sind verschiedene Verfahren bekannt. Aus der DE 197 57 876 A1 ist es bspw. bekannt, immer dann, wenn das Rechengerät nicht ausgelastet ist, d. h. kein Prozess auf dem Rechengerät abgearbeitet wird, ein gesondertes Leerlaufprogramm aufzurufen. Aus der Laufdauer oder der Anzahl der Aufrufe des Leerlaufprogramms während eines vorgebbaren Zeitintervalls kann die Auslastung des Rechengeräts ermittelt werden (AuslastungRechengerät [%] = 100% - LaufdauerLeerlaufprogramm [%]). Die berechnete Auslastung stellt einen über einen längeren Zeitintervall gefilteter Mittelwert dar. Aus diesem Grund kann die Auslastung des Rechengeräts mit dem bekannten Verfahren nur mit einer sehr geringen Dynamik bestimmt werden.
Ein weiterer Nachteil des bekannten Verfahrens ist, dass das Leerlaufprogramm bei einer starken Auslastung nur sehr selten aufgerufen wird und auf dem Rechengerät abläuft. Wenn das betrachtete Zeitintervall zu kurz vorgegeben wird, kann es vorkommen, dass das Leerlaufprogramm in dem Zeitintervall nicht aufgerufen wird und eine 100%-ige Auslastung ermittelt wird, obwohl die tatsächliche Auslastung geringer ist. Ebenso wird das Leerlaufprogramm bei einer schwachen Auslastung des Rechengeräts nur sehr selten nicht aufgerufen, nämlich nur dann nicht, wenn Prozesse des Computerprogramms abgearbeitet werden. Wenn das betrachtete Zeitintervall zu kurz vorgegeben wird, kann es vorkommen, dass das Leerlaufprogramm in dem Zeitintervall ständig abläuft und eine 0%-ige Auslastung ermittelt wird, obwohl die tatsächliche Auslastung höher ist.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, einerseits die Auslastung eines Rechengeräts möglichst genau und zuverlässig und mit einer hohen Dynamik und andererseits die Abarbeitungsdauer von Prozessen oder Tasks eines auf dem Rechengerät abgearbeiteten Computerprogramms unabhängig von Unterbrechungen durch Prozesse höherpriorer Tasks zu ermitteln.
Zur Lösung dieser Aufgabe schlägt die vorliegende Erfindung ausgehend von dem Verfahren der eingangs genannten Art vor, dass
  • - ein Zeitintervall derart gewählt wird, dass während des Zeitintervalls mindestens eine Task begonnen und wieder beendet wird;
  • - während des Zeitintervalls nach Beenden der oder jeder Task die Laufzeit der Task ermittelt wird; und
  • - falls die beendete Task von mindestens einer weiteren Task unterbrochen wurde, die Laufzeit der oder jeder weiteren Task von der ermittelten Laufzeit abgezogen wird.
Vorteile der Erfindung
Mit dem erfindungsgemäßen Verfahren können die unterbrechungsfreien Abarbeitungszeiten einer jeden in dem Rechengerät aktiven Task ermittelt werden. Die geschieht, durch Einfügen geeigneter Programm-Befehle am Abarbeitungsbeginn und am Abarbeitungsende der Tasks des Computerprogramms. Durch eine Addition der Abarbeitungszeiten aller Tasks, die innerhalb des vorgebbaren Zeitintervalls beendet werden, und eine anschließende Normierung auf das Zeitintervall, kann die prozentuale Auslastung des Rechengeräts mit nahezu beliebiger Dynamik und ohne Filterung bzw. Mittelwertbildung ermittelt werden.
Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass
  • - das Zeitintervall derart gewählt wird, dass während des Zeitintervalls mindestens zwei Tasks begonnen und wieder beendet werden; und
  • - die Laufzeiten der beendeten Tasks in der Reihenfolge der Beendigung der Tasks ermittelt werden.
Gemäß einer bevorzugten Ausführungform der vorliegenden Erfindung wird vorgeschlagen, dass
  • - zu Beginn des Verfahrens eine Variable (Unterbr) auf Null gesetzt wird;
  • - die Laufzeit der beendeten Task anhand der Gleichung tLaufzeit = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang) ermittelt wird; und
  • - ein neuer Wert für die Variable anhand der Gleichung Unterbr = UnterbrAnfang + (tEnde - tAnfang) ermittelt wird,
wobei tAnfang
der Wert eines während der Abarbeitung des Computerprogramms fortlaufenden Zeitzählers zu Beginn der Task, tEnde
der Wert des Zeitzählers nach Beenden der Task, UnterbrAnfang
der Wert der Variablen zu Beginn der Task und UnterbrEnde
der Wert der Variablen nach Beenden der Task ist.
Vorteilhafterweise werden zum Ermitteln der Auslastung des Rechengeräts nach Ablauf des vorgegebenen Zeitintervalls die ermittelten Laufzeiten der Tasks addiert und in Verhältnis zu dem Zeitintervall gesetzt.
Vorzugsweise werden die ermittelten Laufzeiten der einzelnen Tasks jeweils in einer eigenen Speicherzelle des Rechengeräts, vorzugsweise in einer Random-Access-Memory (RAM)-Speicherzelle, abgelegt. Für eine nachfolgende Berechnung der Auslastung muß gewährleistet werden, dass in den Speicherzellen aktuelle Laufzeitwerte zur Verfügung stehen. Das kann bspw. durch Löschen der Speicherzellen nach der Berechnung der Auslastung oder durch Überschreiben des Inhalts der Speicherzellen nach der Berechnung bspw. mit Null oder einem aktuellen Laufzeitwert für die nachfolgende Berechnung.
Von besonderer Bedeutung ist die Realisierung des erfindungsgemäßen Verfahrens in der Form eines Speicherelements. Dabei ist auf dem Speicherelement ein Computerprogramm gespeichert, das auf einem Rechengerät, insbesondere auf einem Mikroprozessor, ablauffähig und zur Ausführung des erfindungsgemäßen Verfahrens geeignet ist. In diesem Fall wird also die Erfindung durch ein auf dem Speicherelement abgespeichertes Computerprogramm realisiert, so dass dieses mit dem Computerprogramm versehene Speicherelement in gleicher Weise die Erfindung darstellt wie das Verfahren, zu dessen Ausführung das Computerprogramm geeignet ist. Als Speicherelement kann insbesondere ein elektrisches Speichermedium zur Anwendung kommen, bspw. ein Read-Only-Memory, ein Random-Access- Memory oder ein Flash-Memory.
Die Erfindung betrifft auch ein Computerprogramm, das zur Ausführung des erfindungsgemäßen Verfahrens geeignet ist, wenn es auf einem Rechengerät, insbesondere auf einem Mikroprozessor, abläuft. Besonders bevorzugt ist dabei, wenn das Computerprogramm auf einem Speicherelement, insbesondere auf einem Flash-Memory, abgespeichert ist.
Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung wird ausgehend von der Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts der eingangs genannten Art vorgeschlagen, dass die Vorrichtung
  • - während eines vorgebbaren Zeitintervalls nach Beenden der oder jeder Task die Laufzeit der Task ermittelt; und
  • - falls die beendete Task von mindestens einer weiteren Task unterbrochen wurde, die Laufzeit der oder jeder weiteren Task von der ermittelten Laufzeit abzieht.
Die erfindungsgemäße Vorrichtung ist bspw. als ein Steuergerät eines Kraftfahrzeugs ausgebildet, das zur Steuerung/Regelung von technischen Vorgängen und anderer Funktionen in dem Kraftfahrzeug dient. Das Steuergerät weist ein Rechengerät, insbesondere einen Mikroprozessor, auf, auf dem ein Steuerprogramm ablauffähig ist. Das Steuerprogramm ist in mehrere Tasks unterteilt und jede Task umfasst mindestens einen Prozess. In der Vorrichtung sind Mittel zur Ausführung des erfindungsgemäßen Verfahrens realisiert. Dadurch können die unterbrechungsfreien Abarbeitungszeiten einer jeden in dem Rechengerät aktiven Task ermittelt werden. Durch eine Addition der Abarbeitungszeiten aller Tasks, die innerhalb des vorgebbaren Zeitintervalls beendet werden, und eine anschließende Normierung auf das Zeitintervall, kann zudem die prozentuale Auslastung des Rechengeräts ermittelt werden.
Zeichnungen
Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Patentansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung. Es zeigen:
Fig. 1 ein Ablaufdiagramm eines in drei Tasks A, B, C unterteilten Steuerprogramms;
Fig. 2 ein Ablaufdiagramm eines erfindungsgemäßen Verfahrens gemäß einer bevorzugten Ausführungsform; und
Fig. 3 eine erfindungsgemäße Vorrichtung zur Abarbeitung des Verfahrens aus Fig. 2 gemäß einer bevorzugten Ausführungsform.
Beschreibung der Ausführungsbeispiele
In Fig. 3 ist ein Steuergerät eines Kraftfahrzeugs in seiner Gesamtheit mit dem Bezugszeichen 1 bezeichnet. Das Steuergerät 1 weist ein Rechengerät auf, das als ein Mikroprozessor 2 ausgebildet ist. Auf einem Speicherelement des Steuergeräts 1, das als ein Flash-Memory 3 ausgebildet ist, ist ein Computerprogramm gespeichert. Das Computerprogramm ist als ein Steuerprogramm zur Steuerung von technischen Vorgängen insbesondere in einem Kraftfahrzeug ausgebildet. Das Steuerprogramm kann auf dem Mikroprozessor 2 abgearbeitet werden. Zur Datenübertragung ist zwischen dem Mikroprozessor 2 und dem Flash-Memory 3 eine Datenverbindung 4, die bspw. als eine Bus-Leitung ausgebildet ist, vorgesehen. An dem Steuergerät 1 liegen verschiedene Eingangsgrößen 5 an, die bspw. die Signale von Sensoren und Messwertaufnehmern sind. Die Eingangsgrößen 5 charakterisieren den Zustand der zu steuernden Funktionen, den Zustand des Kraftfahrzeugs oder andere Zustände wie bspw. die Witterungsverhältnisse. Anhand der Eingangsgrößen 5 werden in dem Steuergerät 1 Ausgangsgrößen 6 ermittelt, die zur Ansteuerung von Aktoren oder Stellern dienen. Die Ausgangsgrößen 6 sind bspw. Sollwerte für Steuerungen oder Regelungen.
Das Steuerprogramm ist in mehrere Tasks A, B, C unterteilt (vgl. Fig. 1), wobei jede Task wiederum mindestens einen Prozess umfasst. Eine Task A, B, C wird zu einem bestimmten Zeitpunkt oder regelmäßig mit einer bestimmten Abtastzeit aufgerufen und kann in einem kooperativen oder in einem preemptiven Modus abgearbeitet werden. Jeder Task A, B, C ist eine bestimmte Priorität zugeordnet. Die Task A hat die niedrigste Priorität, die Task C die höchste. Wenn während der Abarbeitung des Steuerprogramms zwei Tasks gleichzeitig ausgeführt werden sollen, werden die Prioritäten der beiden Tasks verglichen und die Task mit der höheren Prioriät als erste abgearbietet.
Wenn bspw. die Task A abgearbeitet wird und die Task B ausgeführt werden soll, können je nach der von einem Programmierer gewählten Konfiguration der Tasks verschiedene Fälle auftreten:
Falls die Task A eine höhere Priorität als die Task B hat (in Fig. 1 nicht der Fall), wird mit der Ausführung der Task B gewartet bis die Task A beendet ist.
Falls die Task B eine höhere Priorität als die Task A hat (Beispiel aus Fig. 1), wird die Abarbeitung der Task A unterbrochen und die Task B ausgeführt. Falls der Programmierer die Ausführung der Tasks in dem kooperativen Modus gewählt hat, wird mit der Ausführung der Task B auf das Ende des aktuellen Prozesses der Task A gewartet. Sobald dieser Prozess beendet ist, wird die Task A unterbrochen und die Task B ausgeführt. Wenn die Task B beendet ist, wird die Task A zu Beginn des Prozesses, vor dem Sie zur Ausführung der Task B unterbrochen wurde, weiter abgearbeitet.
Falls der Programmierer die Abarbeitung der Tasks in dem preemptiven Modus gewählt hat, unterbricht die Task B den aktuellen Prozess der Task A und die Task B wird unmittelbar ausgeführt. Anschließend wird die Task A bei dem unterbrochenen Prozess weiter abgearbeitet.
Die Unterbrechung einer Task durch eine andere Task mit einer höheren Prioriät gehört zu den Aufgaben eines Multi- Tasking Betriebsystems. Die Laufzeit der Prozesse schwankt je nach der Belastung des Rechengeräts, auf dem das Steuerprogramm abgearbeitet wird. Aus diesem Grund und aufgrund der möglichen, von anderen Tasks verursachten Unterbrechungen kann die Reihenfolge der Prozessaufrufe bei einer mehrmaligen Ausführung ein und desselben Steuerprogramms unterschiedlich sein. Die Laufzeiten der einzelnen Tasks innerhalb eines vorgebbaren Zeitintervalls kann also Schwankungen unterworfen sein.
Um die Abarbeitungsdauer von Prozessen oder Tasks A, B, C eines auf dem Mikroprozessor 2 abgearbeiteten Steuerprogramms unabhängig von Unterbrechungen durch Prozesse höherpriorer Tasks zu ermitteln, wird ein erfindungsgemäßes Verfahren vorgeschlagen, von dem ein Ablaufdiagramm in Fig. 2 dargestellt ist. Anhand der Abarbeitungsdauer der einzelnen Prozesse oder Tasks A, B, C innerhalb eines vorgebbaren Zeitintervalls T kann anhand des erfindungsgemäßen Verfahrens auch die Auslastung des Mikroprozessors 2 genau und zuverlässig und mit einer hohen Dynamik ermittelt werden.
Das Verfahren beginnt in einem Funktionsblock 10. In einem Funktionsblock 11 wird das Zeitintervall T vorgegeben. Das Zeitintervall T wird derart gewählt, dass während des Zeitintervalls T mindestens eine Task A, B, C begonnen und auch wieder beendet wird. In einem Funktionsblock 12 wird die Abarbeitung des Steuerprogramms (vgl. Fig. 2) auf dem Mikroprozessor 2 ganz normal eingeleitet. In einem Abfrageblock 13 wird überprüft, ob eine Task beendet wurde. Falls ja, wird in einem Funktionsblock 14 die Abarbeitungsdauer tLaufzeit_Task der beendeten Task nach folgender Gleichung berechnet:
tLaufzeit_Task = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang),
wobei tAnfang der Wert eines während der Abarbeitung des Computerprogramms fortlaufenden Zeitzählers zu Beginn der Task, tEnde der Wert des Zeitzählers nach Beenden der Task, UnterbrAnfang der Wert einer Variablen Unterbr zu Beginn der Task und UnterbrEnde der Wert der Variablen Unterbr nach Beenden der Task ist.
Anschließend wird in einem Funktionsblock 15 ein neuer Wert für die Variable Unterbr nach folgender Gleichung berechnet:
Unterbr = UnterbrAnfang + (tEnde - tAnfang).
In einem Abfrageblock 16 wird überprüft, ob das vorgegebene Zeitintervall T bereits abgelaufen ist oder nicht. Falls ja wird in einem Funktionsblock 17 die Summe tges der Abarbeitungsdauer tLaufzeit_Task aller Tasks, die in dem vorgegebenen Zeitintervall T beendet wurden, gebildet. In einem Funktionsblock 18 wird die Gesamt-Abarbeitungsdauer tges dann zur Ermittlung der Auslastung des Mikroprozessors 2 in Verhältnis zu dem vorgegebenen Zeitintervall T gesetzt. In einem Funktionsblock 19 ist das erfindungsgemäße Verfahren beendet.
Falls sich in dem Abfrageblock 13 ergibt, dass keine Task beendet ist, oder falls sich in dem Abfrageblock 16 ergibt, dass das vorgegebene Zeitintervall T noch nicht abgelaufen ist, wird zu dem Funktionsblock 12 verzweigt, wo die Abarbeitung des Steuerprogramms fortgesetzt wird.
Nachfolgend wird das erfindungsgemäße Verfahren aus Fig. 2 anhand des Steuerprogramms aus Fig. 1 beispielhaft erläutert. Das Zeitintervall T wird auf T = 610 - 100 = 510 Millisekunden gesetzt. Die Variable Unterbr wird auf Null gesetzt. Anschließend wird der Ablauf des Steuerprogramms begonnen. Die erste Task die beendet wird, ist die Task C. Die Abarbeitungsdauer dieser Task C wird ermittelt:
tLaufzeit_C = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang)
= 270 - 210 - 0
= 60 Millisekunden.
Die Differenz (UnterbrEnde - UnterbrAnfang) wird auf Null gesetzt, da die Task C nicht unterbrochen wurde. Anschließend wird die Variable Unterbr ermittelt:
Unterbr = UnterbrAnfang + (tEnde - tAnfang)
= 0 + (270 - 210)
= 60 Millisekunden.
Die nächste Task, die beendet wird, ist wiederum die Task C. Für diese Task C wird die Abarbeitungsdauer tLaufzeit_C und der neue Wert für die Variable Unterbr berechnet:
tLaufzeit_C = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang)
= 350 - 310 - 0
= 40 Millisekunden,
Unterbr = UnterbrAnfang + (tEnde - tAnfang)
= 60 + (350 - 310)
= 100 Millisekunden.
Als nächste Task ist die Task B beendet. Für die Task B wird die Abarbeitungsdauer tLaufzeit_B und der neue Wert für die Variable Unterbr berechnet:
tLaufzeit_B = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang)
= 420 - 150 - (100 - 0)
= 170 Millisekunden,
Unterbr = UnterbrAnfang + (tEnde - tAnfang)
= 0 + (420 - 150)
= 270 Millisekunden.
Schließlich ist die Task A beendet. Für die Task A wird die Abarbeitungsdauer tLaufzeit_A und der neue Wert für die Variable Unterbr berechnet:
tLaufzeit_A = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang)
= 530 - 100 - (270 - 0)
= 160 Millisekunden,
Unterbr = UnterbrAnfang + (tEnde - tAnfang)
= 0 + (530 - 100)
= 430 Millisekunden.
Die Summe tges der Abarbeitungsdauer der einzelnen Tasks A, B, C ist dann tges = 430 Millisekunden. Bei einem vorgegebenen Zeitintervall T von 510 Millisekunden ergibt sich mit dem erfindungsgemäßen Verfahren somit eine Auslastung des Mikroprozessors 2 von tges/T = 430/510 = 0,843 oder 84,3%.
Das erfindungsgemäße Verfahren kann auf einfache Weise realisiert werden, indem das Steuerprogramm derart modifiziert wird, dass am Anfang und am Ende einer Task zusätzliche Funktionalitäten programmiert werden. Die zusätzlichen Funktionalitäten am Anfang der Task umfassen das Einlesen des Zählerstands eines fortlaufenden Zeitzählers und das Abspeichern des Zählerstands unter der Variablen tAnfang. Außerdem kann am Anfang der Task der Wert der Variablen Unterbr eingelesen und ein Wert in der Variablen UnterbrAnfang abgespeichert werden. Die zusätzlichen Funktionalitäten am Ende der Task umfassen das Einlesen des Zählerstands des Zeitzählers und das Abspeichern des Zählerstands unter der Variablen tEnde. Außerdem kann am Ende der Task der Wert der Variablen Unterbr eingelesen und ein Wert in der Variablen UnterbrEnde abgespeichert werden. Des weiteren wird die Laufzeit tLaufzeit_Task und der neue Wert für die Variable Unterbr am Ende der Task berechnet.
Die Auslastung eines Rechengeräts kann auch durch die nachfolgend erläuterte besonders effektive Berechnung ermittelt werden. Die nachfolgende Berechnung ergibt sich durch mathematisches Umformen der oben erläuterten Berechnung. Bei der vorgeschlagenen besonders effektiven Berechnung wird lediglich eine Hilfsvariable Hilfsvar benötigt und es müssen nur vier Additionen ausgeführt werden. Am Anfang der Task wird die Hilfsvariable Hilfsvar berechnet:
Hilfsvar = UnterbrAnfang - tAnfang
Am Ende der Task wird die Laufzeit tLaufzeit_Task und die Variable Unterbr berechnet:
tLaufzeit_Task = tEnde - UnterbrEnde + Hilfsvar
Unterbr = tEnde + Hilfsvar.
Gemäß noch einer anderen Berechnung der Auslastung des Rechengeräts werden lediglich zwei Hilfsvariable Hilfsvar1 und Hilfsvar2 benötigt und es müssen nur drei Additionen ausgeführt werden. Am Anfang der Task wird die erste Hilfsvariable Hilfsvar1 berechnet:
Hilfsvar1 = UnterbrAnfang - tAnfang
Am Ende der Task wird die zweite Hilfsvariable Hilfsvar2, die Laufzeit tLaufzeit_Task und die Variable Unterbr berechnet:
Hilfsvar2 = tEnde + Hilfsvar1
tLaufzeit_Task = Hilfsvar2 - UnterbrEnde
Unterbr = Hilfsvar2.

Claims (10)

1. Verfahren zum Ermitteln der Auslastung eines Rechengeräts (2), auf dem ein Computerprogramm abgearbeitet wird, wobei das Computerprogramm in mehrere Tasks (A, B, C) unterteilt ist und jede Task (A, B, C) mindestens einen Prozess umfasst, dadurch gekennzeichnet, dass
ein Zeitintervall (T) derart gewählt wird, dass während des Zeitintervalls (T) mindestens eine Task (A, B, C) begonnen und wieder beendet wird;
während des Zeitintervalls (T) nach Beenden der oder jeder Task (A, B, C) die Laufzeit (tLaufzeit) der Task (A, B, C) ermittelt wird; und
falls die beendete Task (A, B, C) von mindestens einer weiteren Task (A, B, C) unterbrochen wurde, die Laufzeit der oder jeder weiteren Task (A, B, C) von der ermittelten Laufzeit (tLaufzeit) abgezogen wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass
das Zeitintervall (T) derart gewählt wird, dass während des Zeitintervalls (T) mindestens zwei Tasks (A, B, C) begonnen und wieder beendet werden; und
die Laufzeiten (tLaufzeit) der beendeten Tasks (A, B, C) in der Reihenfolge der Beendigung der Tasks (A, B, C) ermittelt werden.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass
zu Beginn des Verfahrens eine Variable (Unterbr) auf Null gesetzt wird;
die Laufzeit (tLaufzeit) der beendeten Task (A, B, C) anhand der Gleichung
tLaufzeit = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang)
ermittelt wird; und
ein neuer Wert für die Variable (Unterbr) anhand der Gleichung
Unterbr = UnterbrAnfang + (tEnde - tAnfang)
ermittelt wird,
wobei tAnfang der Wert eines während der Abarbeitung des Computerprogramms fortlaufenden Zeitzählers zu Beginn der Task (A, B, C), tEnde der Wert des Zeitzählers nach Beenden der Task (A, B, C), UnterbrAnfang der Wert der Variablen (Unterbr) zu Beginn der Task (A, B, C) und UnterbrEnde der Wert der Variablen (Unterbr) nach Beenden der Task (A, B, C) ist.
4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass die ermittelten Laufzeiten (tLauzeit) der einzelnen Tasks (A, B, C) jeweils in einer eigenen Speicherzelle des Rechengeräts (2), vorzugsweise in einer Random-Access-Memory (RAM)-Speicherzelle, abgelegt werden.
5. Verfahren nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass zum Ermitteln der Auslastung des Rechengeräts (2) nach Ablauf des vorgegebenen Zeitintervalls (T) die ermittelten Laufzeiten (tLaufzeit) der Tasks (A, B, C) addiert und in Verhältnis zu dem Zeitintervall (T) gesetzt werden.
6. Speicherelement, insbesondere Read-Only-Memory, Random-Access-Memory oder Flash-Memory (3), auf dem ein Computerprogramm gespeichert ist, das auf einem Rechengerät (2), insbesondere auf einem Mikroprozessor, ablauffähig und zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 5 geeignet ist.
7. Computerprogramm, dadurch gekennzeichnet, dass das Computerprogramm zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 5 geeignet ist, wenn es auf einem Rechengerät (2), insbesondere auf einem Mikroprozessor, abläuft.
8. Computerprogramm nach Anspruch 7, dadurch gekennzeichnet, dass das Computerprogramm auf einem Speicherelement, insbesondere auf einem Flash-Memory (3), abgespeichert ist.
9. Vorrichtung (1) zum Ermitteln der Auslastung eines Rechengeräts (2), auf dem ein Computerprogramm abarbeitbar ist, wobei das Computerprogramm in mehrere Tasks (A, B, C) unterteilt ist und jede Task (A, B, C) mindestens einen Prozess umfasst, dadurch gekennzeichnet, dass die Vorrichtung
während eines vorgebbaren Zeitintervalls (T) nach Beenden der oder jeder Task (A, B, C) die Laufzeit (tLaufzeit) der Task (A, B, C) ermittelt; und
falls die beendete Task (A, B, C) von mindestens einer weiteren Task (A, B, C) unterbrochen wurde, die Laufzeit der oder jeder weiteren Task (A, B, C) von der ermittelten Laufzeit (tLaufzeit) abzieht.
10. Vorrichtung (1) nach Anspruch 9, dadurch gekennzeichnet, dass die Vorrichtung Mittel zur Ausführung eines Verfahrens nach einem der Ansprüche 2 bis 5 aufweist.
DE10110444A 2001-03-05 2001-03-05 Verfahren und Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts Ceased DE10110444A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE10110444A DE10110444A1 (de) 2001-03-05 2001-03-05 Verfahren und Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts
US10/092,225 US20020178209A1 (en) 2001-03-05 2002-03-05 Method and device for determining the load of a computing element
JP2002058817A JP2002323984A (ja) 2001-03-05 2002-03-05 計算装置の利用度の算出方法,その算出装置,メモリ素子,コンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10110444A DE10110444A1 (de) 2001-03-05 2001-03-05 Verfahren und Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts

Publications (1)

Publication Number Publication Date
DE10110444A1 true DE10110444A1 (de) 2002-09-26

Family

ID=7676306

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10110444A Ceased DE10110444A1 (de) 2001-03-05 2001-03-05 Verfahren und Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts

Country Status (3)

Country Link
US (1) US20020178209A1 (de)
JP (1) JP2002323984A (de)
DE (1) DE10110444A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3073375A1 (de) * 2015-03-26 2016-09-28 Elektronische Fahrwerksysteme GmbH Verfahren zur ermittlung einer maximalen laufzeit für ein tasksystem
US20210080921A1 (en) * 2019-09-12 2021-03-18 Fanuc Corporation Servo control device, servo control system, and servo control method

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1676202A2 (de) * 2003-10-23 2006-07-05 Siemens Aktiengesellschaft Verfahren und anordnung zur laufzeitmessung von funktionen
DE102004046878A1 (de) * 2004-09-28 2006-04-13 Robert Bosch Gmbh Verfahren und Vorrichtung zum Bestimmen einer Systemlast eines Prozessorsystems
CN1329825C (zh) * 2004-10-08 2007-08-01 华为技术有限公司 基于数字信号处理器的多任务处理方法
EP1960886A1 (de) 2005-12-16 2008-08-27 International Business Machines Corporation Verfahren, system und computerprogramm zum zählen der benutzung von softwareprodukten auf der basis von echtzeit-benchmarking der verarbeitungsleistung
RU2305313C1 (ru) * 2005-12-27 2007-08-27 Яков Аркадьевич Горбадей Способ я.а. горбадея обеспечения надежной работы программного вычислительного средства
JP5173495B2 (ja) * 2008-03-03 2013-04-03 キヤノン株式会社 情報処理装置、ジョブ処理方法、プログラム
US11726814B2 (en) * 2018-05-30 2023-08-15 Texas Instruments Incorporated Resource availability management using real-time task manager in multi-core system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016466A (en) * 1996-08-27 2000-01-18 Compuware Corporation Accurate profile and timing information for multitasking systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989133A (en) * 1984-11-30 1991-01-29 Inmos Limited System for executing, scheduling, and selectively linking time dependent processes based upon scheduling time thereof
US5488713A (en) * 1989-12-27 1996-01-30 Digital Equipment Corporation Computer simulation technique for predicting program performance
JP3169597B2 (ja) * 1990-05-16 2001-05-28 エヌイーシーソフト株式会社 マルチタスク実行時間アカウント方法とその機構
US6126329A (en) * 1993-06-08 2000-10-03 Rational Software Coporation Method and apparatus for accurate profiling of computer programs
US6385637B1 (en) * 1997-08-21 2002-05-07 Rockwell Science Center, Inc. Periodic process timer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016466A (en) * 1996-08-27 2000-01-18 Compuware Corporation Accurate profile and timing information for multitasking systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3073375A1 (de) * 2015-03-26 2016-09-28 Elektronische Fahrwerksysteme GmbH Verfahren zur ermittlung einer maximalen laufzeit für ein tasksystem
US20210080921A1 (en) * 2019-09-12 2021-03-18 Fanuc Corporation Servo control device, servo control system, and servo control method
US11687055B2 (en) * 2019-09-12 2023-06-27 Fanuc Corporation Servo control device, servo control system, and servo control method

Also Published As

Publication number Publication date
US20020178209A1 (en) 2002-11-28
JP2002323984A (ja) 2002-11-08

Similar Documents

Publication Publication Date Title
EP0771444B1 (de) Verfahren zur steuerung von technischen vorgängen oder prozessen
DE4410775C2 (de) Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät
EP1303809B1 (de) Verfahren und vorrichtung zur messung der laufzeit einer task in einem echtzeitsystem
EP0799441B1 (de) Verfahren zur steuerung von technischen vorgängen
WO2017140504A1 (de) Verfahren und vorrichtung zum betreiben eines steuergeräts
DE10110444A1 (de) Verfahren und Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts
DE10243856B4 (de) Regler und Verfahren zum Betreiben eines Reglers
EP2574997A1 (de) Verfahren zur Einstellung eines Betriebszustandes
EP3080668B1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
DE10061001B4 (de) Verfahren und Steuergerät zur Steuerung von technischen Vorgängen in einem Kraftfahrzeug, sowie Speicherelement und Steuerprogramm hierfür
EP1514180A2 (de) Reaktionszeit-beschränkung eines software-prozesses
DE102017130552B3 (de) Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung
DE102018125090A1 (de) Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung
DE10065498A1 (de) Verfahren und Vorrichtung zur Rekonstruktion des Prozessablaufs eines Steuerprogramms
EP2126700B1 (de) Steuerung des laufzeitverhaltens von prozessen
DE102016206490A1 (de) Elektronische steuereinheit
EP4139849A1 (de) Verfahren zum konfigurieren von komponenten in einem system mit hilfe von multi-agent reinforcement learning, computerlesbares speichermedium und system
DE19728971C2 (de) Datenverarbeitungsvorrichtung und -verfahren
DE19727480C1 (de) Computersystem mit Unterbrechungssteuerung
DE10200242A1 (de) Verfahren zur Funktionsüberwachung eines Steuergeräts
EP0972232B1 (de) Freiprogrammierbare steuerung
DE10229520A1 (de) Verfahren und Vorrichtung sowie Betriebssystem zur Steuerung von Vorgängen bei einem Fahrzeug
DE102020001990A1 (de) Numerische Steuervorrichtung
EP3757525B1 (de) Sensor und verfahren zum betreiben eines sensors
EP0586847B1 (de) Verfahren zur Unterbrechungssteuerung von Prozessen in Kommunikationssystemen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection