DE10110444A1 - Verfahren und Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts - Google Patents
Verfahren und Vorrichtung zum Ermitteln der Auslastung eines RechengerätsInfo
- 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
Links
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/3409—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 for performance assessment
- G06F11/3419—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 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.
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.
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.
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.
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 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.
= 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.
= 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,
= 350 - 310 - 0
= 40 Millisekunden,
Unterbr = UnterbrAnfang + (tEnde - tAnfang)
= 60 + (350 - 310)
= 100 Millisekunden.
= 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,
= 420 - 150 - (100 - 0)
= 170 Millisekunden,
Unterbr = UnterbrAnfang + (tEnde - tAnfang)
= 0 + (420 - 150)
= 270 Millisekunden.
= 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,
= 530 - 100 - (270 - 0)
= 160 Millisekunden,
Unterbr = UnterbrAnfang + (tEnde - tAnfang)
= 0 + (530 - 100)
= 430 Millisekunden.
= 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.
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.
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.
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.
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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005041041A2 (de) * | 2003-10-23 | 2005-05-06 | 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 | キヤノン株式会社 | 情報処理装置、ジョブ処理方法、プログラム |
US11048552B2 (en) * | 2018-05-30 | 2021-06-29 | Texas Instruments Incorporated | High-speed broadside communications and control system |
Citations (1)
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)
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 |
-
2001
- 2001-03-05 DE DE10110444A patent/DE10110444A1/de not_active Ceased
-
2002
- 2002-03-05 US US10/092,225 patent/US20020178209A1/en not_active Abandoned
- 2002-03-05 JP JP2002058817A patent/JP2002323984A/ja not_active Withdrawn
Patent Citations (1)
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)
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 | |
DE10110444A1 (de) | Verfahren und Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts | |
EP3080668B1 (de) | Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts | |
DE10243856B4 (de) | Regler und Verfahren zum Betreiben eines Reglers | |
EP3417373A1 (de) | Verfahren und vorrichtung zum betreiben eines steuergeräts | |
EP2574997A1 (de) | Verfahren zur Einstellung eines Betriebszustandes | |
EP1514180A2 (de) | Reaktionszeit-beschränkung eines software-prozesses | |
DE102018125090A1 (de) | Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung | |
DE10061001B4 (de) | Verfahren und Steuergerät zur Steuerung von technischen Vorgängen in einem Kraftfahrzeug, sowie Speicherelement und Steuerprogramm hierfür | |
DE102017130552B3 (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 | |
DE102012102373A1 (de) | Verfahren zur Abschätzung eines Ressourcenverbrauchs bei der Erzeugung eines Steuergeräteprogrammcodes | |
DE102016206490A1 (de) | Elektronische steuereinheit | |
WO2021249616A1 (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 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |