FR3060149A1 - METHOD FOR DIAGNOSING TASK SCHEDULING - Google Patents

METHOD FOR DIAGNOSING TASK SCHEDULING Download PDF

Info

Publication number
FR3060149A1
FR3060149A1 FR1662282A FR1662282A FR3060149A1 FR 3060149 A1 FR3060149 A1 FR 3060149A1 FR 1662282 A FR1662282 A FR 1662282A FR 1662282 A FR1662282 A FR 1662282A FR 3060149 A1 FR3060149 A1 FR 3060149A1
Authority
FR
France
Prior art keywords
task
tasks
counting means
chain
updating
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.)
Pending
Application number
FR1662282A
Other languages
French (fr)
Inventor
Stephane Eloy
Lionel Cailler
Benjamin Marconato
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.)
Continental Automotive GmbH
Continental Automotive France SAS
Original Assignee
Continental Automotive GmbH
Continental Automotive France SAS
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 Continental Automotive GmbH, Continental Automotive France SAS filed Critical Continental Automotive GmbH
Priority to FR1662282A priority Critical patent/FR3060149A1/en
Priority to FR1751245A priority patent/FR3060150B1/en
Priority to PCT/FR2017/050350 priority patent/WO2018109288A1/en
Publication of FR3060149A1 publication Critical patent/FR3060149A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

La présente invention a pour objet un procédé de diagnostic, pour un système informatique comprenant au moins deux tâches (T1-T3) récurrentes appariées, comprenant les étapes suivantes : mise à jour d'un moyen de comptage d'un nombre d'occurrence dédié à une tâche (T1-T3) récurrente, lors de chaque nouvelle occurrence de ladite tâche (T1-T3) récurrente, comparaison des moyens de comptage respectifs desdites au moins deux tâches (T1-T3) récurrentes appariées avec des valeurs attendues, une incohérence d'au moins un des moyens de comptage avec sa valeur attendue étant indicative d'une erreur.The present invention relates to a diagnostic method, for a computer system comprising at least two paired recurring tasks (T1-T3), comprising the following steps: updating a counting means of a dedicated number of occurrences at a recurrent task (T1-T3), at each new occurrence of said recurring task (T1-T3), comparing the respective counting means of said at least two recurring tasks (T1-T3) matched with expected values, an inconsistency at least one of the counting means with its expected value being indicative of an error.

Description

Titulaire(s) : CONTINENTAL AUTOMOTIVE FRANCE Société par actions simplifiée, CONTINENTAL AUTOMOTIVE GMBH.Holder (s): CONTINENTAL AUTOMOTIVE FRANCE Simplified joint-stock company, CONTINENTAL AUTOMOTIVE GMBH.

Demande(s) d’extensionExtension request (s)

Mandataire(s) : CONTINENTAL AUTOMOTIVE FRANCE Société par actions simplifiée.Agent (s): CONTINENTAL AUTOMOTIVE FRANCE Simplified joint-stock company.

105/ PROCEDE DE DIAGNOSTIC D'UN ORDONNANCEMENT DE TACHES.105 / METHOD FOR DIAGNOSING A TASK SCHEDULE.

FR 3 060 149 - A1 _ La présente invention a pour objet un procédé de diagnostic, pour un système informatique comprenant au moins deux tâches (T1-T3) récurrentes appariées, comprenant les étapes suivantes : mise à jour d'un moyen de comptage d'un nombre d'occurrence dédié à une tâche (T1-T3) récurrente, lors de chaque nouvelle occurrence de ladite tâche (T1-T3) récurrente, comparaison des moyens de comptage respectifs desdites au moins deux tâches (T 1-T3) récurrentes appariées avec des valeurs attendues, une incohérence d'au moins un des moyens de comptage avec sa valeur attendue étant indicative d'une erreur.FR 3 060 149 - A1 _ The subject of the present invention is a diagnostic method for a computer system comprising at least two recurrent paired tasks (T1-T3), comprising the following steps: updating of a counting means d '' a number of occurrences dedicated to a recurring task (T1-T3), during each new occurrence of said recurring task (T1-T3), comparison of the respective counting means of said at least two recurring tasks (T 1-T3) matched with expected values, an inconsistency of at least one of the counting means with its expected value being indicative of an error.

!!

-5>.-5>.

'K.' V-,.-;?'K.' V -, .- ;?

«Jffl ί Lî'R £"Jffl ί Lî'R £

--K·- «--K · - "

L..........L ..........

.i.,... .i., ... X X -p ,-θ -p, -θ ïb, > « ïb,> " ·. ') ............ ·. ') ............ -S J -r X r-····-............. -S J -r X r- ···· -............. C-!'R is3,5 C -! 'R is3.5

il J!,there J!

La présente invention concerne un système informatique comprenant au moins deux tâches récurrentes appariées, et plus particulièrement un procédé de diagnostic d’une erreur d’ordonnancement des tâches.The present invention relates to a computer system comprising at least two recurring paired tasks, and more particularly to a method for diagnosing a task scheduling error.

Dans le domaine de l’ordonnancement des tâches, de manière connue, un système d’exploitation réalise un ordonnancement des tâches en respectant plusieurs types de contraintes pouvant être contradictoires. Ainsi il doit respecter des règles de préséance entre certaines tâches, mais encore réagir en fonction d’évènements issus du système industriel piloté. Certains de ces évènements sont sensiblement prévisibles en ce qu’ils sont récurrents et périodiques et entraînent une charge déterminée sensiblement constante. D’autres de ces évènements sont moins prévisibles en ce qu’ils sont aléatoires et/ou récurrents mais non périodiques et/ou nécessitent une charge variable. Ceci peut conduire une unité d’exécution, réagissant à de tels imprévus, à devoir exécuter plus de tâches que sa charge nominale ne lui permet et à se retrouver ainsi en surcharge. Afin d’éviter une telle surcharge préjudiciable, le système d’exploitation supprime arbitrairement autant de tâches que nécessaire, typiquement la où les tâches qui déborderaient de la charge nominale. Le problème qui se pose alors, le système d’exploitation n’informant habituellement pas de son action de suppression, est de diagnostiquer une telle situation de suppression.In the field of task scheduling, in a known manner, an operating system performs task scheduling while respecting several types of constraints which may be contradictory. Thus he must respect rules of precedence between certain tasks, but also react according to events from the industrial system controlled. Some of these events are noticeably predictable in that they are recurrent and periodic and entail a determined load that is substantially constant. Others of these events are less predictable in that they are random and / or recurrent but not periodic and / or require a variable load. This can cause an execution unit, reacting to such unforeseen events, to have to execute more tasks than its nominal load allows it and thus find itself in overload. In order to avoid such a harmful overload, the operating system arbitrarily deletes as many tasks as necessary, typically where the tasks that exceed the nominal load. The problem which then arises, the operating system usually not informing about its deletion action, is to diagnose such a deletion situation.

Afin de répondre à ce problème, l’invention propose de surveiller les tâches récurrentes et de compter comparativement les occurrences de tâches récurrentes appariées, afin de pouvoir détecter une incohérence.In order to respond to this problem, the invention proposes to monitor recurring tasks and to comparatively count the occurrences of paired recurring tasks, in order to be able to detect an inconsistency.

L’invention a pour objet un procédé de diagnostic, pour un système informatique comprenant au moins deux tâches récurrentes appariées, comprenant les étapes suivantes :The subject of the invention is a diagnostic method for a computer system comprising at least two recurring paired tasks, comprising the following steps:

• mise à jour d’un moyen de comptage d’un nombre d’occurrence dédié à une tâche récurrente, lors de chaque nouvelle occurrence de ladite tâche récurrente, • comparaison des moyens de comptage respectifs desdites au moins deux tâches récurrentes appariées avec des valeurs attendues, une incohérence d’au moins un des moyens de comptage avec sa valeur attendue étant indicative d’une erreur.• updating of a means of counting a number of occurrences dedicated to a recurring task, during each new occurrence of said recurring task, • comparison of the respective counting means of said at least two recurring tasks paired with values expected, an inconsistency of at least one of the counting means with its expected value being indicative of an error.

Selon une autre caractéristique, la partie matérielle du système informatique comprend au moins deux unités d’exécution.According to another characteristic, the hardware part of the computer system comprises at least two execution units.

Selon une autre caractéristique lesdites au moins deux tâches récurrentes appariées sont synchrones entre elles, respectivement multiples avec un rapport de récurrence relative, et les valeurs attendues de leur nombre d’occurrence respectif sont égales, respectivement dans un rapport égal au rapport de leur récurrence relative.According to another characteristic, said at least two paired recurrent tasks are synchronous with one another, respectively multiple with a relative recurrence ratio, and the expected values of their respective number of occurrences are equal, respectively in a ratio equal to the ratio of their relative recurrence .

Selon une autre caractéristique lesdites au moins deux tâches récurrentes appariées sont chaînées et sont ordonnées dans une chaîne, et une tâche suivante dans la chaîne ne peut débuter que si la tâche précédente dans la chaîne est débutée et/ou est terminée, et les valeurs attendues de leur nombre d’occurrence respectif sont égales.According to another characteristic, said at least two recurring paired tasks are chained and are ordered in a chain, and a next task in the chain can only start if the previous task in the chain is started and / or is finished, and the expected values of their respective number of occurrences are equal.

Selon une autre caractéristique lesdites au moins deux tâches récurrentes appariées sont hiérarchisées, une tâche mère débutant la première déclenche l’exécution d’au moins une tâche fille et ne termine qu’après que toutes ses filles soient terminées, et les valeurs attendues de leur nombre d’occurrence respectif sont égales.According to another characteristic, said at least two recurrent paired tasks are hierarchical, a mother task starting the first triggers the execution of at least one daughter task and does not end until all of its daughters are finished, and the values expected from them. respective number of occurrences are equal.

Selon une autre caractéristique la mise à jour d’un moyen de comptage d’un nombre d’occurrence dédié à une tâche récurrente est réalisée par ladite tâche.According to another characteristic, the updating of a means of counting a number of occurrences dedicated to a recurring task is carried out by said task.

Selon une autre caractéristique l’étape de comparaison tient compte d’une incohérence précédemment détectée, afin de ne détecter qu’une nouvelle erreur.According to another characteristic, the comparison step takes into account a previously detected inconsistency, in order to detect only a new error.

Selon une autre caractéristique l’étape de comparaison tolère une incohérence inférieure à un seuil.According to another characteristic, the comparison step tolerates an inconsistency below a threshold.

Selon une autre caractéristique, pour des tâches multiples, l’étape de comparaison est réalisée après la mise à jour du moyen de comptage dédié à la tâche de plus faible récurrence, préférentiellement par ladite tâche de plus faible récurrence.According to another characteristic, for multiple tasks, the comparison step is carried out after updating the counting means dedicated to the task of lower recurrence, preferably by said task of lower recurrence.

Selon une autre caractéristique, pour des tâches chaînées, l’étape de comparaison est réalisée après la mise à jour du moyen de comptage dédié à la dernière tâche de la chaîne, préférentiellement par ladite dernière tâche de la chaîne.According to another characteristic, for chained tasks, the comparison step is carried out after updating the counting means dedicated to the last task in the chain, preferably by said last task in the chain.

Selon une autre caractéristique, pour des tâches hiérarchisées, l’étape de comparaison est réalisée après la mise à jour du moyen de comptage dédié à la dernière tâche fille et après la mise à jour du moyen de comptage dédié à la tâche mère, préférentiellement par la tâche mère.According to another characteristic, for hierarchical tasks, the comparison step is carried out after updating the counting means dedicated to the last daughter task and after updating the counting means dedicated to the mother task, preferably by the mother task.

Selon une autre caractéristique, pour des tâches chaînées, un unique moyen de comptage, préférentiellement un drapeau binaire, est utilisé pour une chaîne, l’étape de mise à jour activant le moyen de comptage lors de l’exécution d’une première tâche de la chaîne et désactivant le moyen de comptage lors de l’exécution d’une dernière tâche de la chaîne, la valeur attendue du moyen de comptage étant « désactivé » avant l’exécution d’une première tâche de la chaîne et après l’exécution d’une dernière tâche de la chaîne.According to another characteristic, for chained tasks, a single counting means, preferably a binary flag, is used for a chain, the updating step activating the counting means during the execution of a first task of the chain and deactivating the counting means during the execution of a last task in the chain, the expected value of the counting means being "deactivated" before the execution of a first task in the chain and after execution of a last task in the chain.

Selon une autre caractéristique l’étape de mise à jour vérifie que le moyen de comptage est désactivé avant de procéder à son activation.According to another characteristic, the update step verifies that the counting means is deactivated before activating it.

Selon une autre caractéristique ledit système informatique pilote un système industriel, tel un moteur automobile.According to another characteristic, said computer system controls an industrial system, such as an automobile engine.

Selon une autre caractéristique les données des moyens de comptage sont stockées dans une mémoire partagée entre toutes les tâches.According to another characteristic, the data of the counting means is stored in a memory shared between all the tasks.

Selon une autre caractéristique l’implémentation d’un moyen de comptage comprend un compteur cyclique.According to another characteristic, the implementation of a counting means comprises a cyclic counter.

La description détaillée ci-après, est donnée en relation avec des dessins sur lesquels :The detailed description below is given in relation to drawings in which:

- les figures 1A et 1B présentent un synoptique illustrant une erreur d’ordonnancement,- Figures 1A and 1B show a block diagram illustrating a scheduling error,

- la figure 2 présente un diagramme temporel illustrant un mode de réalisation du procédé pour des tâches hiérarchisées et pour des tâches multiples.- Figure 2 shows a time diagram illustrating an embodiment of the method for hierarchical tasks and for multiple tasks.

D'autres caractéristiques, détails et avantages de l'invention ressortiront plus clairement de la description détaillée donnée ci-après à titre indicatif.Other characteristics, details and advantages of the invention will emerge more clearly from the detailed description given below for information.

Les figures 1A et 1B illustrent un possible problème conduisant à une suppression d’une tâche. On est ici en présence de trois tâches T1, T2, T3. Ces trois tâches T1-T3 sont issues d’un même traitement, découpé en trois tâches, afin de pouvoir être exécuté de manière répartie sur trois unités d’exécution AO, A1, A2. Une unité d’exécution peut être un noyau ou cœur d’un même processeur ou un processeur. Les trois tâches doivent être ordonnancées de manière à respecter les mêmes contraintes que lors d’une exécution sur une unique unité d’exécution. Une première contrainte est que ces tâches T1-T3 sont chaînées, une tâche suivante de la chaîne ne pouvant débuter que lorsque la tâche immédiatement précédente est terminée, certaines données issues d’une tâche précédente pouvant être utilisées dans une tâche suivante. De plus, le temps est découpé en intervalles de temps dépendant de la position du moteur, nommés segments ou cylindres Cyl1, Cyl2, et déterminant une période de validité de certains paramètres. Une deuxième contrainte est que toutes les tâches d’une même chaîne T1T3 doivent être exécutées au cours d’un même cylindre.Figures 1A and 1B illustrate a possible problem leading to the deletion of a task. We are here in the presence of three tasks T1, T2, T3. These three tasks T1-T3 result from the same processing, divided into three tasks, in order to be able to be executed in a distributed manner over three execution units AO, A1, A2. An execution unit can be a core or core of the same processor or a processor. The three tasks must be scheduled in such a way as to respect the same constraints as when running on a single thread. A first constraint is that these tasks T1-T3 are chained, a next task in the chain can only start when the immediately preceding task is finished, some data from a previous task can be used in a next task. In addition, time is divided into time intervals depending on the position of the engine, called segments or cylinders Cyl1, Cyl2, and determining a period of validity of certain parameters. A second constraint is that all the tasks of the same T1T3 chain must be executed in the same cylinder.

La figure 1A illustre un fonctionnement nominal. Ici, le temps/charge disponible pour le cylindre Cyl1 est suffisant pour permettre l’exécution successive, dans l’ordre, des trois tâches T1-T3.Figure 1A illustrates nominal operation. Here, the time / charge available for cylinder Cyl1 is sufficient to allow the successive execution, in order, of the three tasks T1-T3.

Cependant, le temps/charge disponible pour le cylindre Cyl1 est variable. La charge d’une unité d’exécution A0-A2 peut se trouver réduite par une superposition exceptionnelle d’évènements aléatoires en provenance du système industriel piloté. Le temps alloué à un cylindre peut aussi varier.However, the time / charge available for cylinder Cyl1 is variable. The load of an A0-A2 execution unit can be reduced by an exceptional superposition of random events coming from the industrial system controlled. The time allotted to a cylinder can also vary.

Ainsi dans un exemple d’application où le système informatique est un système de contrôle moteur automobile, la durée d’un cylindre Cyl1, Cyl2 est inversement proportionnelle au régime moteur.Thus in an example of application where the computer system is an automobile engine control system, the duration of a cylinder Cyl1, Cyl2 is inversely proportional to the engine speed.

Pour ces deux raisons, la charge disponible ou le temps alloué à un cylindre peuvent devenir insuffisant à l’exécution chaînées des trois tâches T1-T3 durant le cylindre Cyl1. Aussi tel qu’illustré à la figure 1 B, l’occurrence de la tâche T3 pour le cylindre Cyl1 ne peut être exécutée durant Cyl1 et est supprimée par le système d’exploitation. Le risque est alors qu’elle soit confondue avec l’occurrence de la tâche T3 pour le cylindre suivant Cyl2.For these two reasons, the available charge or the time allocated to a cylinder may become insufficient for the chained execution of the three tasks T1-T3 during the cylinder Cyl1. Also as shown in Figure 1B, the occurrence of task T3 for cylinder Cyl1 cannot be executed during Cyl1 and is deleted by the operating system. The risk is then that it will be confused with the occurrence of task T3 for the next cylinder Cyl2.

Cette suppression est très préjudiciable en ce qu’elle peut, dans des cas extrêmes, conduire à une casse moteur. De plus le système d’exploitation ne remonte aucune information concernant cette suppression. Aussi est-il nécessaire de trouver un procédé de diagnostic d’une telle suppression. Le procédé de diagnostic fournit un outil très avantageux en phase de mise au point permettant de détecter au plus tôt et de manière circonstanciée des problèmes erratiques d’ordonnancement autrement très difficiles à identifier.This deletion is very detrimental in that it can, in extreme cases, lead to engine failure. In addition, the operating system does not report any information regarding this deletion. It is therefore necessary to find a method for diagnosing such suppression. The diagnostic process provides a very advantageous tool in the development phase, enabling erratic scheduling problems that are otherwise very difficult to identify, to be detected as soon as possible and in detail.

Pour cela l’invention utilise la présence, dans la partie logicielle du système informatique d’au moins deux tâches récurrentes appariées. L’idée de base de l’invention est de mettre à profit la prévisibilité des tâches récurrentes et leur appariement afin de détecter une suppression de l’une de ces au moins deux tâches. En effet deux telles tâches appariées ont des dynamiques d’exécution corrélées et doivent, en fonctionnement nominal, présenter des nombres d’occurrences pareillement corrélés. Toute incohérence relativement au fonctionnement attendu est indicative d’une erreur.For this, the invention uses the presence, in the software part of the computer system, of at least two recurring paired tasks. The basic idea of the invention is to take advantage of the predictability of recurring tasks and their matching in order to detect a deletion of one of these at least two tasks. In fact, two such paired tasks have correlated execution dynamics and must, in nominal operation, have similarly correlated numbers of occurrences. Any inconsistency regarding the expected operation is indicative of an error.

Pour cela l’invention utilise un moyen de comptage d’un nombre d’occurrence dédié à une tâche récurrente. Le procédé de diagnostic comprend les étapes suivantes : mise à jour d’un moyen de comptage d’un nombre d’occurrence dédié à une tâche récurrente, lors de chaque nouvelle occurrence de ladite tâche récurrente, et comparaison des moyens de comptage respectifs desdites au moins deux tâches récurrentes appariées avec des valeurs attendues. Ainsi en fonctionnement nominal, les moyens de comptage desdites au moins deux tâches appariées doivent présenter des valeurs cohérentes avec les valeurs attendues et prévisibles en fonction des dynamiques relatives des tâches appariées. Toute incohérence d’au moins un des moyens de comptage avec sa valeur attendue est indicative d’une erreur, typiquement indicative d’une tâche supprimée.For this, the invention uses a means of counting a number of occurrences dedicated to a recurring task. The diagnostic method comprises the following steps: updating of a means of counting a number of occurrences dedicated to a recurring task, during each new occurrence of said recurring task, and comparison of the respective counting means of said recurrent tasks. minus two recurring tasks matched with expected values. Thus in nominal operation, the means for counting said at least two paired tasks must have values consistent with the expected and predictable values as a function of the relative dynamics of the paired tasks. Any inconsistency of at least one of the counting means with its expected value is indicative of an error, typically indicative of a task deleted.

Selon une caractéristique, la partie matérielle du système informatique comprend au moins deux unités d’exécution. Il est important de remarquer que l’invention est applicable à un système informatique ne comprenant qu’une unité d’exécution. Cependant le problème diagnostiqué, à savoir la suppression d’une tâche, ne peut survenir que dans un système comprenant au moins deux unités d’exécution. Aussi l’invention est particulièrement avantageuse pour un tel système.According to one characteristic, the hardware part of the computer system comprises at least two execution units. It is important to note that the invention is applicable to a computer system comprising only one execution unit. However, the problem diagnosed, namely the deletion of a task, can occur only in a system comprising at least two execution units. The invention is therefore particularly advantageous for such a system.

Il est temps maintenant de définir la notion d’appariement. Lesdites au moins deux tâches récurrentes appariées sont synchrones entre elles. La synchronicité doit ici être comprise de manière étendue en ce que lesdites deux tâches sont corrélées dans le temps. Les deux tâches peuvent s’exécuter en même temps, s’exécuter avec un même intervalle de temps les séparant, ou encore être multiples en ce qu’une tâche rapide s’exécute n fois pendant qu’une tâche lente s’exécute une fois, n, un rapport de récurrence relative n’étant pas nécessairement entier.Now is the time to define the concept of pairing. Said at least two recurring paired tasks are synchronous with one another. Synchronicity must be understood here in a wide way in that the said two tasks are correlated over time. The two tasks can be executed at the same time, execute with the same time interval separating them, or even be multiple in that a fast task is executed n times while a slow task is executed once , n, a relative recurrence ratio not necessarily being whole.

Des tâches appariées synchrones (entre elles) peuvent être périodiques (et donc synchrones au temps). Ceci est le cas, par exemple d’une tâche horloge, qui s’exécute périodiquement toutes les 10ms. Cette tâche est alors multiple d’une tâche s’exécutant périodiquement toutes les 100ms, avec un rapport de récurrence égal à 10.Synchronous paired tasks (between them) can be periodic (and therefore synchronous with time). This is the case, for example, with a clock task, which runs periodically every 10 ms. This task is then multiple of a task executing periodically every 100ms, with a recurrence ratio equal to 10.

Des tâches appariées synchrones (entre elles) peuvent être récurrentes sans être périodiques. On nomme ces tâches apériodiques. Ceci est le cas, par exemple d’une tâche « segment » issue d’un moteur thermique et indiquant un repère, par exemple une position angulaire précédant d’un intervalle angulaire fixe donné le point mort haut d’un cylindre, à chaque tour de vilebrequin. Une tâche « demi-segment » indiquant un repère décalé d’un demi-tour moteur est alors appariée synchrone avec la tâche « segment ». De même une tâche indiquant les points mort haut de tous les cylindres est appariée multiple de la tâche « segment » avec un rapport de récurrence égal au nombre de cylindres du moteur.Synchronous paired tasks (between them) can be recurrent without being periodic. We call these aperiodic tasks. This is the case, for example of a “segment” task from a heat engine and indicating a reference, for example an angular position preceding by a fixed angular interval given the top dead center of a cylinder, at each revolution of crankshaft. A “half-segment” task indicating a reference shifted by a motor half-turn is then paired synchronously with the “segment” task. Similarly, a task indicating the top dead center of all the cylinders is paired multiple of the “segment” task with a recurrence ratio equal to the number of engine cylinders.

II est possible de comparer au moins deux tâches appariées synchrones entres elles pour peu qu’elles appartiennent toutes au même type : périodique ou apériodique.It is possible to compare at least two synchronous paired tasks, as long as they all belong to the same type: periodic or aperiodic.

Si les tâches appariées sont simplement synchrones : le rapport de récurrence relative n étant égal à 1, les valeurs attendues de leur nombre d’occurrence respectif doivent être égales, en fonctionnement nominal. Toute différence détectée indique une incohérence et donc une erreur.If the paired tasks are simply synchronous: the relative recurrence ratio n being equal to 1, the expected values of their respective number of occurrences must be equal, in nominal operation. Any difference detected indicates an inconsistency and therefore an error.

Si les tâches appariées sont synchrones multiples : avec un rapport de récurrence relative n différent de 1, les valeurs attendues de leur nombre d’occurrence respectif doivent être dans un rapport égal au rapport n de leur récurrence relative, en fonctionnement nominal. Toute différence détectée indique une incohérence et donc une erreur.If the paired tasks are multiple synchronous: with a relative recurrence ratio n other than 1, the expected values of their respective number of occurrences must be in a ratio equal to the ratio n of their relative recurrence, in nominal operation. Any difference detected indicates an inconsistency and therefore an error.

Afin de préciser cette notion de synchronicité, deux exemples particuliers de tâches appariées synchrones (simple ou multiple) vont maintenant être donnés : tâches chaînées et tâches hiérarchisées.In order to clarify this notion of synchronicity, two particular examples of synchronous paired tasks (single or multiple) will now be given: chained tasks and hierarchical tasks.

Des tâches chaînées sont ordonnées au sein d’une chaîne et vérifient une condition d’enchaînement pouvant être choisie parmi deux. Ainsi une tâche suivante ne peut débuter que si la tâche précédente est débutée ou alternativement, et comme illustré dans l’exemple des figures 1A et 1B, une tâche suivante ne peut débuter que si la tâche précédente est terminée. Des tâches ainsi chaînées sont appariées en ce que toutes les tâches d’une même chaîne doivent s’exécuter sensiblement dans un même temps, en séquence, et surtout doivent présenter un nombre d’occurrence identique. Aussi, la valeur attendue pour chaque nombre d’occurrence respectif est que les nombres d’occurrence doivent être égaux entre eux.Chained tasks are ordered within a chain and verify a linking condition which can be chosen from two. Thus a following task can only start if the preceding task is started or alternately, and as illustrated in the example of FIGS. 1A and 1B, a following task can only start if the preceding task is finished. Tasks thus chained are paired in that all the tasks of the same chain must be executed substantially at the same time, in sequence, and above all must have an identical number of occurrences. Also, the expected value for each respective occurrence number is that the occurrence numbers must be equal to each other.

Un autre exemple de tâches synchrones entre elles concerne les tâches hiérarchisées. Des tâches hiérarchisées sont appariées par un rapport hiérarchique. Une tâche mère (ou maitre(sse) ou supérieur(e) ou primaire) débute la première et se termine la dernière. Durant son exécution, elle déclenche l’exécution d’une ou plusieurs tâches filles (ou esclave ou subordonné(e) ou secondaire). La tâche mère attend ensuite que toutes ses filles soient terminées avant de pouvoir terminer elle-même. Des tâches ainsi hiérarchisées sont appariées en ce que toutes les tâches d’un même ensemble mère/filles doivent s’exécuter sensiblement dans un même temps, dans un ordre donnée et généralement répétable. Ces tâches, mère et filles, doivent donc, si une tâche fille est déclenchée une seule fois par la tâche mère, présenter un nombre d’occurrence identique. Aussi, la valeur attendue pour chaque nombre d’occurrence respectif, tant de la tâche mère que de la ou des tâches filles est que les nombres d’occurrence doivent être égaux entre eux. Dans le cas où une tâche fille est déclenchée p fois, il apparaît une synchronicité multiple et le nombre d’occurrence de ladite tâche fille doit être p fois celui de la tâche mère.Another example of synchronous tasks relates to hierarchical tasks. Hierarchical tasks are linked by a hierarchical report. A mother task (or master (sse) or superior (e) or primary) begins the first and ends the last. During its execution, it triggers the execution of one or more daughter tasks (or slave or subordinate or secondary). The mother task then waits until all of her daughters are finished before she can finish it herself. Tasks thus prioritized are paired in that all the tasks of the same mother / daughter set must be performed substantially at the same time, in a given order and generally repeatable. These tasks, mother and daughters, must therefore, if a daughter task is triggered only once by the mother task, have an identical number of occurrences. Also, the expected value for each respective occurrence number, both of the parent task and of the daughter task (s) is that the occurrence numbers must be equal to each other. In the case where a daughter task is triggered p times, multiple synchronicity appears and the number of occurrences of said daughter task must be p times that of the parent task.

Il est bien évidement possible de combiner les deux exemples précédents : une tâche mère est typiquement utilisée pour déclencher en tant que tâches filles les tâches chaînées d’une chaîne.It is obviously possible to combine the two previous examples: a parent task is typically used to trigger as daughter tasks the chained tasks of a chain.

Il n’a jusqu’ici pas été évoqué en détail l’organisation logicielle et notamment quelle tâche réalise les opérations du procédé : mise à jour et comparaison, ou sur quelle unité d’exécution. Ceci est justifié par le fait que toute organisation, centralisée ou répartie, peut être envisagée pour implémenter les principes décrits.Until now, the software organization has not been discussed in detail, in particular which task performs the process operations: update and comparison, or on which execution unit. This is justified by the fact that any organization, centralized or distributed, can be envisaged to implement the principles described.

Ainsi, selon un mode de réalisation, une tâche unique centrale peut réaliser toutes les opérations de mise à jour et/ou les opérations de comparaison.Thus, according to one embodiment, a single central task can carry out all of the updating operations and / or of the comparison operations.

Alternativement selon un mode de réalisation préféré, la mise à jour d’un moyen de comptage d’un nombre d’occurrence dédié à une tâche récurrente est réalisée par la tâche elle-même.Alternatively according to a preferred embodiment, the updating of a means of counting a number of occurrences dedicated to a recurring task is carried out by the task itself.

Lorsqu’une première tâche est supprimée une incohérence, typiquement sous la forme d’un moyen de comptage qui ne présente pas la valeur attendue, est créée. Lors d’une comparaison ultérieure, cette incohérence, si elle est maintenue, va induire l’étape de comparaison à déterminer une erreur, même si aucune nouvelle erreur ne s’est produite entre temps, depuis la dernière comparaison. Aussi afin d’éviter cette « mémorisation » de l’incohérence, selon une caractéristique avantageuse, l’étape de comparaison tient compte des éventuelles incohérences précédentes ayant conduit à détecter une erreur et ne détecte une erreur que dans le cas d’une nouvelle erreur occasionnant une nouvelle incohérence.When a first task is deleted, an inconsistency, typically in the form of a counting means which does not have the expected value, is created. In a subsequent comparison, this inconsistency, if maintained, will induce the comparison step to determine an error, even if no new error has occurred in the meantime, since the last comparison. Also in order to avoid this “memorization” of the inconsistency, according to an advantageous characteristic, the comparison step takes account of any previous inconsistencies which have led to detecting an error and only detects an error in the case of a new error. causing a new inconsistency.

Ceci peut être réalisé selon au moins deux modes de réalisation. Selon un premier mode de réalisation, lors de la détection d’une erreur, tous les moyens de comptage sont réinitialisés, en ce qu’ils prennent une valeur initiale, par exemple nulle, ou les moyens de comptage faisant apparaître une incohérence sont corrigés en ce qu’ils prennent la valeur qu’ils auraient dû prendre, soit la valeur attendue. Ainsi l’incohérence est supprimée à la source et une nouvelle comparaison ne détectera pas une incohérence, sauf si une nouvelle erreur s’est produite entre temps.This can be done according to at least two embodiments. According to a first embodiment, when an error is detected, all the counting means are reset, in that they take an initial value, for example zero, or the counting means showing an inconsistency are corrected by what they take the value they should have taken, the expected value. Thus the inconsistency is removed at the source and a new comparison will not detect an inconsistency, unless a new error has occurred in the meantime.

Selon un autre mode de réalisation, il est mémorisé une indication de l’incohérence, tel un décalage entre le moyen de comptage et sa valeur attendue. Ainsi lors d’une nouvelle comparaison, l’étape de comparaison peut tenir compte de la ou des incohérences précédemment détectées aux moyens de la ou des mémorisations correspondantes et vérifier, en intégrant les décalages correspondants que le moyen de comptage affiche une valeur en cohérence avec la valeur attendue. Si en tenant compte de toutes les incohérences mémorisées, il persiste malgré tout une incohérence, ceci est indicatif de la survenance d’une nouvelle erreur entre temps.According to another embodiment, an indication of the inconsistency is stored, such as a shift between the counting means and its expected value. Thus during a new comparison, the comparison step can take account of the inconsistency or inconsistencies previously detected by means of the corresponding memorization or memorizations and verify, by integrating the corresponding offsets that the counting means displays a value in coherence with the expected value. If, taking into account all of the memorized inconsistencies, an inconsistency still persists, this is indicative of the occurrence of a new error in the meantime.

Lorsqu’un gestionnaire de panne interprète une erreur, il est possible de réinitialiser les compteurs.When a fault manager interprets an error, it is possible to reset the counters.

Il a été décrit jusqu’à présent une étape de comparaison détectant une erreur à la première suppression d’une tâche. Alternativement, il est possible de réaliser une étape de comparaison légèrement plus tolérante. Ainsi au moyen d’un seuil de tolérance plus ou moins important, correspondant à une incohérence plus ou moins grande, il est possible de tolérer une ou plusieurs suppressions de tâche avant de détecter une erreur.A comparison step has so far been described detecting an error when a task is first deleted. Alternatively, it is possible to carry out a slightly more tolerant comparison step. Thus by means of a more or less significant tolerance threshold, corresponding to a greater or lesser inconsistency, it is possible to tolerate one or more job deletions before detecting an error.

Il est avantageux de réaliser l’étape de comparaison à un moment plus favorable, lorsque les moyens de comptage ont été mis à jour et ont plus de chance d’être en cohérence.It is advantageous to carry out the comparison step at a more favorable time, when the counting means have been updated and are more likely to be consistent.

Ainsi, pour des tâches multiples, l’étape de comparaison est préférentiellement réalisée après la mise à jour du moyen de comptage dédié à la tâche de plus faible récurrence.Thus, for multiple tasks, the comparison step is preferably carried out after the updating of the counting means dedicated to the task of lower recurrence.

Ici encore, une tâche quelconque peut réaliser l’étape de comparaison. Cependant, particulièrement pour une architecture répartie, la tâche de plus faible récurrence est la mieux placée pour effectuer cette étape.Here again, any task can perform the comparison step. However, particularly for a distributed architecture, the task of lower recurrence is best placed to perform this step.

De manière analogue, pour des tâches chaînées, l’étape de comparaison est préférentiellement réalisée après la mise à jour du moyen de comptage dédié à la dernière tâche de la chaîne.Similarly, for chained tasks, the comparison step is preferably carried out after the update of the counting means dedicated to the last task in the chain.

Ici encore, une tâche quelconque peut réaliser l’étape de comparaison. Cependant, particulièrement pour une architecture répartie, la dernière tâche de la chaîne est la mieux placée pour effectuer cette étape.Here again, any task can perform the comparison step. However, particularly for distributed architecture, the last task in the chain is best placed to perform this step.

De manière analogue, pour des tâches hiérarchisées, l’étape de comparaison est préférentiellement réalisée après la mise à jour du moyen de comptage dédié à la dernière tâche fille et après la mise à jour du moyen de comptage dédié à la tâche mère.Similarly, for hierarchical tasks, the comparison step is preferably carried out after updating the counting means dedicated to the last daughter task and after updating the counting means dedicated to the mother task.

Ici encore, une tâche quelconque peut réaliser l’étape de comparaison. Cependant, particulièrement pour une architecture répartie, la tâche mère est la mieux placée pour effectuer cette étape.Here again, any task can perform the comparison step. However, particularly for a distributed architecture, the parent task is best placed to perform this step.

II a été vu dans le mode de réalisation général, que l’on pouvait dédier un moyen de comptage à chaque tâche. Dans le cas de tâches chaînées, on a nécessairement le même nombre d’occurrence pour toutes les tâches. Aussi, alternativement, un unique moyen de comptage, préférentiellement un drapeau binaire, peut être utilisé pour la chaîne complète. Dans ce mode de réalisation, l’étape de mise à jour active le moyen de comptage lors de l’exécution d’une première tâche de la chaîne et le désactive lors de l’exécution d’une dernière tâche de la chaîne. Ainsi, en fonctionnement nominal, si la première et la dernière tâches s’exécutent, ni la première tâche ni la dernière tâche n’ont été supprimées, ni aucune des tâches intermédiaires de la chaîne. Aussi la valeur attendue du moyen de comptage doit être « désactivé » avant l’exécution d’une première tâche de la chaîne et après l’exécution d’une dernière tâche de la chaîne et « activé » sinon, soit entre l’exécution d’une première tâche de la chaîne et l’exécution d’une dernière tâche de la chaîne. Dans un cas contraire, au moins une des tâches de la chaîne a été supprimée, ou n’est pas encore terminée alors qu’un nouveau segment commence, et le moyen de comptage présente un état incohérent.It has been seen in the general embodiment, that a counting means could be dedicated to each task. In the case of chained tasks, we necessarily have the same number of occurrences for all tasks. Also, alternatively, a single counting means, preferably a binary flag, can be used for the complete chain. In this embodiment, the update step activates the counting means when a first task in the chain is executed and deactivates it when a last task in the chain is executed. Thus, in nominal operation, if the first and last tasks are executed, neither the first task nor the last task have been deleted, nor any of the intermediate tasks in the chain. Also the expected value of the counting means must be "deactivated" before the execution of a first task of the chain and after the execution of a last task of the chain and "activated" otherwise, either between the execution of 'a first task in the chain and the execution of a last task in the chain. Otherwise, at least one of the tasks in the chain has been deleted, or is not yet finished when a new segment begins, and the counting means has an inconsistent state.

Le moyen de comptage peut être implémenté au moyen d’un drapeau binaire sélectivement levé / activé ou baissé / désactivé. De manière équivalente un compteur sélectivement incrémenté / activé ou décrémenté / désactivé peut être utilisé.The counting means can be implemented by means of a binary flag selectively raised / activated or lowered / deactivated. Equivalently a counter selectively incremented / activated or decremented / deactivated can be used.

L’invention est avantageusement applicable à un système informatique pilotant un système industriel. Ce système industriel peut être moteur automobile, le système informatique assurant le contrôle moteur.The invention is advantageously applicable to a computer system controlling an industrial system. This industrial system can be an automobile engine, the computer system providing engine control.

Un tel système gère, en plus d’évènements aléatoires, deux récurrences. Une première récurrence est périodique avec des tâches déclenchées selon une période fixe (par exemple : 10ms, 100ms) afin de gérer des paramètres échantillonnés en temps réel. Une deuxième récurrence est apériodique avec des tâches déclenchées en relation avec le fonctionnement du moteur (repère angulaire vilebrequin : par exemple point mort haut, repère angulaire arbre à cames, etc.) en synchronisation avec le régime moteur.Such a system manages, in addition to random events, two recurrences. A first recurrence is periodic with tasks triggered according to a fixed period (for example: 10 ms, 100 ms) in order to manage parameters sampled in real time. A second recurrence is aperiodic with tasks triggered in relation to the operation of the engine (crankshaft angular reference: for example top dead center, camshaft angular reference, etc.) in synchronization with the engine speed.

Les moyens de comptages et les données qui leur sont associées doivent être accessible en écriture par la ou les entité(s) qui réalise(nt) l’étape de mise à jour et être accessible en lecture par la ou les entité(s) qui réalise(nt) l’étape de comparaison. Ces entités pouvant être différentes, il convient de mettre en place un moyen de communication de ces données. Tout moyen de communication est ici possible, par exemple par échange de messages. Selon un mode de réalisation préféré, ceci est réalisé au moyen d’une mémoire partagée dans laquelle toutes les données sont stockées. Cette mémoire est au moins partagée entre la/les tâches qui effectuent la mise à jour et la/les tâches qui réalisent la comparaison. Avantageusement, le cas échéant, cette mémoire est partagée entre les unités d’exécution impliquées ou entre toutes les unités d’exécution.The counting means and the data associated with them must be accessible in writing by the entity (ies) which carries out the updating step and be accessible in reading by the entity (s) which performs the comparison step. These entities may be different, it is advisable to set up a means of communication of these data. Any means of communication is possible here, for example by exchanging messages. According to a preferred embodiment, this is achieved by means of a shared memory in which all the data is stored. This memory is at least shared between the task (s) performing the update and the task (s) performing the comparison. Advantageously, if necessary, this memory is shared between the execution units involved or between all the execution units.

Dans le cas général, un moyen de comptage peut être implémenté par un compteur comptant les occurrences d’une tâche associé, incrémenté à chaque nouvelle occurrence de ladite tâche. De manière avantageuse ce compteur est cyclique en ce qu’il compte les occurrences de 0 à N et que N+1 est égal à 0, le compteur étant réinitialisé en cas de dépassement. L’étape de comparaison sait tenir compte d’un tel compteur cyclique, pour peu que N soit suffisamment grand pour éviter toute confusion.In the general case, a counting means can be implemented by a counter counting the occurrences of an associated task, incremented with each new occurrence of said task. Advantageously, this counter is cyclic in that it counts the occurrences from 0 to N and that N + 1 is equal to 0, the counter being reset in the event of overshooting. The comparison step knows how to take account of such a cyclic counter, provided that N is large enough to avoid any confusion.

En référence avec la figure 2 vont maintenant être décrits quelques cas d’utilisation. Sur la colonne de gauche figurent les occurrences de tâches mères périodiques. Une première tâche mère est exécutée toutes les 10ms. Les deux colonnes de droite figurent deux unités d’exécution A et B. La tâche mère « 10ms » déclenche une tâche fille sur chacune des deux unités d’exécution A, B, soit une tâche « A 10ms » et une tâche «B 10ms». Chacune de ces trois tâches hiérarchisées est associée avec un moyen de comptage, soit respectivement CTR_10ms pour la tâche mère, CTR_A_10ms pour la tâche fille exécutée sur l’unité d’exécution A, et CTR_B_10ms pour la tâche fille exécutée sur l’unité d’exécution B. Pour la première ligne, tout se passe bien. Les trois moyens de comptage sont égaux à 25, donc aucune incohérence n’est à signaler. A la ligne suivante, chacune des trois tâches s’exécute correctement et les moyens de comptage respectifs sont mis à jour, par une incrémentation de 1, à la valeur 26. Toujours aucune incohérence. Idem à la ligne suivante où les moyens de comptage sont mis à jour à 27.With reference to FIG. 2, a few use cases will now be described. In the left column are the occurrences of periodic parent tasks. A first mother task is executed every 10 ms. The two right columns show two execution units A and B. The parent task "10ms" triggers a child task on each of the two execution units A, B, ie a task "A 10ms" and a task "B 10ms" " Each of these three hierarchical tasks is associated with a counting means, either CTR_10ms for the parent task, CTR_A_10ms for the daughter task executed on the execution unit A, and CTR_B_10ms for the daughter task executed on the unit respectively. execution B. For the first line, everything is fine. The three counting means are equal to 25, so there is no inconsistency to report. On the next line, each of the three tasks is executed correctly and the respective counting means are updated, by an increment of 1, to the value 26. Still no inconsistency. Same as the next line where the counting means are updated to 27.

Une étape de comparaison peut alors comparer le moyen de comptage de la tâche mère CTR_10ms avec le moyen de comptage CTR_A_10ms, CTR_B_10ms de chacune de ses deux filles sans relever aucune incohérence indicative d’une erreur. A la ligne suivante, la tâche mère ainsi que sa fille sur l’unité d’exécution A s’exécutent correctement, mais la fille sur l’unité d’exécution B est supprimée. Lors de l’étape de mise à jour, le moyen de comptage de la tâche mère CTR_10ms et le moyen de comptage de la tâche fille A CTR_A_10ms sont incrémentés et atteignent la valeur 28. Pour la tâche fille B supprimée, il n’y a pas de mise à jour et le moyen de comptage associé CTR_B_10ms reste inchangé égal à 27. Une comparaison des moyens de comptage CTR_B_10ms de la tâche fille B avec le moyen de comptage CTR_10ms de la tâche mère ou avec le moyen de comptage CTR_A_10ms de la tâche fille A fait apparaître une incohérence sous la forme d’une différence de 1 indicative d’une erreur.A comparison step can then compare the counting means of the mother task CTR_10ms with the counting means CTR_A_10ms, CTR_B_10ms of each of its two daughters without detecting any inconsistency indicative of an error. On the next line, the mother task and her daughter on thread A run correctly, but the daughter on thread B is deleted. During the update step, the counting means of the mother task CTR_10ms and the counting means of the daughter task A CTR_A_10ms are incremented and reach the value 28. For the daughter task B deleted, there is no no update and the associated counting means CTR_B_10ms remains unchanged equal to 27. A comparison of the counting means CTR_B_10ms of the daughter task B with the counting means CTR_10ms of the parent task or with the counting means CTR_A_10ms of the task girl A shows an inconsistency in the form of a difference of 1 indicative of an error.

Cette erreur étant égale à l’incrément, indique de plus le nombre, ici 1, de tâche supprimée.This error being equal to the increment, also indicates the number, here 1, of task deleted.

