DE10110444A1 - Determining workload of computer apparatus running computer program by determining run time of tasks after completion and subtracting run times upon interruption - Google Patents

Determining workload of computer apparatus running computer program by determining run time of tasks after completion and subtracting run times upon interruption

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
German (de)
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/en
Priority to US10/092,225 priority patent/US20020178209A1/en
Priority to JP2002058817A priority patent/JP2002323984A/en
Publication of DE10110444A1 publication Critical patent/DE10110444A1/en
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

Abstract

The computer program is divided into several tasks (A,B,C), and each task includes at least one process. A time interval (T) is selected so that at least one task is started and ended during the time interval. After ending the (or each) task, the run time of the task is determined. If the ended task is interrupted by a further task, the run time of the further task is subtracted from the determined run time. Independent claims are also included for: (a) a storage device such as a ROM, RAM or flash memory for storing a computer program (b) a computer program (c) a device for determining the workload of a computer apparatus.

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.The present invention relates to a method and a Device for determining the utilization of a Computing device. A computer program is on the computing device processed. The computer program is divided into several tasks divided and each task comprises at least one process.

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.The invention also relates to a memory element, in particular a read-only memory, a random access memory or a flash memory. There is a on the storage element Computer program stored on a computing device, in particular on a microprocessor, is executable.

Schließlich betrifft die vorliegende Erfindung ein Computerprogramm, das auf einem Rechengerät, insbesondere auf einem Mikroprozessor, ablauffähig ist.Finally, the present invention relates to a Computer program running on a computing device, in particular on a microprocessor, is executable.

Stand der TechnikState of the art

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.A computer program in the sense of the present invention is, for example, a control program for controlling of technical processes and other functions in one Motor vehicle is used. The control program is on one Computing device, in particular on a microprocessor, one Control unit of a motor vehicle executable. The Control program is divided into several tasks and each Task comprises at least one process. The individual tasks  different priorities are assigned. The tasks can interrupt each other. The control program can be in a cooperative or in a preemptive mode be processed. The present invention applies to Processing of tasks by the computing device in the cooperative and in preemptive mode alike.

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.The processing of individual tasks of a control program in cooperative mode means that at different prioritized tasks to perform a higher priority Task to interrupt a currently running low priority task. Unlike in the preemptive Mode in which a higher priority task to be executed a currently running process of a low priority task interrupts, waits in cooperative mode the higher priority task the end of the Process of the low-priority task currently running from. Only then will the low-priority task interrupted and the higher priority task executed. When the higher priority task is finished, the low priority task continued with the process before which she was interrupted.

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.The processing of the tasks of a control program in the cooperative mode is known from DE 195 00 957 A1. Interrupting a low-priority task by a higher-priority task is one of the tasks of a multi-tasking operating system. Such a multi-tasking operating system, which supports both the cooperative mode and the preemptive mode when processing control programs, is, for example, the real-time operating system ERCOS EK from the company ETAS Development and Application Tools for Electronic Systems GmbH & Co. KG, Stuttgart, Germany (see ETAS GmbH & Co.KG: ERCOS EK V2.0.0 Manual, Stuttgart, 1998). Reference is expressly made to DE 195 00 957 A1 and the ERCOS EK manual.

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.During the operation of a computing device, this depends on Number of process calls and processing time of the called processes more or less busy. In time- or safety-critical applications, such as control of X-by-wire applications (steer-by-wire, Brake-by-wire, etc.) in a motor vehicle, one must heavy occupancy or even an overload of the Computing devices can be avoided because of an overload proper execution of the program no longer can be guaranteed. To the utilization of the Monitor computing device and if it is too strong To be able to take suitable countermeasures it is known to determine the utilization of the computing device. The countermeasures are, for example, the call targeted fewer time or safety-critical processes delay the calling and processing of special To enable time-critical or safety-critical processes.

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.Various methods are known for determining the utilization of a computing device. From DE 197 57 876 A1 it is known, for example, to call a separate idle program whenever the computing device is not fully utilized, ie no process is being processed on the computing device. The load on the computing device can be determined from the running time or the number of calls to the idling program during a predeterminable time interval (utilization of computing device [%] = 100% - running time idling program [%]). The calculated utilization represents a mean value filtered over a longer time interval. For this reason, the utilization of the computing device can only be determined with a very low dynamic using the known method.

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.Another disadvantage of the known method is that  the idle program only with a high load is rarely called and runs on the computing device. If the time interval under consideration is too short, it can happen that the idle program in the Time interval is not called and a 100% Utilization is determined, although the actual Utilization is lower. Likewise, the idle program only very weak when the computing device is under load rarely not called, namely not only if Processes of the computer program are processed. If the time interval under consideration is too short, can it happens that the idle program in the Time interval expires constantly and a 0% utilization is determined, although the actual utilization is higher is.

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.The present invention is based on the object on the one hand, the utilization of a computing device if possible accurate and reliable and with a high dynamic and on the other hand, the processing time of processes or tasks a computer program processed on the computing device regardless of interruptions caused by higher priority processes Identify tasks.

Zur Lösung dieser Aufgabe schlägt die vorliegende Erfindung ausgehend von dem Verfahren der eingangs genannten Art vor, dass
To achieve this object, the present invention, based on the method of the type mentioned at the beginning, proposes that

  • - ein Zeitintervall derart gewählt wird, dass während des Zeitintervalls mindestens eine Task begonnen und wieder beendet wird;- A time interval is chosen such that during of the time interval at least one task started and is ended again;
  • - während des Zeitintervalls nach Beenden der oder jeder Task die Laufzeit der Task ermittelt wird; und- during the time interval after the or everyone has ended Task the runtime of the task is determined; and
  • - falls die beendete Task von mindestens einer weiteren Task unterbrochen wurde, die Laufzeit der oder jeder weiteren Task von der ermittelten Laufzeit abgezogen wird.- if the completed task by at least one other Task was interrupted, the runtime of or everyone further task deducted from the determined runtime becomes.
Vorteile der ErfindungAdvantages of the invention

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.With the method according to the invention, the uninterrupted processing times of everyone in the Calculator active task can be determined. That happens by inserting suitable program commands on Start of processing and at the end of processing the tasks of Computer program. By adding the Processing times of all tasks within the predeterminable time interval are ended, and a subsequent normalization to the time interval, the percentage utilization of the computing device with almost any dynamics and without filtering or Averaging can be determined.

Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass
According to an advantageous development of the present invention, it is proposed that

  • - das Zeitintervall derart gewählt wird, dass während des Zeitintervalls mindestens zwei Tasks begonnen und wieder beendet werden; und- The time interval is chosen such that during of the time interval at least two tasks started and be stopped again; and
  • - die Laufzeiten der beendeten Tasks in der Reihenfolge der Beendigung der Tasks ermittelt werden.- The runtimes of the completed tasks in the order the completion of the tasks can be determined.

Gemäß einer bevorzugten Ausführungform der vorliegenden Erfindung wird vorgeschlagen, dass
According to a preferred embodiment of the present invention, it is proposed that

  • - zu Beginn des Verfahrens eine Variable (Unterbr) auf Null gesetzt wird;- a variable (interrupt) at the beginning of the procedure Is set to zero;
  • - die Laufzeit der beendeten Task anhand der Gleichung tLaufzeit = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang) ermittelt wird; und- The runtime of the completed task is determined using the equation t runtime = t end - t start - (interrupt end - interrupt start ); and
  • - ein neuer Wert für die Variable anhand der Gleichung Unterbr = UnterbrAnfang + (tEnde - tAnfang) ermittelt wird,a new value for the variable is determined using the equation interrupt = interrupt start + (t end - t start ),

wobei tAnfang where t start

der Wert eines während der Abarbeitung des Computerprogramms fortlaufenden Zeitzählers zu Beginn der Task, tEnde the value of a time counter running during the processing of the computer program at the beginning of the task, t end

der Wert des Zeitzählers nach Beenden der Task, UnterbrAnfang the value of the time counter after the task has ended, interrupt start

der Wert der Variablen zu Beginn der Task und UnterbrEnde the value of the variable at the beginning of the task and interrupt at the end

der Wert der Variablen nach Beenden der Task ist.the value of the variable after the task has ended is.

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.To determine the utilization of the Computing device after the specified time interval the determined run times of the tasks are added up and in Relation to the time interval set.

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.The determined terms are preferably the individual tasks each in a separate memory cell of the Computing device, preferably in a random access memory (RAM) memory cell. For a subsequent one Calculation of utilization must ensure that in current runtime values are available to the memory cells stand. This can be done, for example, by deleting the memory cells after calculating the utilization or by overwriting the content of the memory cells after the calculation, for example. with zero or a current runtime value for the subsequent calculation.

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. The realization of the inventive method in the form of a Storage element. Here is on the storage element Computer program stored on a computing device, in particular on a microprocessor, executable and for Execution of the method according to the invention is suitable. In this case, the invention is based on a Storage element stored computer program realized so this with the computer program provided storage element in the same way the invention represents how the process, the execution of which Computer program is suitable. Can be used as a storage element in particular an electrical storage medium for use come, e.g. a read-only memory, a random access Memory or a 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.The invention also relates to a computer program for Execution of the method according to the invention is suitable, if it is on a computing device, especially on a Microprocessor, expires. It is particularly preferred if the computer program on a storage element, is stored in particular on a flash memory.

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
As a further solution to the problem of the present invention, starting from the device for determining the utilization of a computing device of the type mentioned at the beginning, it is proposed that the device

  • - während eines vorgebbaren Zeitintervalls nach Beenden der oder jeder Task die Laufzeit der Task ermittelt; und- During a predefinable time interval after termination the or each task determines the runtime of the task; and
  • - falls die beendete Task von mindestens einer weiteren Task unterbrochen wurde, die Laufzeit der oder jeder weiteren Task von der ermittelten Laufzeit abzieht.- if the completed task by at least one other Task was interrupted, the runtime of or everyone subtracts another task from the determined runtime.

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. The device according to the invention is, for example, as a Control device of a motor vehicle designed for Control of technical processes and others Functions in the motor vehicle is used. The control unit has a computing device, in particular a microprocessor, on which a control program is executable. The Control program is divided into several tasks and each Task comprises at least one process. In the device are means for carrying out the method according to the invention realized. This allows the uninterruptible Processing times of everyone active in the computing device Task can be determined. By adding the Processing times of all tasks within the predeterminable time interval are ended, and a subsequent normalization to the time interval can also the percentage utilization of the computing device is determined become.  

Zeichnungendrawings

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:Other features, applications and advantages of the Invention result from the following description of embodiments of the invention, which in the Drawing are shown. Thereby form all described or illustrated features for themselves or in any Combination the subject of the invention, regardless of their summary in the claims or their Relationship and regardless of their wording or Representation in the description or in the drawing. It demonstrate:

Fig. 1 ein Ablaufdiagramm eines in drei Tasks A, B, C unterteilten Steuerprogramms; FIG. 1 is a flowchart of a, C divided control program in three tasks A, B;

Fig. 2 ein Ablaufdiagramm eines erfindungsgemäßen Verfahrens gemäß einer bevorzugten Ausführungsform; und Fig. 2 is a flow diagram of a method according to a preferred embodiment; and

Fig. 3 eine erfindungsgemäße Vorrichtung zur Abarbeitung des Verfahrens aus Fig. 2 gemäß einer bevorzugten Ausführungsform. Fig. 3 shows an inventive apparatus for processing the method of FIG. 2 according to a preferred embodiment.

Beschreibung der AusführungsbeispieleDescription of the embodiments

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.In Fig. 3 a control unit of a motor vehicle is designated in its entirety by the reference numeral 1. The control device 1 has a computing device which is designed as a microprocessor 2 . A computer program is stored on a memory element of control unit 1 , which is designed as a flash memory 3 . The computer program is designed as a control program for controlling technical processes, in particular in a motor vehicle. The control program can be processed on the microprocessor 2 . A data connection 4 , which is designed, for example, as a bus line, is provided between the microprocessor 2 and the flash memory 3 for data transmission. Various input variables 5 are present on the control unit 1 , which are, for example, the signals from sensors and sensors. The input variables 5 characterize the state of the functions to be controlled, the state of the motor vehicle or other states such as the weather conditions. On the basis of the input variables 5 , output variables 6 are determined in the control device 1 , which serve to control actuators or actuators. The output variables 6 are, for example, setpoints for controls.

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.The control program is divided into several tasks A, B, C (cf. FIG. 1), each task in turn comprising at least one process. A task A, B, C is called at a certain point in time or regularly with a certain sampling time and can be processed in a cooperative or in a preemptive mode. Each task A, B, C is assigned a specific priority. Task A has the lowest priority, Task C the highest. If two tasks are to be carried out simultaneously during the execution of the control program, the priorities of the two tasks are compared and the task with the higher priority is processed first.

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.
If, for example, task A is processed and task B is to be executed, different cases can occur depending on the configuration of the tasks selected by a programmer:
If task A has a higher priority than task B (not the case in FIG. 1), execution of task B is waited until task A has ended.
If task B has a higher priority than task A (example from FIG. 1), processing of task A is interrupted and task B is executed. If the programmer has chosen to execute the tasks in the cooperative mode, the execution of task B waits for the end of the current process of task A. As soon as this process is finished, task A is interrupted and task B is executed. When task B ends, task A continues to run at the beginning of the process before it was interrupted to execute task B.

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.If the programmer completes the tasks in the has selected preemptive mode, task B interrupts the current process of task A and task B will executed immediately. Then Task A is at the interrupted process.

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.The interruption of a task by another task with a higher priority is one of the tasks of a multi Tasking operating system. The runtime of the processes fluctuates depending on the load on the computing device on which the Control program is processed. For this reason and due to the possible causes of other tasks Interruptions can affect the order of the process calls a repeated execution of one and the same Control program may be different. The terms of the individual tasks within a predefinable time interval can therefore be subject to fluctuations.

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.In order to determine the processing time of processes or tasks A, B, C of a control program executed on the microprocessor 2 independently of interruptions by processes of higher priority tasks, a method according to the invention is proposed, of which a flowchart is shown in FIG. 2. Based on the processing time of the individual processes or tasks A, B, C within a predeterminable time interval T, the utilization of the microprocessor 2 can also be determined precisely and reliably and with high dynamics using the method according to the invention.

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:
The method begins in a function block 10 . The time interval T is specified in a function block 11 . The time interval T is selected such that at least one task A, B, C is started and also ended again during the time interval T. In a function block 12 , the execution of the control program (cf. FIG. 2) is initiated on the microprocessor 2 as normal. A query block 13 checks whether a task has ended. If so, the processing time t runtime_Task of the completed task is calculated in a function block 14 using the following equation:

tLaufzeit_Task = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang),
t Laufzeit_Task = t end - t Start - (Susp end - Susp beginning)

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.where t start the value of a time counter running during the processing of the computer program at the start of the task, t end the value of the time counter after the task has ended, interrupt start the value of a variable interrupt at the start of the task and interrupt end the value of the variable interrupt after completion the task is.

Anschließend wird in einem Funktionsblock 15 ein neuer Wert für die Variable Unterbr nach folgender Gleichung berechnet:
A new value for the variable Susp following equation is then calculated in a function block 15:

Unterbr = UnterbrAnfang + (tEnde - tAnfang).Interrupt = interrupt start + (t end - t start ).

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.A query block 16 checks whether the predetermined time interval T has already expired or not. If so, the sum t tot of the processing time t runtime_Task of all tasks that were completed in the predetermined time interval T is formed in a function block 17 . In a function block 18 , the total processing time t ges is then set in relation to the predetermined time interval T in order to determine the utilization of the microprocessor 2 . The method according to the invention is ended in a function block 19 .

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.If it appears in the query block 13 that no task has ended, or if it appears in the query block 16 that the predetermined time interval T has not yet expired, the process branches to the function block 12 , where the execution of the control program is continued.

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:
The method according to the invention from FIG. 2 is explained below using the control program from FIG. 1 as an example. The time interval T is set to T = 610-100 = 510 milliseconds. The variable interrupt is set to zero. Then the execution of the control program is started. The first task that is ended is task C. The processing time of this task C is determined:

tLaufzeit_C = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang)
= 270 - 210 - 0
= 60 Millisekunden.
t Laufzeit_C = t end - t start - (Susp end - Susp beginning)
= 270-210-0
= 60 milliseconds.

Die Differenz (UnterbrEnde - UnterbrAnfang) wird auf Null gesetzt, da die Task C nicht unterbrochen wurde. Anschließend wird die Variable Unterbr ermittelt:
The difference (interrupt end - interrupt start ) is set to zero because task C was not interrupted. The variable interrupt is then determined:

Unterbr = UnterbrAnfang + (tEnde - tAnfang)
= 0 + (270 - 210)
= 60 Millisekunden.
Interrupt = interrupt start + (t end - t start )
= 0 + (270 - 210)
= 60 milliseconds.

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:
The next task that is completed, turn the task C. This task C, the processing time is t Laufzeit_C and the new value for the variable Susp calculated:

tLaufzeit_C = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang)
= 350 - 310 - 0
= 40 Millisekunden,
t Laufzeit_C = t end - t start - (Susp end - Susp beginning)
= 350-310-0
= 40 milliseconds,

Unterbr = UnterbrAnfang + (tEnde - tAnfang)
= 60 + (350 - 310)
= 100 Millisekunden.
Interrupt = interrupt start + (t end - t start )
= 60 + (350-310)
= 100 milliseconds.

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:
Task B ends as the next task. For the task B, the processing time is t Laufzeit_B and the new value for the variable Susp calculated:

tLaufzeit_B = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang)
= 420 - 150 - (100 - 0)
= 170 Millisekunden,
t Laufzeit_B = t end - t start - (Susp end - Susp beginning)
= 420 - 150 - (100 - 0)
= 170 milliseconds,

Unterbr = UnterbrAnfang + (tEnde - tAnfang)
= 0 + (420 - 150)
= 270 Millisekunden.
Interrupt = interrupt start + (t end - t start )
= 0 + (420 - 150)
= 270 milliseconds.

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:
Finally task A is finished. For the task A execution duration t Laufzeit_A and the new value for the variable Susp calculated:

tLaufzeit_A = tEnde - tAnfang - (UnterbrEnde - UnterbrAnfang)
= 530 - 100 - (270 - 0)
= 160 Millisekunden,
t Laufzeit_A = t end - t start - (Susp end - Susp beginning)
= 530 - 100 - (270 - 0)
= 160 milliseconds,

Unterbr = UnterbrAnfang + (tEnde - tAnfang)
= 0 + (530 - 100)
= 430 Millisekunden.
Interrupt = interrupt start + (t end - t start )
= 0 + (530 - 100)
= 430 milliseconds.

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%.The total t tot of the processing time of the individual tasks A, B, C is then t tot = 430 milliseconds. At a predetermined time interval T of 510 milliseconds, thus a load of the microprocessor 2 of t ges / T = 430/510 = 0.843 or yields 84.3% with the inventive process.

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.The method according to the invention can be implemented in a simple manner by modifying the control program in such a way that additional functionalities are programmed at the beginning and at the end of a task. The additional functionalities at the beginning of the task include reading in the counter reading of a continuous time counter and storing the counter reading under the variable t start . In addition, the value of the variable interrupt start can be read in at the beginning of the task and a value can be saved in the variable interrupt start . The additional functionalities at the end of the task include reading in the counter reading of the time counter and storing the counter reading under the variable t end . In addition, the value of the variable interrupt can be read in at the end of the task and a value can be saved in the variable interrupt end . Furthermore, the term t Laufzeit_Task and the new value for the variable Susp calculated at the end of the task.

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:
The utilization of a computing device can also be determined by the particularly effective calculation explained below. The following calculation is obtained by mathematically reshaping the calculation explained above. With the proposed particularly effective calculation, only one auxiliary variable auxiliary variable is required and only four additions have to be carried out. The auxiliary variable auxiliary var is calculated at the beginning of the task:

Hilfsvar = UnterbrAnfang - tAnfang Auxiliary var = interrupt start - t start

Am Ende der Task wird die Laufzeit tLaufzeit_Task und die Variable Unterbr berechnet:
At the end of the task is the delay time t calculated Laufzeit_Task and the variable Susp:

tLaufzeit_Task = tEnde - UnterbrEnde + Hilfsvar
t Laufzeit_Task = t end - Susp end + Hilfsvar

Unterbr = tEnde + Hilfsvar.Interr = t end + auxiliary var.

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:
According to yet another calculation of the utilization of the computing device, only two auxiliary variables auxiliary variable1 and auxiliary variable2 are required and only three additions have to be carried out. The first auxiliary variable auxiliary variable1 is calculated at the beginning of the task:

Hilfsvar1 = UnterbrAnfang - tAnfang Auxiliary var1 = interrupt start - t start

Am Ende der Task wird die zweite Hilfsvariable Hilfsvar2, die Laufzeit tLaufzeit_Task und die Variable Unterbr berechnet:
At the end of the task, the second auxiliary variable Hilfsvar2, the term t Laufzeit_Task and the variable Susp calculated:

Hilfsvar2 = tEnde + Hilfsvar1
Auxiliary var2 = t end + auxiliary var1

tLaufzeit_Task = Hilfsvar2 - UnterbrEnde
t = Laufzeit_Task Hilfsvar2 - Susp end

Unterbr = Hilfsvar2.Interrupt = auxiliary var2.

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.
1. Method for determining the load on a computing device ( 2 ) on which a computer program is processed, the computer program being subdivided into several tasks (A, B, C) and each task (A, B, C) comprising at least one process, characterized in that
a time interval (T) is selected such that at least one task (A, B, C) is started and ended again during the time interval (T);
the running time (t running time ) of the task (A, B, C) is determined during the time interval (T) after the or each task (A, B, C) has ended; and
if the completed task (A, B, C) was interrupted by at least one further task (A, B, C), the runtime of the or each further task (A, B, C) is subtracted from the determined runtime (t runtime ) ,
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.
2. The method according to claim 1, characterized in that
the time interval (T) is selected such that at least two tasks (A, B, C) are started and ended again during the time interval (T); and
the running times (t running time ) of the completed tasks (A, B, C) are determined in the order in which the tasks (A, B, C) ended.
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.
3. The method according to claim 2, characterized in that
a variable (interrupt) is set to zero at the beginning of the process;
the running time (t running time ) of the completed task (A, B, C) using the equation
t runtime = t end - t start - (interrupt end - interrupt start )
is determined; and
a new value for the variable (interrupt) based on the equation
Interrupt = interrupt start + (t end - t start )
is determined
where t start the value of a time counter running during the processing of the computer program at the beginning of the task (A, B, C), t end the value of the time counter after the task (A, B, C) has ended, interrupt start of the value of the variable ( Interrupt) at the start of the task (A, B, C) and Interrupt end is the value of the variable (Interrupt) after the task (A, B, C) has ended.
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.4. The method according to claim 2 or 3, characterized in that the determined run times (t run time ) of the individual tasks (A, B, C) each in a separate memory cell of the computing device ( 2 ), preferably in a random access memory ( RAM) memory cell. 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.5. The method according to any one of claims 2 to 4, characterized in that to determine the utilization of the computing device ( 2 ) after the predetermined time interval (T) the determined run times (t run time ) of the tasks (A, B, C) and in relation to the time interval (T). 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.6. Storage element, in particular read-only memory, random access memory or flash memory ( 3 ), on which a computer program is stored, which can run on a computing device ( 2 ), in particular on a microprocessor, and for carrying out a method is suitable according to one of claims 1 to 5. 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.7. Computer program, characterized in that the computer program is suitable for executing a method according to one of claims 1 to 5 if it runs on a computing device ( 2 ), in particular on a microprocessor. 8. Computerprogramm nach Anspruch 7, dadurch gekennzeichnet, dass das Computerprogramm auf einem Speicherelement, insbesondere auf einem Flash-Memory (3), abgespeichert ist.8. Computer program according to claim 7, characterized in that the computer program is stored on a memory element, in particular on a flash memory ( 3 ). 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.
9. Device ( 1 ) for determining the load on a computing device ( 2 ) on which a computer program can be processed, the computer program being divided into several tasks (A, B, C) and each task (A, B, C) at least one Process includes, characterized in that the device
determines the running time (t running time ) of the task (A, B, C) during a predefinable time interval (T) after the or each task (A, B, C) has ended; and
if the completed task (A, B, C) was interrupted by at least one further task (A, B, C), the runtime of the or each further task (A, B, C) is subtracted from the determined runtime (t runtime ).
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.10. The device ( 1 ) according to claim 9, characterized in that the device has means for performing a method according to one of claims 2 to 5.
DE10110444A 2001-03-05 2001-03-05 Determining workload of computer apparatus running computer program by determining run time of tasks after completion and subtracting run times upon interruption Ceased DE10110444A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE10110444A DE10110444A1 (en) 2001-03-05 2001-03-05 Determining workload of computer apparatus running computer program by determining run time of tasks after completion and subtracting run times upon interruption
US10/092,225 US20020178209A1 (en) 2001-03-05 2002-03-05 Method and device for determining the load of a computing element
JP2002058817A JP2002323984A (en) 2001-03-05 2002-03-05 Method and device for calculating utilization rate of computing equipment, memory element and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10110444A DE10110444A1 (en) 2001-03-05 2001-03-05 Determining workload of computer apparatus running computer program by determining run time of tasks after completion and subtracting run times upon interruption

