Brevet FR3060150A1 — publié le 20180615

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. 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. Afin de répondre à ce problème, l'invention propose de surveiller les tâches 20 récurrentes et de compter comparativement les occurrences de tâches récurrentes appariées, afin de pouvoir détecter une incohérence. 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 : 25 - 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 30 indicative d'une erreur. Selon une autre caractéristique, la partie matérielle du système informatique comprend au moins deux unités d'exécution. 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 35 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. 3060150 2 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. 5 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. Selon une autre caractéristique la mise à jour d'un moyen de comptage d'un 10 nombre d'occurrence dédié à une tâche récurrente est réalisée par ladite tâche. 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. Selon une autre caractéristique l'étape de comparaison tolère une incohérence inférieure à un seuil. 15 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. 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 20 tâche de la chaîne, préférentiellement par ladite dernière tâche de la chaîne. 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. 25 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 30 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. 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. Selon une autre caractéristique ledit système informatique pilote un système 35 industriel, tel un moteur automobile. 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. 3060150 3 Selon une autre caractéristique l'implémentation d'un moyen de comptage comprend un compteur cyclique. La description détaillée ci-après, est donnée en relation avec des dessins sur lesquels : 5 - les figures 1A et 1B présentent un synoptique illustrant une erreur d'ordonnancement, - 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. D'autres caractéristiques, détails et avantages de l'invention ressortiront plus 10 clairement de la description détaillée donnée ci-après à titre indicatif. 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 Ti , T2, T3. Ces trois tâches Ti-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é 15 d'exécution peut être un noyau ou coeur 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 Ti -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 Cyli , Cy12, 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 Ti-T3 doivent être exécutées au cours d'un même cylindre. La figure 1A illustre un fonctionnement nominal. Ici, le temps/charge disponible pour le cylindre Cyli est suffisant pour permettre l'exécution successive, dans l'ordre, des trois tâches Ti -T3. Cependant, le temps/charge disponible pour le cylindre Cyli est variable. La charge d'une unité d'exécution AO-A2 peut se trouver réduite par une superposition 30 exceptionnelle d'évènements aléatoires en provenance du système industriel piloté. Le temps alloué à un cylindre peut aussi varier. 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 Cyli, Cy12 est inversement proportionnelle au régime moteur. 35 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 Ti-T3 durant le cylindre Cyll . Aussi tel qu'illustré à la figure 1B, l'occurrence de la tâche T3 pour le 3060150 4 cylindre Cyli ne peut être exécutée durant Cyli 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 Cy12. Cette suppression est très préjudiciable en ce qu'elle peut, dans des cas 5 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 10 difficiles à identifier. 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 15 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. 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 : 20 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 25 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. 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. II 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 3060150 5 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. 5 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. Des tâches appariées synchrones (entre elles) peuvent être récurrentes sans 10 ê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 15 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. Il 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 20 apériodique. 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. 25 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. 30 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. 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 35 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 3060150 6 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. 5 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 10 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 15 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 apparait une synchronicité multiple et le nombre d'occurrence de ladite tâche fille doit être p fois celui de la tâche mère. 20 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. 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 25 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. 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. Alternativement selon un mode de réalisation préféré, la mise à jour d'un 30 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. 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 35 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 3060150 7 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. Ceci peut être réalisé selon au moins deux modes de réalisation. Selon un 5 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 apparaitre 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 10 incohérence, sauf si une nouvelle erreur s'est produite entre temps. 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 15 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. Lorsqu'un gestionnaire de panne interprète une erreur, il est possible de 20 réinitialiser les compteurs. 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 25 possible de tolérer une ou plusieurs suppressions de tâche avant de détecter une erreur. 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. Ainsi, pour des tâches multiples, l'étape de comparaison est 30 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. 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. 35 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. 3060150 8 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. De manière analogue, pour des tâches hiérarchisées, l'étape de comparaison 5 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. 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. 10 Il 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 à 15 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 20 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. 25 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é. L'invention est avantageusement applicable à un système informatique pilotant un système industriel. Ce système industriel peut être moteur automobile, le 30 système informatique assurant le contrôle moteur. 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 35 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. 3060150 9 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 5 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, 10 cette mémoire est partagée entre les unités d'exécution impliquées ou entre toutes les unités d'exécution. 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 15 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. 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 20 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 25 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 30 aucune incohérence. Idem à la ligne suivante où les moyens de comptage sont mis à jour à 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 35 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 3060150 10 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 5 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. Cette erreur étant égale à l'incrément, indique de plus le nombre, ici 1, de tâche supprimée. 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. 15 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 apparait 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, 20 soit 10, égal au rapport de récurrence relative. 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. REVENDICATIONS1. 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 : - 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 10 indicative d'une erreur. 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 (AO-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, 15 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. 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 20 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. 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 25 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. 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 30 est réalisée par ladite tâche. 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. 3060150 12 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. 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 5 comptage dédié à la tâche de plus faible récurrence, préférentiellement par ladite tâche de plus faible récurrence. 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 10 tâche de la chaîne. 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. 15 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 20 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. 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. 14. Procédé selon l'une quelconque des revendications 1 à 13, où ledit système 25 informatique pilote un système industriel, tel un moteur automobile. 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). 16. Procédé selon l'une quelconque des revendications 1 à 15, où 30 l'implémentation d'un moyen de comptage comprend un compteur cyclique.