Pour la suite cette différence de 1 est mémorisée. Ainsi la différence qui se 10 maintient entre les compteurs (29, 29, 28 ; 30, 30, 29 ; 31,31,30) n’est pas à nouveau interprétée comme une erreur. Par contre une nouvelle différence serait indicative d’une nouvelle incohérence et donc d’une nouvelle erreur. Ainsi des compteurs 32, 32, 30, indiqueraient une nouvelle suppression de la tâche fille B, tandis que des compteurs 32, 31,31, indiqueraient une suppression de la tâche fille A.For the rest of this difference of 1 is stored. Thus the difference which remains between the counters (29, 29, 28; 30, 30, 29; 31, 31, 30) is not again interpreted as an error. On the other hand, a new difference would be indicative of a new inconsistency and therefore of a new error. Thus counters 32, 32, 30, would indicate a new deletion of the child task B, while counters 32, 31, 31, would indicate a deletion of the child task A.

La tâche (mère) 10ms est une tâche multiple d’une tâche 100ms. Le rapport de récurrence relative est ici de 10. Une troisième occurrence de la tâche 100ms apparaît naturellement après la trentième occurrence de la tâche 10ms. L’étape de comparaison peut vérifier que le moyen de comptage CTR_10ms de la tâche 10ms et le moyen de comptage CTR_100ms de la tâche 100ms sont bien dans un rapport de 30 pour 3, soit 10, égal au rapport de récurrence relative.The 10ms task (mother) is a multiple task of a 100ms task. The relative recurrence ratio here is 10. A third occurrence of the 100ms task naturally appears after the thirtieth occurrence of the 10ms task. The comparison step can verify that the counting means CTR_10ms of the task 10ms and the counting means CTR_100ms of the task 100ms are indeed in a ratio of 30 to 3, that is to say 10, equal to the relative recurrence ratio.

La tâche mère 100ms est elle-même hiérarchisée avec deux tâches 100ms filles A et B avec lesquelles il est encore possible de vérifier la cohérence. Ainsi chaque appariement permet d’enrichir le diagnostic et il est possible de détecter une suppression de toute tâche appartenant à au moins un appariement.The 100ms parent task is itself hierarchized with two 100ms daughter tasks A and B with which it is still possible to check the consistency. Thus each pairing enriches the diagnosis and it is possible to detect a deletion of any task belonging to at least one pairing.

Claims (16)

REVENDICATIONS 1. Procédé de diagnostic, pour un système informatique comprenant au moins deux tâches (T1-T3) récurrentes appariées, caractérisé en ce qu’il comprend les étapes suivantes :1. Diagnostic method, for a computer system comprising at least two recurring paired tasks (T1-T3), characterized in that it comprises the following steps: • mise à jour d’un moyen de comptage d’un nombre d’occurrence dédié à une tâche (T1-T3) récurrente, lors de chaque nouvelle occurrence de ladite tâche (T1-T3) récurrente, • comparaison des moyens de comptage respectifs desdites au moins deux tâches (T1-T3) récurrentes appariées avec des valeurs attendues, une incohérence d’au moins un des moyens de comptage avec sa valeur attendue étant indicative d’une erreur.• updating of a means of counting a number of occurrences dedicated to a recurring task (T1-T3), during each new occurrence of said recurring task (T1-T3), • comparison of the respective counting means said at least two recurring tasks (T1-T3) matched with expected values, an inconsistency of at least one of the counting means with its expected value being indicative of an error. 2. Procédé selon la revendication 1, où la partie matérielle du système informatique comprend au moins deux unités d’exécution (A0-A2).2. Method according to claim 1, wherein the hardware part of the computer system comprises at least two execution units (A0-A2). 3. Procédé selon l’une quelconque des revendications 1 ou 2, où lesdites au moins deux tâches (T1-T3) récurrentes appariées sont synchrones entre elles, respectivement multiples avec un rapport de récurrence relative, et où les valeurs attendues de leur nombre d’occurrence respectif sont égales, respectivement dans un rapport égal au rapport de leur récurrence relative.3. Method according to any one of claims 1 or 2, wherein said at least two recurrent paired tasks (T1-T3) are synchronous with each other, respectively multiple with a relative recurrence ratio, and where the expected values of their number d 'respective occurrence are equal, respectively in a ratio equal to the ratio of their relative recurrence. 4. Procédé selon l’une quelconque des revendications 1 à 3, où lesdites au moins deux tâches (T1-T3) récurrentes appariées sont chaînées, en ce qu’elles sont ordonnées dans une chaîne et qu’une tâche suivante dans la chaîne ne peut débuter que si la tâche précédente dans la chaîne est débutée et/ou est terminée, et où les valeurs attendues de leur nombre d’occurrence respectif sont égales.4. Method according to any one of claims 1 to 3, wherein said at least two recurrent paired tasks (T1-T3) are chained, in that they are ordered in a chain and that a next task in the chain does not can only start if the previous task in the chain is started and / or is finished, and where the expected values of their respective number of occurrences are equal. 5. Procédé selon l’une quelconque des revendications 1 à 4, où lesdites au moins deux tâches récurrentes appariées sont hiérarchisées, en ce qu’une tâche mère débute la première, déclenche l’exécution d’au moins une tâche fille et ne termine qu’après que toutes ses filles soient terminées, et où les valeurs attendues de leur nombre d’occurrence respectif sont égales.5. Method according to any one of claims 1 to 4, wherein said at least two recurring paired tasks are hierarchical, in that a parent task begins first, triggers the execution of at least one daughter task and does not finish only after all of its daughters are finished, and where the expected values of their respective number of occurrences are equal. 6. Procédé selon l'une quelconque des revendications 1 à 5, où la mise à jour d’un moyen de comptage d’un nombre d’occurrence dédié à une tâche (T1-T3) récurrente est réalisée par ladite tâche.6. Method according to any one of claims 1 to 5, wherein the updating of a counting means of a number of occurrences dedicated to a recurring task (T1-T3) is carried out by said task. 7. Procédé selon l'une quelconque des revendications 1 à 6, où l’étape de comparaison tient compte d’une incohérence précédemment détectée, afin de ne détecter qu’une nouvelle erreur.7. Method according to any one of claims 1 to 6, wherein the comparison step takes into account a previously detected inconsistency, in order to detect only a new error. 8. Procédé selon l'une quelconque des revendications 1 à 7, où l’étape de comparaison tolère une incohérence inférieure à un seuil.8. Method according to any one of claims 1 to 7, wherein the comparison step tolerates an inconsistency below a threshold. 9. Procédé selon l'une quelconque des revendications 3 à 8, où pour des tâches multiples, l’étape de comparaison est réalisée après la mise à jour du moyen de comptage dédié à la tâche de plus faible récurrence, préférentiellement par ladite tâche de plus faible récurrence.9. Method according to any one of claims 3 to 8, where for multiple tasks, the comparison step is carried out after updating the counting means dedicated to the task of lower recurrence, preferably by said task of lower recurrence. 10. Procédé selon l'une quelconque des revendications 4 à 9, où pour des tâches chaînées, l’étape de comparaison est réalisée après la mise à jour du moyen de comptage dédié à la dernière tâche de la chaîne, préférentiellement par ladite dernière tâche de la chaîne.10. Method according to any one of claims 4 to 9, where for chained tasks, the comparison step is carried out after the updating of the counting means dedicated to the last task in the chain, preferably by said last task chain. 11. Procédé selon l'une quelconque des revendications 5 à 10, où pour des tâches hiérarchisées, l’étape de comparaison est réalisée après la mise à jour du moyen de comptage dédié à la dernière tâche fille et après la mise à jour du moyen de comptage dédié à la tâche mère, préférentiellement par la tâche mère.11. Method according to any one of claims 5 to 10, where for hierarchical tasks, the comparison step is carried out after the updating of the counting means dedicated to the last daughter task and after the updating of the means counting dedicated to the mother task, preferably by the mother task. 12. Procédé selon l'une quelconque des revendications 4 à 11, où pour des tâches chaînées (T1-T3), un unique moyen de comptage, préférentiellement un drapeau binaire, est utilisé pour une chaîne, l’étape de mise à jour activant le moyen de comptage lors de l’exécution d’une première tâche (T1) de la chaîne et désactivant le moyen de comptage lors de l’exécution d’une dernière tâche (T3) de la chaîne, la valeur attendue du moyen de comptage étant « désactivé » avant l’exécution d’une première tâche (T1) de la chaîne et après l’exécution d’une dernière tâche (T3) de la chaîne.12. Method according to any one of claims 4 to 11, where for chained tasks (T1-T3), a single counting means, preferably a binary flag, is used for a chain, the updating step activating the counting means during the execution of a first task (T1) of the chain and deactivating the counting means during the execution of a last task (T3) of the chain, the expected value of the counting means being “deactivated” before the execution of a first task (T1) of the chain and after the execution of a last task (T3) of the chain. 13. Procédé selon la revendication 12, où l’étape de mise à jour vérifie que le moyen de comptage est désactivé avant de procéder à son activation.13. The method of claim 12, wherein the updating step verifies that the counting means is deactivated before activating it. 14. Procédé selon l’une quelconque des revendications 1 à 13, où ledit système informatique pilote un système industriel, tel un moteur automobile.14. Method according to any one of claims 1 to 13, wherein said computer system controls an industrial system, such as an automobile engine. 15. Procédé selon l'une quelconque des revendications 1 à 14, où les données des moyens de comptage sont stockées dans une mémoire partagée entre toutes les tâches (T1-T3).15. Method according to any one of claims 1 to 14, wherein the data of the counting means are stored in a memory shared between all the tasks (T1-T3). 16. Procédé selon l'une quelconque des revendications 1 à 15, où l’implémentation d’un moyen de comptage comprend un compteur cyclique.16. Method according to any one of claims 1 to 15, wherein the implementation of a counting means comprises a cyclic counter. 2/22/2 CTR 3 iûmfc-25CTR 3 iûmfc-25 CIR^S^lUms- 26CIR ^ S ^ lUms- 26 CTM iOrra-27 f'r'.j' ?;·('!-.yCTM iOrra-27 f'r'.j '?; · ('! -. Y CTR_a_10m5=23CTR_a_10m 5 = 23 CTR Θ ICffls-29CTR Θ ICffls-29 US BUS B
FR1662282A 2016-12-12 2016-12-12 METHOD FOR DIAGNOSING TASK SCHEDULING Pending FR3060149A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1662282A FR3060149A1 (en) 2016-12-12 2016-12-12 METHOD FOR DIAGNOSING TASK SCHEDULING
FR1751245A FR3060150B1 (en) 2016-12-12 2017-02-16 PROCESS FOR DIAGNOSING A TASK SCHEDULE
PCT/FR2017/050350 WO2018109288A1 (en) 2016-12-12 2017-02-16 Method for diagnosing a sequencing of tasks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1662282A FR3060149A1 (en) 2016-12-12 2016-12-12 METHOD FOR DIAGNOSING TASK SCHEDULING