Publications (1)

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

Family

ID=7676306

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10110444A Ceased DE10110444A1 (en) 2001-03-05 2001-03-05 Determining workload of computer apparatus running computer program by determining run time of tasks after completion and subtracting run times upon interruption

Country Status (3)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3073375A1 (en) * 2015-03-26 2016-09-28 Elektronische Fahrwerksysteme GmbH Method for determining a maximum run-time for a task system
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
WO2005041041A2 (en) * 2003-10-23 2005-05-06 Siemens Aktiengesellschaft Method and arrangement for measuring the running time of functions
DE102004046878A1 (en) * 2004-09-28 2006-04-13 Robert Bosch Gmbh Method and apparatus for determining a system load of a processor system
CN1329825C (en) * 2004-10-08 2007-08-01 华为技术有限公司 Multi-task processing method based on digital signal processor
EP1960886A1 (en) * 2005-12-16 2008-08-27 International Business Machines Corporation Method, system and computer program for metering usage of software products based on real-time benchmarking of processing power
RU2305313C1 (en) * 2005-12-27 2007-08-27 Яков Аркадьевич Горбадей Method for ensuring reliable operation of program computing means
JP5173495B2 (en) * 2008-03-03 2013-04-03 キヤノン株式会社 Information processing apparatus, job processing method, and program
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 (en) * 1990-05-16 2001-05-28 エヌイーシーソフト株式会社 Multitask execution time accounting method and its mechanism
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 (en) * 2015-03-26 2016-09-28 Elektronische Fahrwerksysteme GmbH Method for determining a maximum run-time for a task system
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 (en) 2002-11-08

Similar Documents

Publication Publication Date Title
EP0771444B1 (en) Method for controlling technical operations or processes
DE4410775C2 (en) Control unit and operating method of an operating system for this control unit
EP1303809B1 (en) Method and device for measuring the execution time of a task in a real time system
EP0799441B1 (en) System for controlling technical processes
EP3417373A1 (en) Method and device for operating a controller
DE10110444A1 (en) Determining workload of computer apparatus running computer program by determining run time of tasks after completion and subtracting run times upon interruption
EP3080668B1 (en) Method for influencing a control program of a control unit
DE10243856B4 (en) Regulator and method for operating a regulator
EP2574997A1 (en) Method for adjusting an operating status
DE10061001B4 (en) Method and control unit for controlling technical processes in a motor vehicle, and storage element and control program therefor
EP1514180A2 (en) Limitation of the response time of a software process
DE102017130552B3 (en) Method of data processing and programmable logic controller
DE102018125090A1 (en) Data processing method and programmable logic controller
DE10065498A1 (en) Reconstructing control program process flow, involves generating table from contents of tables generated during process containing identity of last process carried out before each new task
EP2126700B1 (en) Control of the run time behavior of processes
DE102012102373A1 (en) A method of estimating a resource consumption when generating a controller program code
DE102016206490A1 (en) ELECTRONIC CONTROL UNIT
WO2021249616A1 (en) Method for configuring components in a system by means of multi-agent reinforcement learning, computer-readable storage medium, and system
DE19728971C2 (en) Data processing device and method
DE19727480C1 (en) Interrupt control computer system
DE10200242A1 (en) Method for function monitoring of control device e.g. for motor vehicle, involves querying specified memory locations during operation of control device
EP0972232B1 (en) Programmable control system
DE10229520A1 (en) Controlling vehicle processes, involves copying output parameter of at least one faster task program at start of this program if such an output parameter provided for both faster and slower programs
DE102020001990A1 (en) Numerical control device
EP3757525B1 (en) Sensor and method for operating same

Legal Events

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