Brevet FR3153669A1 — publié le 20250404

Procédé d’analyse de la consommation de ressources matérielles par un système d’exploitation d’ un système de calcul embarqué dans un véhicule automobile, dispositif et programme d’ordinateur associés Ce procédé, mis en œuvre par un dispositif d’analyse comportant un module d’interface de communication configuré pour communiquer avec le système d’exploitation via un protocole de connectivité et d’interaction, comporte des étapes de : initialisation (46) d’une connexion audit système d’exploitation ; envoi (50) au système d’exploitation d’au moins une instruction de collecte de données représentatives d’une consommation d’au moins un type de ressources matérielles par le système d’exploitation, ladite au moins une instruction étant sous forme d’au moins une commande ou d’un script exécutable par ledit système d’exploitation, récupération (58) desdites données collectées par le système d’exploitation, et analyse (60) desdites données collectées pour obtenir des données élaborées à partir desdites données collectées et générer une description textuelle et/ou graphique d’une consommation de ressources matérielles à partir desdites données élaborées. Figure pour l'abrégé : Figure 2 Procédé d’analyse de la consommation de ressources matérielles par un système d’exploitation d’un système de calcul embarqué dans un véhicule automobile, dispositif et programme d’ordinateur associés La présente invention concerne un procédé d’analyse de la consommation de ressources matérielles par un système d’exploitation destiné à être mis en œuvre par un système de calcul embarqué dans un véhicule automobile. Elle concerne également un dispositif d’analyse de la consommation de ressources matérielles associé et un programme d’ordinateur associé. L’invention se situe dans le domaine de la mise en œuvre de produits, sous forme de services logiciels ou applications logicielles, embarqués à bord de véhicules automobiles. Par la suite, le terme applications logicielles sera utilisé. Des applications logicielles sont installées pour exécution par un système d’exploitation mis en œuvre par un système de calcul embarqué, également appelé ordinateur de bord. L’installation de nouvelles applications logicielles et leur exécution par le système d’exploitation embarqué consomment des ressources matérielles du système de calcul embaqué, qu’il s’agisse de ressources de mémoire, calculatoires ou d’énergie électrique. Ainsi, pour chaque application logicielle nouvelle ou chaque mise à jour d’une application logicielle, il est important de contrôler, de manière précise, la consommation d’une ou plusieurs des ressources matérielles. De plus, en phase de développement d’applications logicielles, la connaissance de la consommation de ressources permet d’effectuer une optimisation pour diminuer ou mieux répartir la consommation de ressources matérielles. Ainsi, il est possible d’améliorer l’intégration à bord de véhicules automobiles d’applications logicielles apportant des fonctionnalités diverses. Cependant, il est difficile d’évaluer la consommation de ressources matérielles notamment pendant la phase de démarrage (en anglais « boot ») d’un système d’exploitation mis en œuvre par un système de calcul embarqué avant l’intégration effective. En particulier, il est critique d’évaluer la consommation de mémoire en fonction du temps durant la phase de démarrage, ainsi que la durée totale de la phase de démarrage (en anglais « boot time ») et/ou la consommation électrique pendant cette phase. On connaît des méthodes d’insertion de code logiciel supplémentaire à exécuter pendant une phase de développement pour effectuer l’évaluation de la consommation de ces ressources matérielles, mais cela présente l’inconvénient de contribuer à la consommation de ressources matérielles, notamment ressources de mémoire et de calcul, ainsi qu’à la consommation électrique, pendant la phase de démarrage. L’invention a pour objet de proposer un procédé permettant d’évaluer la consommation de ressources matérielles notamment pendant la phase de démarrage d’un système d’exploitation destiné à être mis en œuvre par un système de calcul embarqué, ayant un moindre impact sur la consommation de ressources matérielles. A cet effet, l’invention propose, selon un aspect, un procédé d’analyse de la consommation de ressources matérielles par un système d’exploitation destiné à être mis en œuvre par un système de calcul embarqué dans un véhicule automobile pour l’exécution d’au moins une application logicielle, mis en œuvre par un dispositif d’analyse comportant un module d’interface de communication configuré pour communiquer avec ledit système d’exploitation via un protocole de connectivité et d’interaction. Ce procédé comporte des étapes de : initialisation d’une connexion audit système d’exploitation ; envoi au système d’exploitation d’au moins une instruction de collecte de données représentatives d’une consommation d’au moins un type de ressources matérielles par le système d’exploitation, ladite au moins une instruction étant sous forme d’au moins une commande ou d’un script exécutable par ledit système d’exploitation, récupération desdites données collectées par le système d’exploitation, et analyse desdites données collectées pour obtenir des données élaborées à partir desdites données collectées et générer une description textuelle et/ou graphique d’une consommation de ressources matérielles à partir desdites données élaborées. Avantageusement, le procédé proposé permet d’analyser la consommation de ressources matérielles avec un impact minimal sur le démarrage du système d’exploitation visé, chaque instruction appliquée durant le démarrage permettant une simple collecte de données. Le procédé d’analyse de la consommation de ressources matérielles selon l’invention peut également présenter une ou plusieurs des caractéristiques ci-dessous, prises indépendamment ou selon toutes les combinaisons techniquement envisageables. Les types de ressources matérielles comprennent des ressources de mémoire, des ressources calculatoires et des ressources d’énergie. L’étape d’envoi comporte l’envoi d’un fichier d’initialisation provoquant un démarrage du système d’exploitation et une installation et exécution de ladite au moins une instruction de collecte de données par le système d’exploitation, et un stockage temporaire desdites données. L’analyse des données comporte en outre un calcul d’informations statistiques relatives à la moyenne, au minimum et au maximum de ressources matérielles de chaque type consommées durant la phase de démarrage. La récupération de données collectées par le dispositif d’analyse comporte la récupération de données brutes relatives à la consommation d’au moins un type de ressources matérielles enregistrées avec une fréquence temporelle prédéterminées. Le système d’exploitation est un système de type Android. Le protocole de connectivité et d’interaction est le protocole « Android Debug Bridge », ADB. Selon un autre aspect, l’invention concerne un dispositif d’analyse de la consommation de ressources matérielles par un système d’exploitation destiné à être mis en œuvre par un système de calcul embarqué dans un véhicule automobile, pour l’exécution d’au moins une application logicielle, le dispositif d’analyse comportant un module d’interface de communication configuré pour communiquer avec ledit système d’exploitation via un protocole de connectivité et d’interaction. Ce dispositif d’analyse comporte : un module d’initialisation d’une connexion audit système d’exploitation ; un module d’envoi au système d’exploitation d’au moins une instruction de collecte de données représentatives d’une consommation d’au moins un type de ressources matérielles par le système d’exploitation, ladite au moins une instruction étant sous forme d’au moins une commande ou d’un script exécutable par ledit système d’exploitation, un module de récupération desdites données collectées par le système d’exploitation et un module d’analyse desdites données collectées pour obtenir des données élaborées à partir desdites données collectées et pour générer une description textuelle et/ou graphique d’une consommation de ressources matérielles à partir desdites données élaborées. Selon une caractéristique, le module d’envoi est configuré pour effectuer un envoi d’un fichier d’initialisation, permettant une installation de ladite au moins une instruction de collecte de données par le système d’exploitation, et une exécution de ladite au moins une instruction de collecte des données suite au démarrage du système d’exploitation. Selon un autre aspect, l’invention concerne un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un dispositif électronique programmable, mettent en œuvre un procédé d’analyse de la consommation de ressources matérielles tel que brièvement décrit ci-dessus. L’invention apparaîtra 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 dans lesquels : FIG. 1 la FIG. 1 est une représentation schématique des principaux blocs fonctionnels d’un système comportant un dispositif d’analyse de la consommation de ressources matérielles d’un système d’exploitation selon un mode de réalisation; FIG. 2 la FIG. 2 est un synoptique des principales étapes d’un procédé d’analyse de la consommation de ressources matérielles selon un mode de réalisation ; FIG. 3 la FIG. 3 représente des graphes obtenus après analyse de la consommation de ressources de mémoire. La FIG. 1 illustre schématiquement un dispositif d’analyse 2 de la consommation de ressources matérielles par un système d’exploitation destiné à être mis en œuvre par un système de calcul embarqué. L’invention trouve des applications particulières dans le cas des systèmes de calcul embarqués sur des véhicules automobiles (non représentés). Dans le mode de réalisation illustré, le dispositif d’analyse 2 est configuré pour communiquer avec le système d’exploitation 6, mis en œuvre par un système de calcul 4. Dans un mode de réalisation, le système de calcul 4 est un système de calcul distinct du dispositif d’analyse 2, et de même type qu’un système de calcul embarqué visé, ou en d’autres termes, simulant le système de calcul embarqué cible. Dans un autre mode de réalisation, le système de calcul 4 est virtuellement reproduit sur le dispositif d’analyse 2, ce qui permet d’exécuter sur le dispositif d’analyse 2 le système d’exploitation 6 de la même manière qu’il serait exécuté sur le système de calcul embarqué visé. Le système d’exploitation 6, également appelé système d’exploitation cible, est par exemple un système Android ®, dans l’une de ses versions adaptées pour fonctionner dans un système de calcul embarqué. Le système de calcul 4 et le système d’exploitation 6 forment un dispositif exécutant le système d’exploitation cible. Le dispositif d’analyse 2 est de préférence un dispositif électronique programmable et comporte une unité de calcul 10 comportant un ou plusieurs processeurs (CPU ou GPU), une unité de mémoire 12, une interface homme-machine 14, comportant notamment un écran d’affichage, ainsi qu’un module 16 d’interface de communication. Ces éléments sont configurés pour communiquer via un bus de communication 18. Le module 16 d’interface de communication est configuré pour communiquer avec le système d’exploitation 6 via un protocole de connectivité et d’interaction porté par un protocole de communication. Par exemple, dans un mode de réalisation, le protocole de communication est le protocole TCP (pour « Transmission Control Protocol ») ou USB (pour « Universal Serial Bus »), et le protocole de connectivité et d’interaction est l’interface de programmation du logiciel ADB, abréviation de « Android Debug Bridge ». Le dispositif exécutant le système d’exploitation 6 comprend un module 20 d’implémentation en arrière-plan (ou module « daemon ») du logiciel ADB, et un module 22 de démarrage du système d’exploitation cible 6. Le module 22 est configuré pour exécuter une phase de démarrage du système d’exploitation 6, également appelée phase de BOOT, pour l’initialisation d’une ou plusieurs applications logicielles APP1, APP2, en vue de leur exploitation ultérieure. Les applications logicielles APP1, APP2 sont chargées sous forme de code exécutable, dans un langage de programmation compatible avec le système d’exploitation 6. Chaque application logicielle APP1, APP2 exécute des tâches successivement ou sensiblement en parallèle, et consomme potentiellement des ressources mémoire, calculatoires, électriques. De plus, lors de l’installation au démarrage, du code exécutable des applications logicielles APP1, APP2 doit être chargé en mémoire vive (ou mémoire RAM) en vue de son exécution ultérieure. L’unité de calcul 10 du dispositif d’analyse 2 de la consommation de ressources matérielles met en œuvre un module 30 d’initialisation d’une connexion au système d’exploitation 6, de préférence durant la phase de démarrage ou de redémarrage du système d’exploitation. En variante, le dispositif d’analyse 2 se connecte et charge les scripts de collecte de données sur le système d’exploitation 6 lorsque celui-ci est en phase de fonctionnement. Il comporte également un module 32 d’envoi au système d’exploitation d’au moins une instruction de collecte de données représentatives du fonctionnement du système d’exploitation, une instruction étant sous forme d’une commande ou d’un script exécutable par le système d’exploitation. Par exemple, dans l’exemple de la FIG. 1 , un script Scr est envoyé au système d’exploitation. En variante, plusieurs scripts sont envoyés au système d’exploitation, par exemple un script par type de données brutes à collecter. De préférence, la ou les instructions de collecte de données sont envoyées dans un fichier d’initialisation, ce qui permet d’assurer que la ou les instructions seront exécutée lors du démarrage (BOOT) ou du redémarrage du système d’exploitation. Le système d’exploitation 6 reçoit et installe la ou les instructions de collecte de données (e.g. des scripts), ces instructions étant exécutée lors de l’initialisation du système d’exploitation. Pour l’analyse de la consommation de ressources en phase de fonctionnement, il est possible d’utiliser des scripts ainsi que des commandes. Des données D représentatives du fonctionnement du système d’exploitation, par exemple la consommation de mémoire, sont enregistrées (ou stockées) temporairement par le système d’exploitation 6. Le stockage des données se fait via l’écriture en mémoire d’un fichier contenant les données. Lors de la phase de BOOT, l’écriture de fichier n’est pas disponible dès le début, donc les données D sont temporairement stockées en mémoire (RAM). Le fait de passer dès que possible à l’écriture de fichier minimise la consommation de mémoire pour la collecte de données. Selon une variante, l’impact temporaire de la collecte et du stockage des données D représentatives du fonctionnement du système d’exploitation est mesuré et pris en considération par la suite. Le dispositif d’analyse 2 comporte également un module 34 de récupération des données D représentatives de la consommation de ressources matérielles par le système d’exploitation, et un module 36 d’analyse des données D et de génération d’une description textuelle et/ou graphique d’une consommation de ressources matérielles durant la phase de démarrage, par exemple de consommation ressources mémoire et/ou d’une utilisation de ressources calculatoires par le système d’exploitation. Le module d’analyse 36 met en œuvre une analyse croisée des données D (ou données brutes) obtenues pour plusieurs instructions, ce qui permet d’obtenir une base de données élaborées, représentant de manière complète la consommation de ressources matérielles par le système d’exploitation. De plus, le module 38 met en œuvre, dans un mode de réalisation, une génération de fichiers, enregistrés dans le dispositif d’analyse, à partir de la base de données élaborées, les fichiers comportant une description graphique ou textuelle de la consommation des ressources matérielles. Ce module d’analyse 36 est mis en œuvre par le dispositif d’analyse 2 et donc cela n’a aucun impact sur le système d’exploitation 6. Optionnellement, le dispositif d’analyse 2 comporte un module 38 d’affichage de la description textuelle et/ou graphique sur l’écran de l’interface homme-machine 14. En variante ou en complément, la description textuelle et/ou graphique de la consommation de ressources matérielles est transmise à un dispositif programmable, éventuellement distant, pour exploitation automatique, par exemple pour mise en œuvre d’un ré-agencement des tâches calculatoires des applications logicielles APP1, APP2, pour lisser ou diminuer la consommation de ressources matérielles. Les modules 30, 32, 34, 36 et 38 sont adaptés à coopérer, comme décrit plus en détail ci-après, pour mettre en œuvre le procédé d’analyse de la consommation de ressources matérielles par un système d’exploitation destiné à être mis en œuvre par un système de calcul embarqué, comme décrit plus en détail ci-après, selon divers modes de réalisation. Dans un mode de réalisation, les modules 30, 32, 34, 36 et 38 sont réalisés sous forme d’instructions logicielles formant un programme d’ordinateur, qui, lorsqu’il est exécuté par un ordinateur, met en œuvre le procédé d’analyse de la consommation de ressources matérielles par un système d’exploitation destiné à être mis en œuvre par un système de calcul embarqué. En variante non représentée, les modules 30, 32, 34, 36 et 38 sont réalisés chacun sous forme de composants logiques programmables, tels que des FPGA (de l’anglais Field Programmable Gate Array ), des microprocesseurs, des composants GPGPU (de l’anglais General- purpose processing on graphics processing ), ou encore de circuits intégrés dédiés, tels que des ASIC (de l’anglais Application Specific Integrated Circuit ). Le programme d’ordinateur comportant des instructions logicielles est en outre apte à être enregistré sur un support, non représenté, lisible par ordinateur. Le support lisible par ordinateur est par exemple, un médium apte à mémoriser les instructions électroniques et à être couplé à un bus d’un système informatique. A titre d’exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non-volatile (par exemple FLASH, NVRAM), une carte magnétique ou une carte optique. La FIG. 2 est un synoptique des principales étapes du procédé d’analyse de la consommation de ressources matérielles par un système d’exploitation destiné à être mis en œuvre par un système de calcul embarqué selon un mode de réalisation. Le procédé comporte des étapes 40 mises en œuvre par le dispositif d’analyse 2 et des étapes 42 mises en œuvre par le dispositif exécutant le système d’exploitation, mis en œuvre par un système de calcul 4, séparé physiquement ou virtuellement du dispositif d’analyse 2, et simulant le système de calcul destiné à être embarqué sur un véhicule automobile. Le procédé comporte une étape de connexion 46, 48 entre le dispositif d’analyse et le système d’exploitation. Par exemple la connexion est initiée par le dispositif d’analyse et comporte plusieurs échanges protocolaires pour établir une connexion sécurisée. L’initialisation de la connexion peut être lancée lors d’un redémarrage ou d’une phase d’utilisation du système d’exploitation 6. Le procédé comporte ensuite un envoi 50 (en anglais « push ») d’au moins une instruction de collecte de données, par exemple sous forme d’un ou plusieurs scripts. Les scripts contiennent des ensembles de commandes à exécuter. De préférence, l’étape 50 comporte également l’envoi d’un fichier d’initialisation, qui est installé par le système d’exploitation 6. Le fichier d’initialisation permet une configuration du system d’exploitation 6, et comprend une demande de lancement des scripts lors de la phase de démarrage (BOOT). Suite à un démarrage ou un redémarrage du système d’exploitation, la mise en œuvre du fichier d’initialisation entraîne l’exécution de l’instruction ou des instructions de collecte durant cette phase de démarrage (ou de redémarrage). En variante ou en complément, les instructions de collecte peuvent contenir des commandes de collecte de données en phase de fonctionnement du système d’exploitation, postérieurement à son démarrage. L’instruction de collecte de données, par exemple le script, comporte des indications du type de ressources matérielles surveillées parmi des ressources de mémoire, des ressources calculatoires et des ressources d’énergie. Le système d’exploitation met en œuvre des étapes 52 d’installation du ou des scripts reçus, effectue 54 le démarrage du système d’exploitation et exécute le fichier d’initialisation, ainsi que le(s) script(s) reçu(s). Des données représentatives du fonctionnement du système d’exploitation, et plus particulièrement de la consommation de ressources du type indiqué par le script, sont temporairement enregistrées (étape 56). Dans un mode de réalisation, un script est fourni par donnée à mesurer. Par exemple, le script contient une commande de collecte de données relatives à la consommation de mémoire vive (en anglais « RAM memory ») durant la phase de démarrage. Dans cet exemple, un script permet d’obtenir des données dans le répertoire « proc/meminfo » qui est une partie du système de fichiers du système d’exploitation fournissant des données relatives à la consommation de mémoire à une fréquence prédéterminée, par exemple toutes les secondes ; un script permet d’obtenir des données relatives aux statistiques d’utilisation de la mémoire (par exemple, commande « vmstat ») et un script permet d’obtenir des données relatives à la libération de ressources de mémoire (par exemple, commande « free –k »). Le procédé comporte une étape 58 de récupération des données brutes de mémoire enregistrées à fréquence prédéterminée, ainsi que des données de mémoire complémentaires, relatives aux statistiques d’utilisation de la mémoire (commande « vmstat ») et à la libération de ressources de mémoire (commande « free –k »). Ainsi, à l’issue de l’étape 58, le dispositif d’analyse récupère un ensemble de données relatives à la consommation de ressources de mémoire à chaque instant temporel, par exemple chaque seconde, durant la phase de démarrage. Le procédé comprend alors une étape d’analyse 60 des données collectées, et leur regroupement par exemple sous forme de données élaborées, représentées par exemple sous forme textuelle et/ou sous forme de graphe. En particulier, l’analyse des données comporte un calcul d’informations statistiques relatives à la moyenne, au minimum et au maximum de ressources matérielles de chaque type consommées durant la phase de démarrage. Les résultats d’analyse sont optionnellement affichés (étape 62) sur l’écran de l’interface homme machine du dispositif d’analyse, ou transmis à un système externe pour exploitation. La FIG. 3 est une illustration de graphes obtenus après analyse de la consommation de ressources de mémoire. Chacun des graphes G1, G2 et G3 comprend une courbe indiquant en ordonnées des ressources mémoire en Moctects en fonction du temps (en abscisses). Le graphe G1 représente les valeurs de supervision d’utilisation globale de la mémoire (commande « Meminfo »), le graphe G2 représente la quantité de mémoire non utilisée en utilisant la commande « free » et le graphe G3 représente la quantité de mémoire utilisée en utilisant la commande « dumpsys ». Bien entendu, ces graphes sont montrés à titre d’exemple, et concernent la consommation de ressources de mémoire. Alternativement, la consommation de ressources calculatoires et/ou énergétique est analysée. Procédé d’analyse de la consommation de ressources matérielles par un système d’exploitation destiné à être mis en œuvre par un système de calcul embarqué dans un véhicule automobile, pour l’exécution d’au moins une application logicielle, mis en œuvre par un dispositif d’analyse (2) comportant un module d’interface de communication (16) configuré pour communiquer avec ledit système d’exploitation via un protocole de connectivité et d’interaction, le procédé étant caractérisé en ce qu’il comporte des étapes de : initialisation (46) d’une connexion audit système d’exploitation ; envoi (50) au système d’exploitation d’au moins une instruction de collecte de données représentatives d’une consommation d’au moins un type de ressources matérielles par le système d’exploitation, ladite au moins une instruction étant sous forme d’au moins une commande ou d’un script exécutable par ledit système d’exploitation, récupération (58) desdites données collectées par le système d’exploitation, et analyse (60) desdites données collectées pour obtenir des données élaborées à partir desdites données collectées et générer une description textuelle et/ou graphique d’une consommation de ressources matérielles à partir desdites données élaborées. Procédé selon la revendication 1, dans lequel les types de ressources matérielles comprennent des ressources de mémoire, des ressources calculatoires et des ressources d’énergie. Procédé selon la revendication 1 ou 2, dans lequel l’étape d’envoi (50) comporte l’envoi d’un fichier d’initialisation provoquant un démarrage du système d’exploitation et une installation et exécution de ladite au moins une instruction de collecte de données par le système d’exploitation, et un stockage temporaire desdites données. Procédé selon l’une des revendications 1 à 3, dans lequel l’analyse (60) des données comporte en outre un calcul d’informations statistiques relatives à la moyenne, au minimum et au maximum de ressources matérielles de chaque type consommées durant la phase de démarrage. Procédé selon l’une des revendications 1 à 4, dans lequel la récupération (58) de données collectées par le dispositif d’analyse comporte la récupération de données brutes relatives à la consommation d’au moins un type de ressources matérielles enregistrées avec une fréquence temporelle prédéterminées. Procédé selon l’une quelconque des revendications 1 à 5, dans lequel le système d’exploitation (6) est un système de type Android. Procédé selon la revendication 6, dans lequel ledit protocole de connectivité et d’interaction est le protocole « Android Debug Bridge », ADB. Programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un dispositif électronique programmable, mettent en œuvre un procédé d’analyse de la consommation de ressources matérielles par un système d’exploitation selon l’une des revendications 1 à 7. Dispositif d’analyse de la consommation de ressources matérielles par un système d’exploitation destiné à être mis en œuvre par un système de calcul embarqué dans un véhicule automobile, pour l’exécution d’au moins une application logicielle, le dispositif d’analyse (2) comportant un module d’interface de communication (16) configuré pour communiquer avec ledit système d’exploitation (6) via un protocole de connectivité et d’interaction, caractérisé en ce que le dispositif d’analyse (2) comporte : un module (30) d’initialisation d’une connexion audit système d’exploitation ; un module d’envoi (32) au système d’exploitation d’au moins une instruction de collecte de données représentatives d’une consommation d’au moins un type de ressources matérielles par le système d’exploitation, ladite au moins une instruction étant sous forme d’au moins une commande ou d’un script exécutable par ledit système d’exploitation, un module de récupération (34) desdites données collectées par le système d’exploitation et un module (36) d’analyse desdites données collectées pour obtenir des données élaborées à partir desdites données collectées et pour générer une description textuelle et/ou graphique d’une consommation de ressources matérielles à partir desdites données élaborées. Dispositif selon la revendication 9, dans lequel le module d’envoi est configuré pour effectuer un envoi d’un fichier d’initialisation, permettant une installation de ladite au moins une instruction de collecte de données par le système d’exploitation, et une exécution de ladite au moins une instruction de collecte des données suite au démarrage du système d’exploitation.