Publications (1)

Publication Number Publication Date
FR3060149A1 true FR3060149A1 (en) 2018-06-15

Family

ID=58267139

Family Applications (2)

Application Number Title Priority Date Filing Date
FR1662282A Pending FR3060149A1 (en) 2016-12-12 2016-12-12 METHOD FOR DIAGNOSING TASK SCHEDULING
FR1751245A Active FR3060150B1 (en) 2016-12-12 2017-02-16 PROCESS FOR DIAGNOSING A TASK SCHEDULE

Family Applications After (1)

Application Number Title Priority Date Filing Date
FR1751245A Active FR3060150B1 (en) 2016-12-12 2017-02-16 PROCESS FOR DIAGNOSING A TASK SCHEDULE

Country Status (2)

Country Link
FR (2) FR3060149A1 (en)
WO (1) WO2018109288A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3085770B1 (en) * 2018-09-11 2020-08-07 Continental Automotive France PROCESS FOR DETECTION OF A STAIN DISAPPEARANCE
FR3089315B1 (en) * 2018-11-30 2021-08-20 Continental Automotive France Method for detecting the disappearance of a stain
FR3090157B1 (en) * 2018-12-12 2020-11-20 Continental Automotive France Multicore processor engine control unit control method
FR3099826B1 (en) * 2019-08-09 2021-11-19 Continental Automotive Gmbh Treatment process for a camshaft sensor

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004028819B4 (en) * 2004-06-15 2006-10-19 Siemens Ag Method for identifying and transmitting program durations in embedded systems
FR2903774B1 (en) * 2006-07-17 2008-09-05 Renault Sas METHOD FOR VALIDATING A FUNCTIONING DIAGNOSTIC OF A DEVICE.
FR2965947B1 (en) * 2010-10-11 2019-05-31 Safran Electronics & Defense Sas METHOD AND APPARATUS FOR SCHEDULING SEMI-PERIODIC TASKS IN A REAL-TIME MULTI-THROUGH SYSTEM
FR2989488B1 (en) * 2012-04-13 2015-02-20 Commissariat Energie Atomique DEVICE FOR GENERATING A SIGNATURE AT THE EXECUTION OF A PROGRAM TASK AND METHOD OF COMPARING EXECUTION FLOTS
FR2990782B1 (en) * 2012-05-15 2015-06-26 Sagem Defense Securite METHOD FOR MANAGING TASK EXECUTION IN A COMPUTER SYSTEM

Also Published As

Publication number Publication date
FR3060150A1 (en) 2018-06-15
FR3060150B1 (en) 2020-09-25
WO2018109288A1 (en) 2018-06-21

Similar Documents

Publication Publication Date Title
FR3060149A1 (en) METHOD FOR DIAGNOSING TASK SCHEDULING
AU2018241568B2 (en) Blockchain-based consensus method and device
CN109960488B (en) APP full period monitoring method, device, computer equipment and storage medium
FR3018856A1 (en) METHOD FOR DETERMINING THE INSTANTANEOUS ANGULAR POSITION OF AN OPTIMIZED CRANKSCRIPT TARGET FOR STARTING THE ENGINE
CN107203429A (en) A kind of method and device that distributed task scheduling is loaded based on distributed lock
EP4087185A1 (en) Method and electronic device for monitoring an avionics software application, associated computer program and avionics system
AU2017397483A1 (en) Processing telemetry data streams based on an operating state of the data source
FR2751106A1 (en) METHOD OF PLANNING DISTRIBUTED TRANSACTIONS
WO2011117528A1 (en) Method, computer program, and device for validating task execution in scaleable computer systems
CN109992390A (en) Timed task dispatching method and timed task processing method
CN110471780B (en) Distributed event processing apparatus, terminal, and computer storage medium
CN105871960B (en) Method, device and equipment for calling data sharing
EP2850520B1 (en) Method for the management of task execution in a computer system
CN106855969B (en) Method and system for determining timeout time
CN108241693B (en) Method and device for synchronizing data
WO2012049082A1 (en) Method and device for scheduling semi-periodic tasks in a real-time multitask system
FR2965077A1 (en) METHOD FOR MANAGING TASKS IN A MICROPROCESSOR OR A SET OF MICROPROCESSORS
WO2015150678A1 (en) Synchronisation of the input data links of a computer
FR3018933A1 (en) METHOD FOR DETERMINING THE STATE OF AN AIRCRAFT EQUIPMENT
CN115099972A (en) Transaction data processing method, device and equipment based on event-driven architecture
FR3029239A1 (en) METHOD FOR MONITORING THE OPERATION OF A TURBOMACHINE
EP2996036B1 (en) Method for monitoring an application architecture comprising a plurality of services
EP3343375B1 (en) A method and a system for monitoring batch processing of applications executed in it infrastructure
CN111898013A (en) Website monitoring method and device
EP3791561B1 (en) Anchor shortening across streaming nodes