Brevet FR3107369A1 — publié le 20210820

Calculateur électronique , système électronique , procédé de surveillance de l’exécution d’une application et programme d’ordinateur associé L’invention concerne un calculateur (C) comprenant une mémoire et une chaine de traitement comprenant une entité (16) de traitement d’entrée(s)/sorties, un processeur (12), un système d’exploitation en interaction avec l’entité de traitement et le processeur, le calculateur, en présence d’une requête externe, d’exécution d’une application source (28) dont l’exécutable a été préalablement chargé dans une zone de la mémoire, étant propre à: - instancier une application clone (32) de l’application source (28) en: - dupliquant l’exécutable de l’application source (28) pour créer celui de l’application clone (32), et en le stockant dans une zone mémoire distincte de celle de l’application source, - générant une requête interne audit processeur, d’exécution de ladite application clone (32), - exécuter indépendamment les applications source (28) et clone (32), - générer une sortie unique (56) en fonction de la comparaison du résultat d’exécution de l’application source (28) avec celui de l’application clone (32). Figure pour l'abrégé : Figure 1 Calculateur électronique, système électronique, procédé de surveillance de l’exécution d’une application et programme d’ordinateur associé La présente invention concerne un calculateur électronique comprenant au moins un espace mémoire et une chaine de traitement de donnée(s), la chaine comprenant au moins une entité de traitement d’entrée(s)/sorties du calculateur, au moins un processeur configuré pour exécuter au moins un programme logiciel appelé application, et un système d’exploitation en interaction avec l’entité de traitement d’entrée(s)/sorties et ledit au moins un processeur. La présente invention concerne également un système avionique comprenant un tel calculateur électronique. La présente invention concerne également un procédé de surveillance de l’exécution d’une application sur un tel calculateur électronique, le procédé étant mis en œuvre par un tel calculateur électronique. La présente invention concerne aussi un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un tel procédé de surveillance de l’exécution d’une application sur un tel calculateur électronique. La présente invention concerne les calculateurs électroniques de systèmes critiques, notamment des calculateurs dédiés à des applications graphiques, répondant à des critères d’intégrité de fonctionnement et également d’encombrement, poids, et de flexibilité d’implémentation tel qu’utilisés pour le transport aéronautique, terrestre, ferroviaire, spatial, maritime, sous-maritime ou encore dans le domaine de l’énergie (contrôle de centrale électrique en production ou distribution, contrôle de procédé(s) industriel(s)) ou de la robotique, fixes dans des infrastructures immobiles (e.g. pour le contrôle aérien, l’instrumentation aérienne, la gestion de voie ferrées et aiguillage) ou embarqués au sein d’un véhicule/élément mobile entre deux points géographiques distincts. Actuellement pour répondre à des critères d’intégrité de fonctionnement, des contraintes sont mises en œuvre au niveau de l’application à exécuter par le calculateur et/ou au niveau de la définition système de cette application, ou encore sur la définition même du calculateur mettant en œuvre une telle application en imposant une multiplication de ses ressources internes à des fins de comparaison pour validation d’intégrité. Cependant de telles contraintes ne sont en rien nécessaires à la fonction finale de l’application et permettent uniquement de pallier un manque d’intégrité du calculateur électronique en tant que tel. De plus, pour répondre à des critères d’intégrité de fonctionnement, un ajout de ressources matérielles contribuant uniquement à renforcer l’intégrité de la chaine fonctionnelle du calculateur est généralement mis en œuvre, ce qui est source d’augmentation de l’encombrement et du poids du calculateur électronique, parfois complexe à mettre en œuvre, voire constitutif d’une charge inutile lorsque le besoin d’intégrité n’est pas requis en permanence pour l’exécution de la chaine fonctionnelle en tant que telle. Autrement dit, actuellement une chaine fonctionnelle voit son coût d’implémentation augmenter par l’intégrité alors que le besoin d’intégrité associé à la chaine fonctionnelle n’est pas toujours requis. Le but de l’invention est alors de proposer un calculateur électronique et un procédé de surveillance de l’exécution d’une application sur un tel calculateur électronique qui permette d’augmenter l’intégrité du calculateur électronique sans imposer de contrainte au niveau de l’application et de sa conception, ni au niveau du calculateur ni en terme d’encombrement, poids et puissance (de l’anglais SWaP pour Size, Weight and Power ). A cet effet l’invention a pour objet un calculateur électronique comprenant au moins un espace mémoire et une chaine de traitement de donnée(s), la chaine comprenant au moins: - une entité de traitement d’entrée(s)/sorties du calculateur, - au moins un processeur configuré pour exécuter au moins un programme logiciel appelé application, - un système d’exploitation en interaction avec l’entité de traitement d’entrée(s)/sorties et ledit au moins un processeur, le calculateur électronique, en présence d’une requête externe, destinée audit au moins un processeur, d’exécution d’une application source dont l’exécutable a été préalablement chargé au sein d’une première zone dédiée de l’espace mémoire dudit calculateur, étant au moins propre à: - instancier au moins une application clone de l’application source en: - dupliquant l’exécutable de l’application source pour créer l’exécutable de ladite au moins une application clone, - stockant l’exécutable de ladite au moins une application clone dans une deuxième zone de l’espace mémoire distincte de la première zone mémoire dédiée à l’application source, et en - générant une requête, interne au calculateur et destinée audit au moins un processeur, d’exécution de ladite au moins une application clone, - exécuter l’application source et ladite au moins une application clone indépendamment l’une de l’autre en utilisant ledit au moins un processeur, - générer une sortie unique en fonction d’un résultat d’intégrité obtenu par comparaison du résultat de l’exécution de l’application source avec le résultat de l’exécution de ladite au moins une application clone. Le calculateur électronique selon la présente invention est alors propre à fournir une augmentation de l’intégrité sur mesure en instanciant au moins une application clone de l’application dont l’augmentation d’intégrité d’exécution est souhaitée. L’application source et son clone sont ensuite exécutées de manière indépendante comme deux applications distinctes le seraient sur la chaine de calcul du calculateur ce qui, à la fois, ne nécessite pas d’ajout de ressource matérielle, et est transparent pour la conception d’application(s). Suivant d’autres aspects avantageux de l’invention, le calculateur électronique comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles: - en cas d’incohérence entre le résultat de l’exécution de l’application source et le résultat de l’exécution de ladite au moins une application clone, la sortie unique correspond à une commande de sanction dudit au moins un processeur, ou, - en cas de cohérence entre le résultat de l’exécution de l’application source et le résultat de l’exécution de ladite au moins une application clone, la sortie unique correspond au résultat de l’exécution de l’application source ou au résultat de l’exécution de ladite au moins une application clone; - le calculateur comprend un comparateur indépendant dudit au moins un processeur, le comparateur étant dédié à: - ladite comparaison du résultat de l’exécution de l’application source avec le résultat de l’exécution de ladite au moins une application clone délivrant ledit résultat d’intégrité, et - la génération de ladite sortie unique en fonction dudit résultat d’intégrité, ledit comparateur étant configuré pour appliquer ladite commande de sanction en cas d’incohérence entre le résultat de l’exécution de l’application source et le résultat de l’exécution de ladite au moins une application clone; - le comparateur est intégré au sein de l’entité de traitement d’entrée(s)/sortie(s) distincte dudit processeur. L’invention a également pour objet un système électronique comprenant au moins un calculateur électronique selon la présente invention, et un dispositif d’installation d’application(s) configuré pour rendre clonable l’application source au sein du calculateur, le caractère clonable de l’application source étant activable/désactivable en fonction du niveau d’intégrité souhaité de l’application source et/ou en fonction de la disponibilité dudit au moins un processeur du calculateur. Suivant d’autres aspects avantageux de l’invention, le calculateur électronique comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles: - le dispositif d’installation est configuré pour rendre clonable l’application source enchargeant l’exécutable de l’application source dans une première zone dédiée de l’espace mémoire du calculateur, et en configurant le système d’exploitation du calculateur pour allouer, à chaque application source et clone(s): - une période d’exécution et/ou une ressource dudit au moins un processeur distincte(s), et - au moins une entrée distincte associée à un indicateur de comparaison, - au moins une sortie distincte associée audit indicateur de comparaison; - ledit indicateur de comparaison est utilisé pour détecter le résultat de l’exécution de l’application source, et le résultat de l’exécution de ladite au moins une application clone, à comparer; - le système électronique est un système avionique. L’invention a également pour objet un procédé de surveillance de l’exécution d’une application sur un calculateur électronique comprenant au moins un espace mémoire et une chaine de traitement de donnée(s), la chaine comprenant au moins: - une entité de traitement d’entrée(s)/sorties du calculateur, - au moins un processeur configuré pour exécuter au moins un programme logiciel appelé application, - un système d’exploitation en interaction avec l’entité de traitement d’entrée(s)/sorties et ledit au moins un processeur, le procédé étant mis en œuvre par le calculateur électronique et comprenant les étapes suivantes: - réception d’une requête externe, destinée audit au moins processeur, d’exécution d’une application source dont l’exécutable a été préalablement chargé au sein d’une première zone dédiée de l’espace mémoire dudit calculateur, - instanciation d’au moins une application clone de l’application source en: - dupliquant l’exécutable de l’application source pour créer l’exécutable de ladite au moins une application clone, - stockant l’exécutable de ladite au moins une application clone dans une deuxième zone de l’espace mémoire distincte de la première zone mémoire dédiée à l’application source, et en - générant une requête, interne au calculateur et destinée audit au moins un processeur, d’exécution de ladite au moins une application clone, - exécution de l’application source et de ladite au moins une application clone indépendamment l’une de l’autre en utilisant ledit au moins un processeur, - génération d’une sortie unique en fonction d’un résultat d’intégrité obtenu par comparaison du résultat de l’exécution de l’application source avec le résultat de l’exécution de ladite au moins une application clone. L’invention a également pour objet un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un procédé de surveillance de l’exécution d’une application sur un calculateur électronique tel que défini ci-dessus. Ces caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description qui va suivre, donnée uniquement à titre d’exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels: - la figure 1 est une vue schématique des éléments matériels d’un système électronique selon la présente invention; - la figure 2 est un organigramme d’un procédé de surveillance selon l’invention, le procédé étant mis en œuvre par le calculateur électronique du système électronique de la figure 1. Sur l’exemple de la figure 1, le système électronique S selon la présente invention comprend un calculateur électronique C et un dispositif d’installation d’application(s) DIA. Par ailleurs, de manière optionnelle, notamment lorsque le calculateur est dédié à des applications graphiques, le système S comprend en outre un dispositif de restitution graphique DRG. En particulier, un tel système électronique S est un système avionique, notamment utilisé dans les architectures avioniques IMA (Integrated Modular Avionics). D’un point de vue matériel, le calculateur électronique C correspond par exemple à une plateforme générique matérielle et logicielle (de l’anglais hardware et software ) comprenant un ou plusieurs processeur(s) 12 CPU (de l’anglais Central Processing U nit ), un module 14 de fourniture de sorties, et une ou plusieurs entité(s) 16 matérielles de traitement d’entrée(s)/sorties (I/O de l’anglais Input/output ) du calculateur C, le module 14 de fourniture de sorties étant à la fois connecté au(x) processeur(s) et à la ou les entité(s) 16 matérielles de traitement d’entrée(s)/sorties. D’un point de vue logiciel, le calculateur C comprend en outre un système d’exploitation, non représenté, en interaction avec le ou les processeurs 12 et une ou plusieurs entité(s) 16 matérielles de traitement d’entrée(s)/sorties (I/O de l’anglais Input/output ) du calculateur C. Selon la présente invention, le dispositif d’installation d’application(s) DIA est configuré pour rendre clonable une application source au sein du calculateur électronique C, le caractère clonable de l’application source étant activable/désactivable en fonction du niveau d’intégrité souhaité de l’application source et/ou en fonction de la disponibilité d’un ou plusieurs processeur(s) 12 CPU (de l’anglais Central Processing U nit ) processeur du calculateur électronique C. Plus précisément, le dispositif d’installation d’application(s) DIA est configuré pour rendre clonable l’application source en chargeant l’exécutable de l’application source dans une première zone dédiée de l’espace mémoire du calculateur électronique C, et en configurant le système d’exploitation du calculateur électronique C pour allouer, à chaque application source et clone(s): - une période d’exécution et/ou une ressource du ou des processeur(s) 12 distincte(s), et - au moins une entrée distincte associée à un indicateur de comparaison, - au moins une sortie distincte associée à l’indicateur de comparaison. Une telle allocation est transparente pour l’application source qui n’a aucune connaissance de cette allocation et de la comparaison ultérieure entre les résultats d’exécution de l’application source et de son clone. Autrement dit, le dispositif d’installation d’application(s) DIA est à la fois responsable d’installer les applications, notamment clonables selon la présente invention, dans le calculateur électronique C, et de paramétrer le système d’exploitation du calculateur électronique C pour les faire fonctionner au sein du calculateur électronique C, et ce automatiquement et de manière transparente. L’application source et son clone sont en effet ensuite, selon la présente invention, exécutées par le calculateur électronique C de manière indépendante comme deux applications distinctes le seraient sur la chaine de calcul du calculateur électronique C ce qui, à la fois, ne nécessite pas d’ajout de ressource matérielle, et est transparent pour la conception d’application(s). En particulier, le dispositif d’installation d’application(s) DIA est propre à paramétrer la gestion des diverses entrées/sorties par le système d’exploitation pour allouer des entrées/sorties (en lecture comme en écriture) pour chaque instance source et clone d’une même application, et ce comme si il avait instancié deux applications différentes, à ceci près que le dispositif d’installation d’application(s) DIA indique dans la configuration de l’application rendue clonable que ses entrées/sorties sont des entrées/sorties d’applications identiques à savoir source et clone, afin que le calculateur électronique C détecte que l’application est rendue clonable et mette en œuvre un traitement adapté décrit ci-après. Par ailleurs, le dispositif d’installation d’application(s) DIA est propre à vérifier que les contraintes spécifiques à la gestion d’application(s) clonable(s) sont bien respectées, ce qui revient à vérifier un ensemble de règles afin de garantir l’environnement d’exécution des application(s) clonable(s), et éviter d’éventuels effets de bord. Selon l’illustration de la figure 1, le dispositif d’installation DIA est distinct du calculateur électronique C c’est-à-dire en dehors du boitier du calculateur électronique C (i.e. «désembarqué»). Selon une variante non représentée, le dispositif d’installation DIA est embarqué, voire complément intégré, au sein du calculateur électronique C. Dans ce cas, le système électronique S comprend par exemple deux entités à savoir d’une part le calculateur électronique C embarquant le dispositif d’installation DIA, et d’autre part le dispositif de restitution graphique DRG. Comme illustré par la figure 1, l’architecture du calculateur électronique C selon la présente invention est avantageusement une architecture de type simplex, c’est-à-dire à simple chaine directe sans rebouclage ni duplication de ressource physique, et en particulier une architecture simplex IMA propre à garantir la non interférence d’une application donnée avec une autre application distincte. Selon la présente invention, le calculateur électronique C, en présence d’une requête externe, destinée au processeur 12, d’exécution d’une application source dont l’exécutable a été préalablement chargé au sein d’une première zone dédiée de l’espace mémoire, non représenté, dudit calculateur électronique C, est au moins propre à: - instancier au moins une application clone de l’application source en: - dupliquant l’exécutable de l’application source pour créer l’exécutable de ladite au moins une application clone, - stockant l’exécutable de ladite au moins une application clone dans une deuxième zone, non représentée, de l’espace mémoire distincte de la première zone mémoire dédiée à l’application source, et en - générant une requête, interne au calculateur et destinée au processeur, d’exécution de ladite au moins une application clone, - exécuter l’application source et ladite au moins une application clone indépendamment l’une de l’autre en utilisant ledit processeur, - générer une sortie unique en fonction d’un résultat d’intégrité obtenu par comparaison du résultat de l’exécution de l’application source avec le résultat de l’exécution de ladite au moins une application clone. Une telle duplication de l’application source lors de son exécution est transparente du point de vue de l’application source en tant que telle. Selon un aspect particulier optionnel, afin de limiter les contraintes de niveau système du dispositif d’installation DIA comme du système électronique S, des points intrinsèques de synchronisation tels que, par exemple, divulgués au sein de la demande de brevet FR 2742015 A1, sont utilisés dans l’implémentation du calculateur électronique C. Pour ce faire, tel qu’illustré par la figure 1, le calculateur électronique C comprend un port d’entrée 18 connecté à un module 20 de gestion d’entrée(s) du ou des processeur(s) 12. Selon un aspect particulier, un tel module 20 de gestion d’entrée(s) du ou des processeur(s) 12 correspond à un serveur IO (connu en anglais sous le nom d’Input/Output server) d’un calculateur électronique d’un système avionique présentant une architecture IMA dont le rôle est classiquement tout autre, à savoir de factoriser la tâche d’acquisition des données, tout en en offrant une abstraction de la couche physique, puis de les mettre à disposition des applications consommatrices desdites données. En présence d’une requête externe d’exécution d’une application source rendue clonable par le dispositif d’installation d’application(s) DIA et dont l’exécutable a été préalablement chargé (tel que représenté par la flèche), par le dispositif d’installation d’application(s) DIA, au sein d’une première zone dédiée de l’espace mémoire, non représentée, du calculateur électronique C, le module 20 de gestion d’entrée(s) du ou des processeur(s) 12 en interaction avec le système d’exploitation non représenté est propre à détecter que l’application source a été rendue clonable et en conséquence alloue deux entrées distinctes 22A et 22B en entrée d’une entité 24 de cœur(s) de processeur 12. Plus précisément, l’entrée 22A est l’entrée allouée à l’application source et est associée à un premier indicateur de comparaison de l’application source permettant d’indiquer au processeur 12 que cette entrée 22A doit être utilisée pour exécuter l’application source. Similairement, l’entrée 22B est l’entrée allouée à l’application clone de l’application source et est associée à un deuxième indicateur de comparaison de l’application source permettant d’indiquer au processeur 12 que cette entrée 22B doit être utilisée pour exécuter l’application clone de l’application source. Selon un aspect particulier le premier indicateur de comparaison et le deuxième indicateur de comparaison sont identiques et permettent uniquement d’identifier que les résultats d’exécution des applications associées à ces indicateurs via leur entrée (respectivement sortie) doivent être obligatoirement comparés. En variante, le premier indicateur de comparaison et le deuxième indicateur de comparaison sont distincts, par exemple via un double indiçage, et permettent alors à la fois d’identifier que les résultats d’exécution des applications associées à ces indicateurs via leur entrée (respectivement sortie) doivent être obligatoirement comparés, et la traçabilité du chemin de ces résultats tout au long de la chaine fonctionnelle du calculateur électronique C. Que le premier indicateur de comparaison et le deuxième indicateur de comparaison soient distincts ou identiques, ils sont utilisés par la suite pour détecter le résultat de l’exécution de l’application source, et le résultat de l’exécution de ladite au moins une application clone, à comparer. Selon l’exemple de la figure 1, le calculateur C est une machine processeur multi-cœur comprenant un premier cœur 26 alloué selon la présente invention à l’exécution de l’application source 28 et un deuxième cœur 30 alloué à l’exécution de l’application clone 32. Une telle entité 24 de cœur(s) de processeur 12 permet d’exécuter l’application source 28 et ladite au moins une application clone 32 indépendamment l’une de l’autre en utilisant ledit processeur 12 et, ce simultanément en parallèle. Autrement dit, le module 20 de gestion d’entrée(s), correspondant notamment à un serveur IO, préalablement configuré via le dispositif d’installation d’application(s) DIA permet à deux applications, à savoir l’application source 28 et l’application clone 32 d’utiliser un même port d’entrée 18, alors que par nature, cela n’est classiquement pas possible/prévu pour certaines typologies d’entrée/sortie. En particulier, l’entrée reçue au niveau du port d’entrée 18, par exemple, dite «échantillonnée» (dite «sampling» en anglais), où chaque nouvelle valeur d’entrée, plus récente, écrase la précédente sans que cela n’ait d’importance, et pouvant également être lue plusieurs fois, et/ou par plusieurs consommateurs, sans effet fonctionnel, le module 20 de gestion d’entrée(s), correspondant notamment à un serveur IO, est configuré pour préférentiellement dupliquer une telle entrée échantillonnée dans deux zones mémoires distinctes non représentées, une pour chaque application source 28 et clone 32. En variante, une zone mémoire commune accessible pour exécuter chaque application source 28 et clone 32 est mise en œuvre selon un mode de réalisation dégradé car présentant dans certains cas des effets de bord potentiellement nuisible aux besoins d’intégrité requis. Selon un autre exemple, pour une entrée, par exemple, dite «en file d’attente ou protocolaire» (dite «queuing» en anglais), où chaque nouvelle valeur d’entrée vient compléter la valeur d’entrée reçue précédemment, le module 20 de gestion d’entrée(s), correspondant notamment à un serveur IO, est configuré pour doubler complètement la logique de gestion de ce type d’entrée, ce qui inclut d’implémenter une logique de consommation d’une telle entrée complexe, indépendante pour chaque application source 28 et clone 32, et donc une double zone mémoire associée à une telle double logique de consommation (une logique de consommation associée à l’application source 28 et une logique de consommation associée à l’application clone). Autrement dit, pour cette exemple d’entrée «en file d’attente ou protocolaire », le module 20 de gestion d’entrée(s), correspondant notamment à un serveur IO, est configuré pour, d’une part implémenter pour l’application source 28, une première logique de gestion et de consommation de séquence de valeurs de cette entrée «en file d’attente ou protocolaire » reçue du monde extérieur, via le port d’entrée 18, afin de garantir que chaque message est bien reçu, et ce dans le bon ordre, par l’application source 28 consommatrice, et pour d’autre part, implémenter pour l’application clone 32 une deuxième logique de gestion et de consommation de séquence de valeurs de cette même entrée «en file d’attente ou protocolaire » reçue du monde extérieur, via le port d’entrée 18, afin de garantir que chaque message est bien reçu, et ce dans le bon ordre, par l’application clone 32 consommatrice. Ainsi, le module 20 de gestion d’entrée(s), correspondant notamment à un serveur IO permet, à partir d’une unique entrée reçue via le port d’entrée 18, une adaptation automatique et transparente des données/entrées consommées respectivement par l’application source 28 et par l’application clone 32. Il est à noter que selon la présente invention, le module 20 de gestion d’entrée(s), correspondant notamment à un serveur IO, est uniquement dédié à la gestion des entrées associées à chaque application source 28 et clone 32, et n’intervient pas pour la gestion du résultat 34A de l’exécution de l’application source 28 et du résultat 34B de l’exécution de l’application clone 32. Selon une première alternative, non représentée, le processeur 12 est monocoeur, et l’exécution de l’application source et de l’application clone sont sérialisées et exécutées indépendamment l’une de l’autre en utilisant des périodes d’exécution distinctes. Selon une deuxième alternative, non représentée, le calculateur électronique C comprend une pluralité de processeurs distincts et complètement indépendants les uns des autres, et l’exécution de l’application source et de l’application clone sont mises en œuvre en parallèle sur chacun de ces processeurs distincts et indépendamment l’une de l’autre comme deux applications distinctes le seraient sur la chaine de calcul du calculateur. Selon une troisième alternative, non représentée, le processeur 12 du calculateur électronique C correspond à une infrastructure logicielle à base d’au moins deux machine(s) virtuelle(s) avec des capacités d’indépendance de ces machines virtuelles, deux machines virtuelles distinctes et indépendante hébergeant alors selon l’invention l’exécution de l’application source sur une première machine virtuelle et l’exécution de l’application. Quelle que soit l’alternative, il est à noter que selon la présente invention, les ressources matérielles ne sont pas multipliées/augmentées pour des besoins d’intégrité car l’invention consiste au contraire à optimiser leur utilisation pour exécuter une application clone d’une application source comme deux applications distinctes seraient normalement exécutées, le caractère clonable de l’application source étant avantageusement activable/désactivable selon la présente invention en fonction du niveau d’intégrité souhaité de l’application source et/ou en fonction de la disponibilité des ressources de calcul. Selon l’exemple de la figure 1, notamment basé pour implémentation au sein d’une architecture avionique IMA (Integrated Modular Avionics), le résultat 34A de l’exécution de l’application source 28 et le résultat 34B de l’exécution de l’application clone 32 sont ensuite transmis par l’entité 24 de cœur(s) de processeur 12 au module 14 de fourniture de sorties qui succède au processeur 12 dans la chaine fonctionnelle d’exécution du calculateur électronique C. Selon la présente invention, comme configuré par le dispositif d’installation DIA, le résultat 34A de l’exécution de l’application source 28 est la sortie allouée à l’application source et est associée à un premier indicateur de comparaison de l’application source permettant d’indiquer aux éléments suivants le processeur 12 dans la chaine de calcul du calculateur électronique C que ce résultat 34A doit être associé à l’application source. Similairement, le résultat 34B de l’exécution de l’application clone 32 est la sortie allouée à l’application clone de l’application source et est associée à un deuxième indicateur de comparaison de l’application source permettant d’indiquer aux éléments suivants le processeur 12 dans la chaine de calcul du calculateur électronique C que ce résultat 34B doit être associé à l’application clone. Comme indiqué précédemment, que le premier indicateur de comparaison et le deuxième indicateur de comparaison soient distincts ou identiques, ils sont utilisés par la suite pour détecter le résultat 34A de l’exécution de l’application source, et le résultat 34B de l’exécution de ladite au moins une application clone, à comparer, notamment après un traitement préalable de mise en forme par le module 14 de fourniture de sorties. En particulier, le résultat 34A de l’exécution de l’application source 28 et le résultat 34B de l’exécution de l’application clone 32 sont transmis en entrée du pilote 36 d’entrée/sortie du module 14 de fourniture de sorties, qui les transmet, optionnellement accompagnées d’autres données diverses et prédéterminées, au sein d’un canal de transmission 38 à destination d’un outil d’interface et de gestion 40 d’entrée/sortie lui-même configuré, notamment selon une architecture avionique IMA, pour fournir deux ensembles de données 42B et 42A distincts et indépendant, de forme adaptée au besoin de l’entité de traitement d’entrée(s)/sortie(s) 16 et non dépendante de contrainte(s) liée(s) à l’exécution de l’application source 28 ou à l’exécution de l’application clone 32, et respectivement associés au résultat 34A de l’exécution de l’application source 28 et au résultat 34B de l’exécution de l’application clone 32B, en entrée d’un comparateur 44 indépendant du processeur 12 (par indépendant ici on entend que le comparateur 44 est physiquement distinct du processeur (i.e. en dehors du processeur) mais, comme illustré dans la figure 1, intégrable au sein du même produit à savoir le calculateur électronique C, voire sur la même carte électronique que celle où est localisée le processeur 12. Préférentiellement, tel qu’illustré par la figure 1, le comparateur 44 est intégré au sein de l’entité de traitement d’entrée(s)/sortie(s) 16 distincte dudit processeur 12, et correspond à un comparateur modifié, par rapport au comparateur déjà présent au sein de l’entité de traitement d’entrée(s)/sortie(s) 16 existante, pour les besoins de l’invention, de sorte à être spécifiquement configuré pour comparer le résultat de deux applications résultant d’un clonage d’application. Il est à noter que la modification d’un tel comparateur ne modifie pas l’architecture existante du calculateur électronique C, ni celle de l’entité de traitement d’entrée(s)/sortie(s) 16 existante. Ainsi, l’implémentation matérielle selon l’invention de la comparaison du résultat 34A de l’exécution de l’application source 28 et du résultat 34B de l’exécution de l’application clone 32 n’implique pas de ressources supplémentaires. Autrement dit, selon la présente invention le comparateur 44 met en œuvre de manière autonome une comparaison sans connaissance des applications et de leur fonction et en utilisant des ressources différentes de celles utilisées par les applications, l’indicateur de comparaison permettant uniquement de détecter que le résultat de deux applications distinctes sont à comparer mais ne permettant pas au comparateur 44 indépendant d’identifier que ces deux résultats ont été obtenus à partir d’une application source et de son clone. Autrement dit, l’indicateur de comparaison indique que deux applications sont à comparer, mais ne permet pas au comparateur 44 d’identifier la nature de l’application. Le comparateur 44, indépendant du processeur 12, met en œuvre une telle comparaison comme s’il comparait le résultat d’exécution de deux applications distinctes X et Y (i.e. les applications X et Y sont «non clones» l’une de l’autre), c’est-à-dire sans connaissance des applications, de leur fonction, ni selon la présente invention de leur caractère clonable. L’application source rendue clonable n’a parallèlement aucune «conscience» du fait qu’elle est rendue clonable par le dispositif d’installation DIA, ni connaissance de la comparaison de son résultat d’exécution avec celui de son clone. Un tel comparateur 44 correspond à une cellule de validation de sortie permettant la génération d’une sortie unique vers le monde extérieur au calculateur électronique C, une telle sortie associée à l’exécution de l’application source rendue clonable étant avantageusement selon la présente invention plus intègre. En effet, en cas d’incohérence entre le résultat 34A de l’exécution de l’application source 28 et le résultat 34B de l’exécution de ladite au moins une application clone 32, la sortie unique correspond à une commande de sanction dudit au moins un processeur 12. De plus, en cas de cohérence entre le résultat 34A de l’exécution de l’application source 28 et le résultat 34B de l’exécution de ladite au moins une application clone 32, la sortie unique correspond au résultat de l’exécution de l’application source ou au résultat de l’exécution de ladite au moins une application clone (i.e. le résultat de l’exécution de l’application source et le résultat de l’exécution de ladite au moins une application clone sont fusionnés en une sortie unique). Autrement dit, le comparateur 44 est dédié à la comparaison du résultat 34A de l’exécution de l’application source 28 avec le résultat 34B de l’exécution de ladite au moins une application clone 32, ladite comparaison délivrant un résultat d’intégrité, et à la génération de ladite sortie unique en fonction du résultat d’intégrité, ledit comparateur 44 étant configuré pour appliquer ladite commande de sanction en cas d’incohérence entre le résultat de l’exécution de l’application source et le résultat de l’exécution de ladite au moins une application clone. Pour ce faire, le comparateur 44 comprend, par exemple tel qu’illustré sur la figure 1, au moins deux processeurs de signature 46 et 48. Le processeur de signature 46 est, selon l’exemple de la figure 1, dédié à la signature de l’ensemble de donnée 42A associé au résultat 34A de l’exécution de l’application source 28, tandis que le processeur de signature 48 est dédié à la signature de l’ensemble de donnée 42B associé au résultat 34B de l’exécution de l’application clone 32. Les signatures générées par chacun des processeurs de signature 46 et 48, respectivement associés à l’application source 28 et à l’application clone 32, sont fournies à un comparateur de signature 50 délivrant le résultat d’intégrité précédemment mentionné, à savoir correspondant à une incohérence entre les deux signatures ou une cohérence entre ces deux signatures. Un tel résultat d’intégrité est ensuite traité par un filtre de sanction 52 propre à détecter la nature du résultat d’intégrité à savoir cohérent ou incohérent. Un tel filtre de sanction 52 du comparateur 44 est configuré pour transmettre à l’outil d’interface et de gestion 40 du module 14 de fourniture de sorties le statut 54 du filtrage opéré. En fonction de ce statut 54, l’outil d’interface et de gestion 40 du module 14 de fourniture de sorties génère la sortie unique 56 correspondant à: une commande de sanction en cas d’incohérence entre le résultat 34A de l’exécution de l’application source 28 et le résultat 34B de l’exécution de ladite au moins une application clone 32, ou au résultat de l’exécution de l’application source ou au résultat de l’exécution de ladite au moins une application clone en cas de cohérence entre le résultat 34A de l’exécution de l’application source 28 et le résultat 34B de l’exécution de ladite au moins une application clone 32. Comme indiqué précédemment, le comparateur 44 est intégré au sein de l’entité de traitement d’entrée(s)/sortie(s) 16 distincte dudit processeur 12, et correspond à un comparateur déjà présent au sein d’entité de traitement d’entrée(s)/sortie(s) 16 existante, la gestion de sanction (i.e. le mécanisme de gestion des erreurs au sein de la chaine fonctionnelle du calculateur électronique C) selon la présente invention ne requiert donc pas de ressources supplémentaires et permet de conserver une architecture simplex. Cette sortie unique 56 est fournie par l’outil d’interface et de gestion 40 au «monde extérieur» via une conduite 58 de traitement de sortie(s), et notamment lorsque l’application source 28 est une application graphique au dispositif de restitution graphique DRG. On comprend donc au vu de la description précédente, qu’une application rendue clonable ne porte aucune contrainte imposée par le système électronique S comprenant le dispositif d’installation d’application DIA et le calculateur électronique C selon l’invention. Le fonctionnement du calculateur électronique C, selon un exemple de mode de réalisation de l’invention, va être à présent décrit à l’aide de la figure 2 illustrant un organigramme du procédé P de surveillance de l’exécution d’une application mis en œuvre automatiquement par le calculateur électronique C. Selon une première étape R, le calculateur électronique C réceptionne une requête externe, destinée audit au moins processeur 12, d’exécution d’une application source dont l’exécutable a été préalablement chargé, notamment par le dispositif d’installation DIA, au sein d’une première zone dédiée de l’espace mémoire dudit calculateur électronique C. Selon une deuxième étape G-C, le calculateur électronique C instancie au moins une application clone de l’application source en dupliquant l’exécutable de l’application source pour créer l’exécutable de ladite au moins une application clone, et en stockant l’exécutable de ladite au moins une application clone dans une deuxième zone de l’espace mémoire distincte de la première zone mémoire dédiée à l’application source, et en générant une requête, interne au calculateur électronique C et destinée audit au moins un processeur 12, d’exécution de ladite au moins une application clone. Selon une troisième étape E, le calculateur électronique C, exécute l’application source 28 et ladite au moins une application clone 32 indépendamment l’une de l’autre en utilisant par exemple tel qu’illustré sur la figure 1 respectivement le premier cœur 26 et le deuxième cœur 28 du processeur 12. Selon une dernière étape G-O, le calculateur électronique C génère une sortie unique en fonction d’un résultat d’intégrité obtenu par comparaison, notamment via le comparateur 44 de la figure 1, du résultat de l’exécution de l’application source 28 avec le résultat de l’exécution de ladite au moins une application clone 32. On conçoit ainsi que le calculateur électronique C, comme le système électronique S le comprenant ainsi que le dispositif d’installation d’application(s) DIA et le procédé selon l’invention, augmentent l’intégrité d’exécution d’une application, et par sa structure est propre à intégrer les évènements transitoires tel que les évènements singuliers SEE (de l’anglais Single event effect associé à l’environnement radiatif des composants matériels du calculateur électronique C (neutrons, radiations)). Pour ce faire, la présente invention utilise astucieusement, comme indiqué précédemment, des propriétés, notamment IMA, de garantie d’une ségrégation spatiale et/ou temporelle et d’indépendance totale des multiples applications propres à être hébergées sur le calculateur électronique C. Autrement dit, l’infrastructure du calculateur électronique C telle que configurée par le dispositif d’installation DIA garantit la pleine et entière indépendance d’exécution de l’application source et de son clone. Pour ce faire, le calculateur électronique C, configuré au moyen du dispositif d’installation DIA, est propre d’une part à multi-exécuter de manière autonome (i.e. automatiquement sans intervention humaine) une même application rendue clonable sur deux ressources spatialement et/ou temporellement différentes et ce en limitant au maximum l’usage identique de ressources communes, puis d’autre part à contrôler, au moyen d’un comparateur 44 indépendant du processeur 12, la cohérence de cette exécution multiple d’une même application, et en cas d’incohérence à sanctionner l’activité du processeur 12, afin d’éviter toute propagation du résultat d’exécution de l’application rendue clonable. Une telle exécution multiple et un tel contrôle sont transparents pour l’application rendue clonable, car vu de l’extérieur (i.e. du «monde extérieur») du calculateur électronique C, une seule entrée est fournie et une seule sortie est délivrée de manière strictement identique à ce qui est obtenu pour une exécution simplex actuelle d’application, mais avantageusement selon la présente invention la sortie unique associée à l’application rendu clonable est plus intègre. En outre, la présente invention offre une solution robuste du mécanisme d’intégrité pour couvrir, localiser et identifier des pannes permanentes ou transitoires ne se produisant que lors de l’exécution d’application. Selon la présente invention, pour créer un erroné non détecté lors de l’exécution d’une application rendue clonable (i.e. lorsque l’application est à haut besoin d’intégrité) deux à trois pannes distinctes sont désormais nécessaires contre parfois une seule avec un calculateur électronique C classique. En effet, la possibilité d’une panne en mode commun entre l’exécution de l’application source et l’exécution de l’application clone est rendue négligeable voire supprimée grâce à l’architecture spécifique précitée mise en œuvre selon la présente invention pour rendre indépendante ces deux exécutions. En outre, la non détection d’un erroné implique un erroné au sein de deux entités physiques distinctes du calculateur électronique C selon la présente invention à savoir le processeur 12 et l’entité de traitement d’entrée(s)/sortie(s) 16 comprenant le comparateur 44, et non un erroné ou plusieurs au sein d’une même entité physique d’un calculateur électronique C classique. Selon la présente invention l’augmentation d’intégrité d’une application est configurable et modulable, ce qui permet une réutilisabilité élevée, par exemple d’un porteur à l’autre dans un contexte avionique. En effet, le caractère clonable d’une application est aisément activable/désactivable par le dispositif d’installation d’application DIA propre à optimiser, en fonction de cette activation, les ressources disponibles pour les applications (100% des ressources physiquement présentes sont utilisables, en toute transparence et sans évolution, pour les applications). Ainsi, il n’y a pas de ressources complètement dédiées à l’augmentation d’intégrité puisque lorsque le caractère clonable d’une application n’est pas activé (i.e. lorsqu’un haut besoin d’intégrité n’est pas nécessaire pour cette application) les ressources allouables à un clone sont libres et utilisables pour d’autres applications. Comme indiqué précédemment, l’architecture simplex du calculateur électronique C selon la présente invention est conservée afin d’en limiter l’encombrement, poids et puissance (de l’anglais SWaP pour Size, Weight and Power ) et la solution selon la présente invention est propre à être intégrée avec un faible impact sur une architecture simplex conforme à une architecture existante, voire existante, par la configuration mise en œuvre par le dispositif d’installation DIA. Calculateur (C) électronique comprenant au moins un espace mémoire et une chaine de traitement de donnée(s), la chaine comprenant au moins: - une entité (16) de traitement d’entrée(s)/sorties du calculateur, - au moins un processeur (12) configuré pour exécuter au moins un programme logiciel appelé application, - un système d’exploitation en interaction avec l’entité de traitement d’entrée(s)/sorties et ledit au moins un processeur, caractérisé en ce que le calculateur électronique (C), en présence d’une requête externe, destinée audit au moins un processeur (12), d’exécution d’une application source (28) dont l’exécutable a été préalablement chargé au sein d’une première zone dédiée de l’espace mémoire dudit calculateur (C), est au moins propre à: - instancier au moins une application clone (32) de l’application source (28) en: - dupliquant l’exécutable de l’application source (28) pour créer l’exécutable de ladite au moins une application clone (32), - stockant l’exécutable de ladite au moins une application clone (32) dans une deuxième zone de l’espace mémoire distincte de la première zone mémoire dédiée à l’application source (28), et en - générant une requête, interne au calculateur (C) et destinée audit au moins un processeur (12), d’exécution de ladite au moins une application clone (32), - exécuter l’application source (28) et ladite au moins une application clone (32) indépendamment l’une de l’autre en utilisant ledit au moins un processeur (12), - générer une sortie unique (56) en fonction d’un résultat d’intégrité obtenu par comparaison du résultat de l’exécution de l’application source (28) avec le résultat de l’exécution de ladite au moins une application clone (32). Calculateur (C) électronique selon la revendication 1, dans lequel: - en cas d’incohérence entre le résultat de l’exécution de l’application source (28) et le résultat de l’exécution de ladite au moins une application clone (32), la sortie unique (56) correspond à une commande de sanction dudit au moins un processeur (12), ou, - en cas de cohérence entre le résultat de l’exécution de l’application source (28) et le résultat de l’exécution de ladite au moins une application clone (32), la sortie unique (56) correspond au résultat de l’exécution de l’application source (28) ou au résultat de l’exécution de ladite au moins une application clone (32). Calculateur (C) électronique selon la revendication 2, dans lequel le calculateur (C) comprend un comparateur (44) indépendant dudit au moins un processeur (12), le comparateur (44) étant dédié à: - ladite comparaison du résultat de l’exécution de l’application source (28) avec le résultat de l’exécution de ladite au moins une application clone (32) délivrant ledit résultat d’intégrité, et - la génération de ladite sortie unique (56) en fonction dudit résultat d’intégrité, ledit comparateur (56) étant configuré pour appliquer ladite commande de sanction en cas d’incohérence entre le résultat de l’exécution de l’application source et le résultat de l’exécution de ladite au moins une application clone (32). Calculateur (C) électronique selon la revendication 3, dans lequel le comparateur (44) est intégré au sein de l’entité (16) de traitement d’entrée(s)/sortie(s) distincte dudit processeur. Système électronique (S) comprenant au moins un calculateur (C) électronique selon l’une quelconque des revendications précédentes, et un dispositif (DIA) d’installation d’application(s) configuré pour rendre clonable l’application source (28) au sein du calculateur (C), le caractère clonable de l’application source (28) étant activable/désactivable en fonction du niveau d’intégrité souhaité de l’application source (28) et/ou en fonction de la disponibilité dudit au moins un processeur (12) du calculateur (C). Système électronique (S) selon la revendication 5, dans lequel le dispositif d’installation (DIA) est configuré pour rendre clonable l’application source (28) en chargeant l’exécutable de l’application source (28) dans une première zone dédiée de l’espace mémoire du calculateur, et en configurant le système d’exploitation du calculateur (C) pour allouer, à chaque application source (28) et clone(s) (32): - une période d’exécution et/ou une ressource dudit au moins un processeur (12) distincte(s), et - au moins une entrée distincte (22A, 22B) associée à un indicateur de comparaison, - au moins une sortie distincte (34A, 34B) associée audit indicateur de comparaison. Système électronique (S) selon la revendication 6, dans lequel ledit indicateur de comparaison est utilisé pour détecter le résultat de l’exécution de l’application source (28), et le résultat de l’exécution de ladite au moins une application clone (32), à comparer. Système électronique (S) selon l’une quelconque des revendications 5 à 7 dans le lequel le système électronique (S) est un système avionique. Procédé (P) de surveillance de l’exécution d’une application sur un calculateur (C) électronique comprenant au moins un espace mémoire et une chaine de traitement de donnée(s), la chaine comprenant au moins: - une entité (16) de traitement d’entrée(s)/sorties du calculateur (C), - au moins un processeur (12) configuré pour exécuter au moins un programme logiciel appelé application, - un système d’exploitation en interaction avec l’entité (16) de traitement d’entrée(s)/sorties et ledit au moins un processeur, le procédé (P) étant mis en œuvre par le calculateur électronique (C) et comprenant les étapes suivantes: - réception (R) d’une requête externe, destinée audit au moins processeur, d’exécution d’une application source dont l’exécutable a été préalablement chargé au sein d’une première zone dédiée de l’espace mémoire dudit calculateur, - instanciation (G-C) d’au moins une application clone de l’application source en: - dupliquant l’exécutable de l’application source pour créer l’exécutable de ladite au moins une application clone, - stockant l’exécutable de ladite au moins une application clone dans une deuxième zone de l’espace mémoire distincte de la première zone mémoire dédiée à l’application source, et en - générant une requête, interne au calculateur et destinée audit au moins un processeur, d’exécution de ladite au moins une application clone, - exécution (E) de l’application source et de ladite au moins une application clone indépendamment l’une de l’autre en utilisant ledit au moins un processeur, - génération (G-O) d’une sortie unique en fonction d’un résultat d’intégrité obtenu par comparaison du résultat de l’exécution de l’application source avec le résultat de l’exécution de ladite au moins une application clone. Programme d’ordinateur comportant des instructions logicielles qui lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un procédé de surveillance de l’exécution d’une application sur un calculateur électronique (C) selon la revendication 9.