Download Free Une Approche A Base De Composants Logiciels Pour Lobservation De Systemes Embarques Book in PDF and EPUB Free Download. You can read online Une Approche A Base De Composants Logiciels Pour Lobservation De Systemes Embarques and write the review.

À l'heure actuelle, les dispositifs embarqués regroupent une grande variété d'applications, ayant des fonctionnalités complexes et demandant une puissance de calcul de plus en plus importante. Ils évoluent actuellement de systèmes multiprocesseur sur puce vers des architectures many-core et posent de nouveaux défis au développement de logiciel embarqué. En effet, Il a classiquement été guidé par les performances et donc par les besoins spécifiques des plates-formes. Or, cette approche s'avère trop couteuse avec les nouvelles architectures matérielles et leurs évolutions rapprochées. Actuellement, il n'y a pas un consensus sur les environnements à utiliser pour programmer les nouvelles architectures embarquées. Afin de permettre une programmation plus rapide du logiciel embarqué, la chaîne de développement a besoin d'outils pour la mise au point des applications. Cette mise au point s'appuie sur des techniques d'observation, qui consistent à recueillir des informations sur le comportement du système embarqué pendant l'exécution. Les techniques d'observation actuelles ne supportent qu'un nombre limité de processeurs et sont fortement dépendantes des caractéristiques matérielles. Dans cette thèse, nous proposons EMBera~: une approche à base de composants pour l'observation de systèmes multiprocesseurs sur puce. EMBera vise la généricité, la portabilité, l'observation d'un grand nombre d'éléments, ainsi que le contrôle de l'intrusion. La généricité est obtenue par l'encapsulation de fonctionnalités spécifiques et l'exportation d'interfaces génériques d'observation. La portabilité est possible grâce à des composants qui, d'une part, ciblent des traitements communs aux MPSoCs, et d'autre part, permettent d'être adaptés aux spécificités des plates-formes. Le passage à l'échelle est réussi en permettant une observation partielle d'un système en se concentrant uniquement sur les éléments d'intérêt~: les modules applicatifs, les composants matériels ou les différents niveaux de la pile logicielle. Le contrôle de l'intrusion est facilité par la possibilité de configurer le type et le niveau de détail des mécanismes de collecte de données. L'approche est validée par le biais de différentes études de cas qui utilisent plusieurs configurations matérielles et logicielles. Nous montrons que cette approche offre une vraie valeur ajoutée dans le support du développement de logiciels embarqués.
Concernant la partie logicielle des systemes embarques ouverts au changement, on constate (i) le besoin d'un modele de la structuration du logiciel qui permette d'ameliorer la productivite du processus de developpement, (ii) la capacite de faire evoluer le comportement du systeme en execution, afin de s'adapter aux changements de son environnement, et (iii) la prise en compte des limitations des ressources physiques des plates-formes d'execution. Une approche de conception basee sur des composants logiciels (CBSE) facilite la gestion de la complexite du logiciel via l'abstraction des details techniques. En s'appuyant sur cette approche, la question qui se pose est: comment ces composants doivent etre developpes de facon a satisfaire les exigences qui se derivent des fortes contraintes physiques et du besoin d'evolution du logiciel ? Dans cet ouvrage, l'auteur reconcilie ces exigences souvent contradictoires en introduisant la notion de reification, definie comme la collection de donnees et de comportements qui encapsulent des aspects du composant logiciel a un moment precis de son cycle de vie.
Concernant la partie logicielle des systèmes embarqués, on constate le besoin d’un modèle de la structuration du logiciel qui facilite le processus de développement, la capacité de faire évoluer le comportement du système lors de son exécution, afin de s’adapter aux changements de son environnement, et la prise en compte des limitations des ressources physiques des plates-formes d’exécution. L’utilisation de composants logiciels est une approche de conception qui, via l'abstraction des détails techniques, facilite la gestion de la complexité du logiciel. La question que nous nous posons est : comment les composants doivent être développés de façon à satisfaire les exigences liées aux fortes contraintes physiques et au besoin d’évolution du logiciel ? Pour y répondre, nous introduisons a notion de réification de composant. Une réification est une collection de données et de comportements qui encapsulent des aspects du composant à un moment précis de son cycle de vie. Nous proposons ensuite des techniques d’optimisation pour la génération du code « glue » qui assure l’interopérabilité des composants, afin de satisfaire les contraintes liées aux ressources limitées. Elles rendent possible la définition de niveaux d’optimisation pour chaque instance des entités du modèle à composants, ce qui nous permet de régler la performance du logiciel en fonction de ses besoins (extra) fonctionnels. Ensuite, nous définissons quatre profils d’évolution en fonction des caractéristiques d’évolution de chaque entité du modèle, et nous mettons en place des infrastructures d’évolution adaptées aux besoins d’évolution du système, couplées avec les exigences de performance du logiciel.
Cette thèse s'inscrit dans le cadre de la définition d'une approche de modélisation qui permet de faire face à la complexité des systèmes embarqués, réduire leur temps de conception et couvrir différents domaines d'applications (Modèles de Traitement). Cette approche, appelée ModelJ, est basée sur le paradigme de composant et le paradigme d'aspect. Elle explore le potentiel de ces nouveaux paradigmes logiciels, apparus récemment, dans le cadre de la modélisation des systèmes embarqués. L'approche propose d'une part, un métamodèle indépendant de tout langage de modélisation, qui permet de fournir des modèles abstraits , réutilisables et modulaires contribuant à faciliter la modélisation des systèmes embarqués, et d'autre part de proposer un framework qui met en oeuvre le métamodèle et qui fournit un environnement logiciel pour la définition de modèles et la validation de ceux-ci par simulation.
Le développement de logiciels pour les systèmes embarqués présente de nombreux défis. Cette thèse s'intéresse à ceux posés par les interactions entre les trois phases de conception, d'implantation et de validation. Nous nous intéressons aux caractéristiques du langage de conception et aux techniques de compilation qui permettent d'obtenir dans notre approche l'implantation et un modèle du système. L'analyse de ce modèle permet la validation de l'implantation, ce qui suppose que ce modèle représente fidèlement le système implanté. Nous proposons la construction d'un langage de conception basé sur l'utilisation de composants dont le comportement dynamique est supposé connu. Nous illustrons cette démarche avec un prototype complet appelé Buzz, dans lequel les composants sont des composants Think accompagnés de leur modèle comportemental en BIP. Le compilateur associé à Buzz génère une architecture à composants Think pour l'implantation et un modèle à composants BIP pour les analyses. Nous évaluons Buzz à travers deux expériences. La première présente le développement d'un logiciel pour un exemple simple sur lequel nous démontrons la pertinence des choix techniques. Think nous permet un support d'implantation complet et BIP rend possible la vérification d'un ensemble de propriétés dynamiques. La deuxième expérience est un portage de l'implantation d'un protocole radio utilisé dans des réseaux de capteurs et développée de manière classique, vers Buzz. Elle démontre l'effectivité de notre proposition en termes de langage (Buzz structure et simplifie le code original) ainsi qu'en termes d'outils (compilation et vérification).
Les architectures distribuées des systèmes embarqués sont souvent décrites sous la forme de composants concurrents communiquant entre eux. De tels systèmes sont à la fois orientés flot de données pour leur description, et dirigés par le temps pour leur exécution. Cette thèse s'inscrit dans cette problématique et se concentre sur le contrôle de la compatibilité temporelle d'un ensemble de données interdépendantes utilisées par les composants du système. L'architecture d'un système modélisé par composants forme un graphe où plusieurs chemins peuvent relier deux composants, avec des caractéristiques temporelles hétérogènes, ce qui induit des temps de parcours disparates. Il est alors important que ces flots d'information soient assemblés de façon cohérente sur le composant destinataire, c'est-à-dire de telle manière que le composant utilise en entrée des données dépendant (directement ou indirectement) du même pas d'exécution du composant à l'origine de ces flots multiples. Dans un premier temps, ce principe d'association cohérente de données est identifié et formalisé. Une méthodologie est proposée afin de détecter, dans un graphe de composants, les configurations pouvant poser des problèmes d'association de données. Dans un deuxième temps, différentes approches sont détaillées afin de gérer l'association cohérente des données dans des systèmes périodiques sans supposer de propriétés strictes sur l'ordonnancement des composants. Dans les systèmes où les composants partagent la même période et où les communications intra-périodiques sont interdites, l'association des données est gérée par un mécanisme de files permettant de rééquilibrer les temps de parcours des données sur les différents chemins. Dans le cas où les composants sont de périodes diverses, un mécanisme d'estampillage des données est utilisé afin de mémoriser les dépendances entre données. Associé à l'utilisation de files, cet estampillage permet aux composants de sélectionner, à chacune de leurs phases d'activation, des ensembles de données cohérents choisis parmi les données à leur disposition. La notion d'association cohérente est ensuite relâchée, permettant une utilisation de données approximativement cohérentes. Des files filtrantes, n'enregistrant qu'une donnée sur un certain nombre de données reçues, permettent de réduire la taille des files nécessaires. Par ailleurs, du fait de la liberté du modèle d'exécution choisi, il existe des situations où il est impossible de garantir la vivacité de l'association cohérente des données. D'autre part, une architecture particulière peut générer des contraintes de cohérence conflictuelles et aboutir à une impossibilité de gestion de la cohérence. Pour terminer, les résultats de ces travaux sont appliqués sur le logiciel applicatif d'un satellite d'observation terrestre détectant des points chauds.
Les travaux présentés dans cette thèse portent sur le prototypage virtuel des systèmes embarqués hétérogènes. La complexité des systèmes embarqués fait qu'il est difficile de trouver une solution optimale. Ainsi, les approches adoptées par les ingénieurs reposent sur la simulation qui requiert le prototypage virtuel. L'intérêt du prototypage virtuel est de fournir des modèles exécutables de systèmes embarqués afin de les étudier du point de vue fonctionnel et non-fonctionnel. Notre contribution consiste en la définition d'une nouvelle approche à composants pour le prototypage virtuel des systèmes embarqués, appelé 42. 42 n'est pas un nouveau langage pour le développement des systèmes embarqués, mais plutôt un outil pour la description et l'assemblage de composants pour les systèmes embarqués, au niveau système. Un modèle pour le prototypage virtuel des systèmes embarqués doit prendre en compte leur hétérogénéité. Des approches comme Ptolemy proposent un catalogue de MoCCs (Models of Computation and Communication) qui peuvent être organisés en hiérarchie afin de modéliser l'hétérogénéité. 42 s'inspire de Ptolemy dans l'organisation hiérarchique de composants et de MoCCs. Cependant, les MoCCs dans 42 ne sont pas fournis sous forme de catalogue, ils sont décrits par des programmes qui manipulent un petit ensemble de primitives de base pour activer les composants et gérer les communications entre eux. Une approche à composants comme 42 requiert un formalisme de spécification de composants. Nous étudierons les moyens proposés par 42 pour décrire les composants. Nous nous intéresserons particulièrement aux contrats de contrôle de 42. 42 est indépendant de tout langage ou formalisme. Il est conçu dans l'optique d'être utilisé conjointement avec les approches existantes. Nous donnerons une preuve de concept afin de montrer l'intérêt d'utiliser 42 et les contrats de contrôle associés aux composants, conjointement avec des approches existantes.
Dans cette these, nous nous sommes intéressés à la conception d'un environnement d'execution pour des applications réparties dynamiques. Nous avons défmi et utilisé le modèle des réseaux de processus distribués de Kahn, comme modèle de base de notre environnement d'exécution. L'extension du modèle de Kahn pour supporter la distribution a permis de faire le lien entre les systèmes distribués et les applications des réseaux de processus de Kahn (simulation des systèmes embarqués, application de traitement de signal, traitement vidéo, ...) ouvrant ainsi la voie à la construction d'applications de simulation dans un environnement distribué. Bien que le modèle des réseaux de Kahn soit le modèle de prédilection des applications de simulation, notre environnement n'est pas limité à ce type d'applications, et peut servir comme support d'exécution pour des applications où l'objectif derrière la distribution est l'amélioration des performances. La gestion des communications est l'un des points critiques dans de tels systèmes distribués, et notre approche ne néglige pas ce point. Elle permet d'optimiser les temps de transfert de données en utilisant la vectorisation, le recouvrement des calculs par les communications et l'équilibrage de charge. Ainsi, notre support reste aussi ouvert à des applications de haute performance dans un cadre de métacomputing. Nos travaux couvrent essentiellement trois facettes: 1. La simulation distribuée: nous avons proposé et développé un support d'exécution capable d'assurer le fonctionnement d'une application de simulation de systèmes embarqués dans un environnement réparti. La facilité de développement se traduit dans notre approche par l'utilisation d'une méthodologie à' base de composants, la transparence des communications et l'interactivité du déploiement. II. La dynamicité des systèmes distribués: bien que l'environnement soit motivé par la simulation de composants distribués dans un contexte de "cyber-entreprise", son domaine d'application ne se limite pas à la simulation distribuée. C'est ainsi qu'en plus des performances des communications et de la charge des processus, l'aspect dynamique de l'application distribuée a été pris en compte. Cette dynamicité que procure notre environnement est l'une des contributions principales de notre approche. III. Le traitement de signal: le langage Array-OL est dédié aux applications de traitement de signal et plus particulièrement aux applications de traitement de signal multidimensionnel. Nous avons proposé une projection du modèle Array-OL qui spécifie des dépendances de données vers le modèle des réseaux de processus qui est basé sur le flux de données. L'approche proposée combine la distribution de données et de tâches avec des exécutions de type pipeline et de type SPMD. De plus, l'application bénéficie de la dynamcité que procure notre support d'exécution.
This book examines how the computer, as we currently know it, will be replaced by a new generation of technologies, moving computing off the desktop and ultimately integrating it with real world objects and everyday environments. It provides a unique combination of concepts, methods and prototypes of ubiquitous and pervasive computing reflecting the current interest in smart environments and ambient intelligence.