Transcription du modèle de performance en VHDL
|
|
- Virginie Dumont
- il y a 8 ans
- Total affichages :
Transcription
1 4 Transcription du modèle de performance en VHDL Le modèle de performance de MCSE décrit dans le chapitre 4 représente un investissement de plus de 5 ans de la part de l équipe MCSE. L objectif de l équipe était d aboutir à un modèle de performance intégré à la méthodologie de conception complète MCSE et à une technique d évaluation de ce modèle pour analyser des architectures de systèmes tout au long du cycle de développement. Pour l évaluation du modèle de performance, plusieurs approches ont été envisagées: une évaluation analytique, le développement d un simulateur spécifique et la transcription du modèle en un langage simulable. L évaluation analytique qui nécessite la transcription du modèle en un modèle analytique (réseaux de Petri stochastiques ou de files d attentes par exemple) n a pas été retenue car nous pensons qu elle est mal adaptée à la complexité des systèmes considérés dans cette étude. La seconde solution est également en cours d expérimentation. Elle repose sur la transcription du modèle de performance en un programme multi-tâches C++ et sur l utilisation du noyau multi-tâches de Windows95/NT pour son exécution. La solution basée sur l emploi d un langage simulable est celle décrite dans ce chapitre. Le langage de simulation retenu ici est VHDL. Aussi, l objectif précis de ce chapitre est de détailler les règles de traduction développées pour aboutir à un modèle VHDL simulable capable de produire les résultats de performances souhaités. Le résultat de ce chapitre est important car il sert ensuite de base pour l intégration des règles de traduction dans l outil de génération VHDL présenté dans le chapitre 6. Nous commençons par décrire la technique retenue pour l évaluation de performances. Nous justifions ensuite le choix du langage VHDL. Certaines propriétés intrinsèques du langage VHDL (parallélisme inhérent, instanciation multiple, paramètres génériques, etc.) facilitent la transcription et la simulation de notre modèle de performance. Mais, le langage VHDL pour la M.C.S.E 85
2 Chapitre 4 simulation de notre modèle de performance souffre également de quelques restrictions. Ces restrictions et notamment l absence de mécanisme de suspension de process, nous ont amenés à définir un modèle de simulation qui modélise un processeur logiciel sous la forme d un composant ordonnanceur chargé de gérer les différentes tâches (fonctions) allouées au processeur. La description des règles de transcription se poursuit avec la définition des règles concernant la transcription de la composante structurelle du modèle de performance. Un composant actif (fonction, processeur) est transcrit sous la forme d une entité ou d un block, ce qui permet de préserver la hiérarchie du modèle MCSE source, la trace des entrées/sorties d un composant actif (port map) et la généricité (generic map). Un élément de relation est transcrit par une entité générique qui est instanciée sous la forme d un composant. Le couplage entre un composant actif et un élément de relation est effectué avec un protocole de communication en 4 phases. Ce protocole est implanté sous la forme d un signal bidirectionnel et d une fonction de résolution. Pour la transcription de la composante comportementale du modèle de performance, le comportement de chaque fonction est modélisé comme un ensemble de process synchronisés et coopérants. Nous décrivons alors le mécanisme de synchronisation de process concurrents et les principes de transcription de toutes les autres constructions du modèle de comportement: la séquence, l alternative, la répétition, l activation conditionnelle, l achèvement forcé d activités, les conditions d activations et les actions. La construction la plus complexe à traduire est l achèvement forcé d activité qui est à rapprocher des EI Arcs (Exit Immediately) d un SpecChart [GAJSKI-93]. Parmi les restrictions du langage VHDL pour la simulation de notre modèle de performance, la plus contraignante est le manque de généricité pour la déclaration des types. Cette restriction a deux implications: - sur la déclaration des primitives d accès aux éléments de relation. Il faut regrouper tous les types des éléments de relation en un seul type (record) ou définir autant de primitives d accès qu il y a de types différents (surcharge de procédure), - sur la déclaration des signaux connectant l entité ou le block d un élément actif au composant d un élément de relation. Un lien de connexion entre un composant actif et un élément de relation est traduit sous la forme d un vecteur uni-dimensionnel ou bi-dimensionnel dont il faut gérer les indices et la répartition (utilisation alias). Lors de la simulation du programme VHDL, des informations pertinentes doivent être extraites pour analyser les résultats de performance. La technique d extraction d informations retenue repose sur l utilisation d une librairie de composants de monitoring qui génèrent des fichiers exploitables par le logiciel GnuPlot ou sur la génération d une trace d événements qui est utilisée par l outil d analyse des performances développé par l équipe MCSE [CALVEZ-95c] [CALVEZ-98a]. L utilisateur peut également rajouter au code VHDL généré des instructions de captures spécifiques et utiliser les possibilités d observations offertes par le simulateur VHDL utilisé. Les règles de transcription ont été validées en autres sur l exemple simplifié du serveur vidéo dont le modèle de performance a été présenté dans le chapitre 3. Nous présentons donc dans ce chapitre à titre d illustration les résultats de performance obtenus pour l exemple. Le 86 M.C.S.E
3 Transcription du modèle de performance en VHDL chapitre 7 détaille aussi 2 autres exemples qui ont permis de valider et d enrichir les concepts du modèle de performance et la technique d évaluation associée. 4.1 TECHNIQUE POUR L EVALUATION DE PERFORMANCE Après avoir défini le modèle de performance, la phase suivante porte sur le développement d une méthode permettant l évaluation des performances souhaitées par le concepteur. En effet, rappelons que la procédure itérative à suivre par les concepteurs se décompose en 3 phases: - modélisation incrémentale du système ou de l'application, - évaluation des performances souhaitées, - visualisation des résultats, interprétations et prise de décision. La troisième phase conduit généralement à un retour sur la première phase pour modifier, améliorer, poursuivre la décomposition du modèle, ou à un retour sur la deuxième phase pour modifier la sélection des résultats demandés ou des paramètres de l'évaluation. A noter que la deuxième phase se doit d'être la plus transparente et la plus efficace possible pour l utilisateur, l objectif de ce dernier étant de permettre d itérer rapidement entre les phases 3 et 1. Le choix d'une méthode spécifique pour l évaluation passe par une analyse des possibilités. D'une manière générale, l'observation des propriétés d'un système peut résulter de 3 techniques différentes: - l'évaluation analytique (ou mathématique), - la simulation, - l'observation et la mesure. L'évaluation analytique est appropriée pour un modèle dont tous les éléments sont décrits d'une manière analytique, et si en plus il existe une méthode globale directe ou itérative permettant de déduire les propriétés globales du modèle à partir de ses constituants. Nous pensons que le modèle de performance retenu est beaucoup trop structurel et dynamique pour que cette méthode puisse être appliquée. L'observation et la mesure ne s'appliquent que sur un système réel que l'on place en fonctionnement. Ceci suppose que toute la conception soit achevée et qu'un prototype existe. La simulation est une technique appropriée pour un modèle dynamique. Ainsi, nous pensons que seule cette technique est utilisable durant la spécification et la conception des systèmes matériels/logiciels. Deux techniques de simulation sont possibles: l utilisation d un simulateur spécifique pour le modèle ou la transcription du modèle en un langage pour lequel un simulateur existe. Les deux techniques sont simultanément envisagées par l équipe: emploi du langage VHDL et un simulateur, emploi du langage C++ et exécution du programme dans un environnement multi-tâches. Cette étude concerne par la solution par simulation VHDL. M.C.S.E 87
4 Chapitre 4 La technique en développement est représentée par la figure 4.1. Modèle système Saisie graphique du modèle Méthode en développement Modèle graphique Transcription en VHDL Programme VHDL simulable Simulation en VHDL Interprétation des résultats Définition des attributs Règles de transcription Paramètres, workload -Figure 4.1- Démarche et outil pour l évaluation des performances. Le modèle du système à simuler est saisi par un outil graphique. Les attributs sont aussi ajoutés. Cette description sauvée sous forme textuelle est ensuite transcrite en un programme VHDL conformément à des règles de traduction que nous détaillons dans ce chapitre. Le programme VHDL est instrumenté puis simulé pour obtenir les observations souhaitées. La transcription du modèle concerne le modèle de structure (fonctionnel et exécutif) et le modèle de comportement. La partie délicate concerne la prise en compte de l élément processeur qui conduit à restreindre le degré de parallélisme des fonctions qu il supporte, mais c est cette particularité qui permet la co-simulation. Pour la compréhension de la méthode globale, nous commençons par indiquer le modèle de simulation retenu pour la transcription d un constituant actif à degré de parallélisme limité. Au préalable, nous justifions le choix du langage VHDL. 4.2 CHOIX DU LANGAGE VHDL A première vue, le choix du langage VHDL conduit à disposer d une excellente plate-forme pour l évaluation des performances aussi bien pour la simulation que pour l extraction et l analyse des résultats. Pour la simulation, les propriétés et certaines constructions du langage VHDL autorisent ou facilitent la simulation de notre modèle de performance, à savoir: - Parallélisme inhérent. La notion de process permet de simuler des tâches concurrentes dont le comportement de chacune est purement séquentiel. VHDL possède donc une propriété qui est aussi intéressante pour le co-design [ECKER-93]. En effet, une simulation VHDL peut très bien permettre d étudier un partitionnement logiciel/ matériel donné. Les descriptions concurrentes représentent alors les différents processeurs matériels et logiciels et pour chaque processeur logiciel la partie logicielle est représentée par une description séquentielle. Pour la description logicielle, il existe dans le domaine public des outils de conversion de VHDL vers C et réciproquement. Evidemment, cette conversion ne concerne que certaines constructions des "sequential statements" du langage VHDL. - Instanciation multiple (instruction Generate) qui permet la création multiple (uniquement statique) de composants, de blocs ou de process. Pour l extraction de résultats, on peut facilement définir une librairie de composants permettant d extraire par exemple le taux d occupation d une ressource ou le débit sur un port de communication. L utilisation des possibilités de "debugging" et d analyse du simulateur 88 M.C.S.E
5 Transcription du modèle de performance en VHDL utilisé (sortie sous forme de chronogrammes) permet aussi de visualiser en détail des résultats de simulation. L analyse faite dans le chapitre 2 a montré qu il existe un certain nombre d outils commerciaux ou universitaires pour l analyse des performances d un système. Certains tels que Adept de l université de Virginie (modèle UVa) et Cosmos de Omniview utilisent VHDL pour simuler leurs modèles et extraire des informations. Les autres parmi lesquelles on peut citer en autres SES/WorkBench, RDD100 et BOnes ont un formalisme, un simulateur et des possibilités d analyse des résultats qui leur sont propres. Par rapport à cette seconde catégorie d outils spécifiques, l emploi de VHDL offre un certain nombre d avantages tels que: - laportabilité. C est un langage standard et normalement indépendant de tout vendeur. Les modèles générés en VHDL peuvent s échanger plus facilement entre différents groupes de travail. L emploi d un langage unique élimine aussi tout risque d erreurs ou d approximations de transcription. - la lisibilité et la compréhensibilité. L emploi de VHDL pour l évaluation des performances est intéressant pour avoir un meilleur impact sur la communauté des concepteurs d architectures matérielles habitués à utiliser VHDL. A cet égard, il est indispensable que le code VHDL généré automatiquement à partir du modèle de performance soit le plus lisible et compréhensible possible. - lacomplétude. La vérification de la complétude et de la consistance du modèle généré est assuré automatiquement par le compilateur/simulateur VHDL utilisé. - la traçabilité. VHDL permet de décrire plusieurs niveaux d abstraction du système, plusieurs architectures pour un même composant et peut être utilisé durant tout le cycle de développement d un système. - la disponibilité des outils. Il y a aujourd hui de nombreux outils basés sur VHDL disponibles sur la marché. L utilisation conjointe de ces différents outils permet de couvrir la plupart des phases de conception de la spécification à la réalisation. Sous certaines conditions, des outils de synthèse haut-niveau (Behavioral Compiler de Synopsys, SpecSyn de l UCI, AMICAL de l équipe Tima, GAUT du Lasti-Lester, etc.) permettent même de transformer une description VHDL comportementale en une description VHDL au niveau RTL. Cette description résultante est ensuite transformée par synthèse logique en une netlist de portes et de bistables pour une implantation dans un circuit. Les propriétés intrinsèques du langage VHDL satisfont aussi certains critères de qualité d un modèle énoncés dans le chapitre 3: - modèle hiérarchique. Les notions d entité, de block et de composant permettent de décomposer la description du système. On peut également définir plusieurs solutions d architecture pour une même entité et choisir l architecture retenue uniquement au moment de son instanciation (mécanisme de configuration). La notion de composant est très importante car elle permet la réutilisation de modèle. - modèle paramétrable. VHDL permet l utilisation de paramètres génériques. - modèle d interdépendance. Très proche syntaxiquement du langage ADA, VHDL se distingue des langages de programmation par le concept de signal. M.C.S.E 89
6 Chapitre 4 Mais, l utilisation de VHDL pour la simulation de notre modèle de performance souffre de quelques restrictions: - manque de généricité pour la déclaration des types. Par exemple, il n est pas possible de déclarer un type non contraint d un type non-contraint ou de déclarer un type non contraint dans un record. - pas d instanciation dynamique possible (uniquement statique). - pas de mécanismes de suspension de process. - l utilisation d un simulateur VHDL nécessite aussi des ressources de simulation importantes (puissance de calcul, mémoire). Les temps de simulation relativement importants même pour un modèle macroscopique et non interprété ne permettent pas de parcourir très rapidement l espace des solutions possibles. Dans le projet RASSP, la modélisation de performance repose également sur l utilisation du langage VHDL et regroupe principalement l Université de Virginie (modèle UVa/Adept), Honeywell Technology Center, Lockheed Martin Advanced Technology Laboratories [HEIN-95] et Omniview. L outil Cosmos est par exemple le fruit de cette association et de ce travail de recherche. 4.3 MODELE DE SIMULATION RETENU POUR L EMPLOI DE VHDL La transcription du modèle de performance en VHDL repose tout d abord sur un bon choix de solution d implantation. La solution à retenir ici est très dépendante à la fois du modèle à traduire et du langage cible. En effet VHDL possède un certain nombre de propriétés intéressantes en particulier le parallélisme inhérent au langage qui permet aisément la description et la simulation de systèmes décrits par du parallélisme. Les particularités essentielles du modèle de performance qui ont servies au choix du modèle de simulation sont les suivantes: - instanciations multiples de fonctions, d activités, d opérations, d éléments de relation, - degré de parallélisme de chaque fonction (ou processeur) définissable, ce qui implique une limitation du degré de partage d une ressource, - création dynamique d activités, - paramétrage complet du modèle par des attributs: attributs prédéfinis, attributs définis par l utilisateur. Pour satisfaire ces exigences, le modèle de simulation retenu pour le modèle de structure est représenté par la figure 4.2. La partie supérieure (au dessus du pointillé) montre un exemple de structure fonctionnelle représentant la décomposition de la fonction F en les fonctions F1 et F2[1:m] et la relation par V[1:m]. Chaque fonction est définie par les attributs: Concurrency, Power, Policy, Priority, Deadline. Les attributs des 3 types de relations EV, Port et V[1:m] sont aussi rappelés sur la figure. Les temps Write, Read, Use sur les liens peuvent venir surcharger les attributs de l objet de relation. 90 M.C.S.E
7 Transcription du modèle de performance en VHDL F EV Read Policy Concurrency Write Read F1 Concurrency Power Policy Priority Deadline OverHead state Write Read V[1:m] Policy Concurrency Capacity Write Read Use Cons F2[1:m] state Write Port Capacity Concurrency Write Read States(F1) States(F2[1:m]) Scheduler state States(F) Concurrency Power Policy Priority Deadline OverHead TYPE DefUState IS RECORD TaskState : DefTaskState priority : NATURAL; deadline : TIME; power : REAL; END RECORD; -Figure 4.2- Modèle de simulation retenu pour la transcription en VHDL. Pour la fonction F, le problème important à résoudre consiste à obtenir une exécution de toutes ses fonctions internes avec les échanges par relations conformément à ses attributs. L attribut Power de la fonction F implique simplement la modification des temps d exécution de tous les constituants internes en utilisant Power comme facteur multiplicatif (<1 implique un ralentissement, > 1 implique une accélération). L attribut Concurrency de F est le plus spécifique. S il est à une valeur infinie (0 choisie comme valeur représentative), il n y a pas de particularité. Si sa valeur est inférieure au nombre de fonctions internes à évolution potentiellement parallèle (incluant toute la décomposition interne jusqu aux opérations), il faut assurer un ordonnancement des fonctions selon une politique ( Policy) et avec l attribut approprié ( Priority ou Deadline). Il s agit là d un moyen pour simuler l influence d un support exécutif représenté par F avec un degré d exécution limité. Ceci implique la possibilité de préemption du processeur ou de la ressource d exécution pour une fonction ou une activité interne. Ce point précis est une difficulté en VHDL car il est impossible de suspendre et ensuite de relancer un process de l extérieur. La solution retenue pour la simulation est l ajout de la partie basse de la figure 4.2. Chaque unité de comportement, c est-à-dire fonction, activité ou opération, est transcrite comme une tâche. Une variable State est associée à chaque tâche. Cette variable va être modifiée par l ordonnanceur Scheduler pour indiquer les états actifs et suspendus de la tâche. M.C.S.E 91
8 Chapitre 4 Ce modèle de solution satisfait la condition de description hiérarchique. En effet, chaque fonction possède la variable State en entrée. Ceci est le cas pour F mais aussi pour F1 et F2. Chaque fonction est donc dépendante de sa fonction englobante. 3 procédures sont à la disposition des fonctions pour gérer la ressource d exécution, ce qui se traduit par la modification de sa variable State (qui correspond à States[i] à l extérieur): - InactiveTask(state: DefState); qui rend la tâche inactive avec libération de la ressource d exécution, - BlockingTask(state: DefState); qui indique une mise en attente sur une condition d activation avec libération de la ressource d exécution, - ingtask(state:defstate); qui assure une demande de la ressource, en sortie de la procédure la ressource a été obtenue. 4.4 IMPLANTATION DE LA FONCTION D ORDONNANCEMENT La limitation du parallélisme de la ressource d exécution est assurée par une fonction Scheduler ajoutée en interne de chaque fonction. Scheduler est transcrite comme un composant (entité) VHDL. Comme entrées/sorties, il utilise d une part sa variable State par laquelle son environnement (le niveau hiérarchique supérieur) lui indique la disponibilité de la ressource d exécution, d autre part la variable States qui regroupe l état de toutes les fonctions internes à exécuter. Une variable States(i) pour la fonction i comprend: - la variable TaskState représentant l état de la fonction avec les états: Inactive, Blocked, ing, Active, - la variable Power transmettant ainsi le paramètre à la fonction i pour la modification des temps d exécution, - les variables Priority et Deadline définissant son urgence pour l ordonnancement (une seule utilisée à la fois par le scheduler compte-tenu de son attribut Policy), Les états d une fonction et les transitions entre eux sont représentés par la figure 4.3. Début exécution (ingtask) Condition satisfaite Ressource allouée par le scheduler Ressource préemptée (BlockingTask) Inactive Blocked ing end Active (ingtask) attente condition (BlockingTask) Fin exécution (InactiveTask) -Figure 4.3- Etats d une fonction et conditions de transition. L état ing est spécifique de l emploi d une ressource limitée. Pour que tous les temps d exécution n évoluent que durant l état Active, ils sont tous simulés par une procédure DELAY qui permet ainsi de gérer un point de préemption par la ressource d exécution. Bien entendu, pour cela on interdit l emploi de l instruction VHDL " for Time". Le comportement de la procédure DELAY est décrit ci-dessous. 92 M.C.S.E
9 Transcription du modèle de performance en VHDL PROCEDURE Delay( CONSTANT Time : IN TIME; SIGNAL TaskState : IN DefState) IS VARIABLE GlobalTime,RemainTime: TIME := NullTime; GlobalTime:=now; IF (TaskState.power/=0.0) THEN RemainTime:=Time/TaskState.power; ELSE RemainTime:=Time; LOOP WAIT UNTIL (TaskState.state/=Active) FOR RemainTime; IF (TaskState.state=Active) THEN exit; ELSE RemainTime:=RemainTime-(now-GlobalTime); WAIT UNTIL (TaskState.state=Active); GlobalTime:=now; END LOOP; END Delay; On constate bien que l évolution du temps est bloquée lorsque la fonction utilisant la procédure DELAY n est plus active. L attribut Power dans l argument TaskState est utilisé pour modifier le temps d exécution fourni comme argument. La description VHDL de la fonction Scheduler est donnée ci-après. Son comportement se rapproche de celui d un ordonnanceur d exécutif temps-réel. Seule la politique d ordonnancement selon la priorité est actuellement implantée. Il est évident que d autres politiques sont aisément implantables par extension algorithmique en utilisant la valeur de l attribut Policy. La fonction est décrite sous la forme d une entité générique. Elle exploite une fonction de résolution strictement nécessaire pour gérer la variable partagée state. -- ########################################################### -- # Types et fonction de resolution pour l'etat d'une tache # -- ########################################################### TYPE DefTaskState IS (Nodriver,Inactive,Blocked,ing,Active); TYPE DefTaskStateTable IS ARRAY(DefTaskState,DefTaskState) OF DefTaskState; CONSTANT ResolutionTaskState : DefTaskStateTable :=( Nodriver Inactive Blocked ing Active ( Nodriver, Inactive, Blocked, ing, Active), -- Nodriver ( Inactive, Inactive, Inactive, ing, Inactive), -- Inactive ( Blocked, Inactive, Blocked, ing, Blocked), -- Blocked ( ing, ing, ing, ing, Active), -- ing ( Active, Inactive, Blocked, Active, Active) -- Active ); TYPE DefUState IS RECORD state : DefTaskState; priority : NATURAL; deadline : TIME; power : REAL; END RECORD; TYPE DefUStateVector IS ARRAY (NATURAL RANGE <>) OF DefUState; FUNCTION ResolState (Input : DefUStateVector) RETURN DefUState; SUBTYPE DefState IS ResolState DefUState; TYPE DefStateVector IS ARRAY (NATURAL RANGE <>) OF DefState; ENTITY Processor IS GENERIC ( Concurrency : NATURAL := 1; Power : REAL := 1.0; OverHead : TIME := NullTime;); PORT (SIGNAL StateVector : INOUT DefStateVector; SIGNAL ProcessorState : INOUT NATURAL); END Processor; ARCHITECTURE behavioral OF Processor IS Scheduling : PROCESS M.C.S.E 93
10 Chapitre 4 VARIABLE CurrentConcurrency,i, highestingfunction, lowestactivefunction : NATURAL; VARIABLE TaskIsing : BOOLEAN; InactiveTask(ProcessorState); InitStates(StateVector, power*processorstate.power); LOOP ingtask(processorstate); LOOP WAIT UNTIL StateVector EVENT or ProcessorState EVENT; CASE ProcessorState IS WHEN Inactive => TaskIsing:=FALSE; FOR i IN StateVector RANGE LOOP IF StateVector(i).state=waiting THEN TaskIsing:=TRUE; EXIT; IF TaskIsing THEN ingtask(processorstate); WHEN Active=> -- Scheduling according to a static priority InfoFunctions(StateVector,CurrentConcurrency, lowestactivefunction,highestingfunction); IF ((CurrentConcurrency<Concurrency) AND (highestingfunction/=0)) THEN ActiveFunction(StateVector,highestingFunction, OverHeadProcessor,ProcessorState); ELSIF ((highestingfunction/=0) AND (lowestactivefunction/=0) AND (StateVector(lowestActiveFunction).priority< StateVector(highestingFunction).priority)) THEN -- processor preemption Preemption(StateVector,lowestActiveFunction, highestingfunction, OverHeadProcessor,ProcessorState); ELSIF (CurrentConcurrency=0) THEN -- pas de fonction active ou en attente InactiveTask(ProcessorState); WHEN OTHERS=> -- Blocked, ing, ExitNow, NoDriver FOR i IN StateVector RANGE LOOP IF StateVector(i).state=Active THEN StateVector(i).state<=waiting; END LOOP; ingtask(processorstate); END CASE; END LOOP; END LOOP; END PROCESS Scheduling; END behavioral; L ordonnanceur ne peut rendre actif une fonction qu il contrôle que lorsqu il est lui-même dans l état actif. Les primitives ActiveFunction et Préemption tiennent compte de l attribut Overhead (temps de commutation) et de l état du processeur (possibilité d une suspension de processeur). Le fonction Scheduler se charge aussi de mettre à disposition de chaque fonction qu elle gère la puissance d exécution à exploiter (Power d une fonction = Power de cette fonction * Power de la fonction englobante). 94 M.C.S.E
11 Transcription du modèle de performance en VHDL 4.5 TRANSCRIPTION DU MODELE STRUCTUREL Le modèle structurel permet de représenter la solution d une application selon un ensemble de fonctions et de relations entre celles-ci. Les relations entre fonctions sont de 3 types: - relation de synchronisation pour exprimer une dépendance temporelle, - relation de partage de données ou de ressources, - relation de transfert d information et de communication ce qui sous-entend une dépendance temporelle avec échange. Dans la suite, on s intéresse successivement à la transcription d une fonction, d un port, d un événement et d une variable partagée. Il faut garder à l esprit que toute fonction, activité ou opération reste implantée conformément au modèle précédent. Ceci n est bien sûr à faire que lorsqu il y a limitation de la ressource d exécution Transcription d une fonction Dans le cas général, une fonction sera transcrite sous la forme d une entité. Ceci permet: - de garder la hiérarchie du modèle, - de garder la trace des entrées/sorties d une fonction (port map), - d exploiter la généricité (generic map), - d exploiter la réplication et la notion de modèle de fonctions (une entité peut être instanciée sous forme de composant ou même directement avec VHDL 93), - d utiliser l instanciation multiple, - d associer plusieurs modèles à une même entité (plusieurs descriptions d architectures, l une choisie par configuration). Lorsque certaines propriétés de l entité n ont pas à être exploitées, particulièrement l intérêt de plusieurs modèles, il est possible d utiliser une notion relativement proche: le block. Si le block ne permet pas de traduire la notion de réplication/modèle de fonctions, il offre, contrairement aux entités, la possibilité d accéder à des variables globales (Shared variable de VHDL 93), ce qui est très utile dans certains cas. Il faut noter que pour un block la partie Generic Map et Port Map est optionnelle et purement déclarative: un oubli d une entrée/sortie ou d un paramètre générique n entraînera pas forcément d erreur de compilation (passage par effet de bord). Aussi il faut faire très attention pour préserver la lisibilité du programme. L exemple ci-dessous montre la possibilité d exploiter simultanément les concepts d entité et de block. Les fonctions décrites ci-après ne possèdent pas la variable State en entrée car nous avons supposé qu il n y a pas de limitation de ressource d exécution. Pour la compréhension, l entité modélise l environnement de l exemple simplifié du serveur vidéo dont la structure fonctionnelle est représentée par la figure 3.14 du chapitre 3. ENTITY EnvironnementVideoServer IS GENERIC (n : INTEGER := 1); PORT (Cmd : INOUT DefPortInVector(1 TO n); BlockIn : INOUT DefPortIn; BlockOut : INOUT DefPortOutVector(1 TO n)); END EnvironnementVideoServer; ARCHITECTURE behavioral OF EnvironnementVideoServer IS -- variable partagee pour la generation de nombres aleatoires SHARED VARIABLE rnd : REAL; M.C.S.E 95
12 Chapitre 4 -- modelisation de l'environnement du systeme etudie -- entite Users Users : BLOCK PORT (Cmd : INOUT DefPortInVector(1 TO n)); PORT MAP (Cmd=>Cmd); MultipleInstanciation: FOR i IN 1 TO n generate User : BLOCK PORT (Cmd : INOUT DefPortIn); PORT MAP (Cmd=>Cmd(i)); CONSTANT me : INTEGER := i; UserBehavior : PROCESS.; END PROCESS UserBehavior; END BLOCK User; END GENERATE MultipleInstanciation; END BLOCK Users; -- entite source source : BLOCK PORT (BlockIn : INOUT DefPortIn); PORT MAP (BlockIn=>BlockIn); EmissionBehavior : PROCESS.; END PROCESS EmissionBehavior; END BLOCK source; -- entite TVSet TVSet : BLOCK PORT (BlockOut : INOUT DefPortOutVector(1 TO n)); PORT MAP (BlockOut=>BlockOut); CONSTANT TconsTime : TIME := 10 us; MultipleInstanciation: FOR i IN 1 TO n generate TV : BLOCK PORT (BlockOut : INOUT DefPortOut); PORT MAP (BlockOut=>BlockOut(i)); ReceptionBehavior : PROCESS.; END PROCESS ReceptionBehavior; END BLOCK TV; END GENERATE MultipleInstanciation; END BLOCK TVSet; END behavioral; La description sous forme d entité ou de block permet de garder la hiérarchie du modèle MCSE, la trace des entrées/sorties des composants actifs (port map) et la généricité (generic map). Dans l exemple, le paramètre générique n est utilisé pour dimensionner des éléments internes (dimension des éléments de relation Cmd et BlockOut et des fonctions User et TVSet). L utilisation d un block à la place d un entité offre plusieurs avantages: - un block est instanciable directement, ce qui en contre partie ne permet pas la réplication (pas de déclaration de composant). La construction VHDL Generate est utilisée pour l instanciation multiple des fonctions User et TVSet. L attribut me Index est alors traduit sous la forme d une constante (constante me). - un block permet d accéder à des variables partagées (Shared Variable de VHDL 93) telle que la variable rnd qui est utilisée par un générateur de nombre pseudo-aléatoire. 96 M.C.S.E
13 Transcription du modèle de performance en VHDL Transcription d un port La transcription d un port nécessite de tenir compte du comportement systématique de tout port (c est-à-dire la gestion des messages reçus et délivrés) et de tous les attributs qui particularisent son comportement. Un protocole de communication est développé pour le couplage d un élément de relation avec une fonction. Notons que le principe de traduction consiste à considérer que l élément de relation est un élément passif. -A- Caractéristiques et transcription d un élément de transfert d information L'objet Port pour le couplage est assimilable à un tampon caractérisé par sa capacité en nombre de messages ( Capacity) et son degré de partage pour des accès multiples ( Concurrency). Deux grandeurs temporelles Write et Read sont aussi à considérer pour son utilisation ceci dans le cas de place disponible pour le dépôt, ou d une information disponible pour le retrait. Deux politiques d ordonnancement des messages sont prévues: selon la date de dépôt et donc Fifo, selon la priorité fixée par le demandeur. Concernant le comportement du port, rappelons qu un producteur doit se bloquer s il n y a plus de place pour le dépôt et qu un consommateur doit se bloquer en l absence de messages dans la file du port. Le port est décrit comme une entité instanciée sous la forme de composant. Les attributs associés au port sont les paramètres génériques de l entité (attributs statiques) et/ou font partie des entrées/sorties de l entité (attributs dynamiques). -B- Protocole de communication multi-points De nombreux modèles ne permettent que la communication point à point, ce qui réduit considérablement les possibilités de topologie d un système. La relation considérée dans le modèle MCSE est générale. Il s agit de coupler m producteurs et n consommateurs sur le même port. L échange de donnée entre un port et un ou plusieurs producteurs nécessite un protocole de communication: le producteur doit demander l accès au port et doit maintenir cette demande jusqu à ce que le port soit prêt. Alors un retour (feedback) doit exister entre le port et le producteur pour indiquer que le port a satisfait la requête de l utilisateur et que la demande d accès peut être inhibée. Pour ce type de protocole, deux signaux de contrôle sont habituellement utilisés (request, acknowledge), mais pour la transcription en VHDL, surtout dans le cas de plusieurs producteurs pour un même port, il est préférable d utiliser un signal bidirectionnel (Status) associé à une fonction de résolution (ResolProtocol). Le code VHDL correspondant à l implantation du protocole de communication est le suivant: TYPE DefHandshake IS (InactiveAck,,InactiveReq,ActiveReq); TYPE DefHandshakeTable IS ARRAY (DefHandshake,DefHandshake) OF DefHandshake; CONSTANT ResolutionHandshake : DefHandshakeTable :=( InactiveAck InactiveReq ActiveReq TaskBlocked ( InactiveAck,, InactiveReq, ActiveReq, InactiveAck), -- InactiveAck (,, InactiveReq,, ), -- ( InactiveReq, InactiveReq, InactiveReq, InactiveReq, InactiveReq), -- InactiveReq ( ActiveReq,, InactiveReq, ActiveReq, TaskBlocked), -- ActiveReq ( InactiveAck,, InactiveReq, TaskBlocked, TaskBlocked) -- TaskBlocked ); TYPE DefProtocol IS RECORD priority : NATURAL; date : TIME; status : DefHandshake; M.C.S.E 97
14 Chapitre 4 END RECORD; TYPE DefUPortIn IS RECORD information : DefInformation; WriteTime : TIME; protocol : DefProtocol; END RECORD; TYPE DefUPortOut IS RECORD information : DefInformation; ReadTime : TIME; protocol : DefProtocol; END RECORD; TYPE DefUPortInVector IS ARRAY (NATURAL RANGE <>) OF DefUPortIn; TYPE DefUPortOutVector IS ARRAY (NATURAL RANGE <>) OF DefUPortOut; FUNCTION ResolProtocol (Input: DefUPortInVector) return DefUPortIn; FUNCTION ResolProtocol (Input: DefUPortOutVector) return DefUPortOut; SUBTYPE DefPortIn IS ResolProtocol DefUPortIn; SUBTYPE DefPortOut IS ResolProtocol DefUPortOut; TYPE DefPortInVector IS ARRAY (NATURAL RANGE <>) OF DefPortIn; TYPE DefPortOutVector IS ARRAY (NATURAL RANGE <>) OF DefPortOut; Cette implantation est à rapprocher de celle du jeton du modèle UVa qui a également inspirée le mécanisme de communication utilisé dans le modèle de performance du projet RASSP (Cosmos). Le protocole est tout d abord expliqué pour le couplage d un producteur avec le port. Le signal Status permet le handshake entre un producteur et un port à l aide des 4 valeurs possibles: InactiveAck,, InactiveReq, ActiveReq. 1- Initialement, le producteur assigne la valeur InactiveAck au signal Status, pendant que le port lui assigne la valeur InactiveAck. La fonction de résolution associée à ce "multiplesignaldriven" lui donne la valeur InactiveAck. 2- Quand le producteur veut faire un accès au port, il assigne la valeur ActiveReq au signal Status et se bloque ce qui libère sa ressource d exécution et comme le port continue à lui assigner la valeur InactiveAck, la fonction de résolution lui donne la valeur provenant du producteur (ActiveReq est équivalent à demande d allocation). 3- Le port voit maintenant la valeur ActiveReq assignée au signal Status. Dès qu il en est capable, il satisfait la requête du producteur et positionne le signal Status à (la fonction copiant le signal Status provenant du port égal à ). 4- En observant Status=, le producteur déduit que sa requête a été acceptée par le port et par conséquent, il demande la ressource d exécution par ing, puis après un délai d utilisation, il positionne avec la complicité de la fonction de résolution le signal Status à InactiveReq (libération du port). 5- Quand le port voit Status=InactiveReq, le port se prépare à un nouvel accès en positionnant Status à InactiveAck. En plus du champ Status, l élément de base de communication possède deux autres champs Priority et Date. Lorsque le nombre d accès simultanés dépasse le degré de partage (attribut Concurrency) de l élément de relation, deux politiques d ordonnancement des accès ont été prévues: selon la date de dépôt ou selon la priorité fixée par le demandeur. Par défaut, le champ Date est fixé avec la date courante de simulation mais il peut être modifié pour appliquer par exemple une politique d ordonnancement au plus tard (voir exemple du serveur vidéo dans le chapitre 7). Le jeton utilisé comme élément de communication de base dans le modèle de performance de Cosmos contient également un champ Size utile pour calculer le débit sur le port et les champs StartTime et Destination utiles pour calculer le temps de latence des messages. Nous ne sommes pas obligés de définir ces champs au niveau du record DefProtocol. La définition 98 M.C.S.E
15 Transcription du modèle de performance en VHDL et l exploitation de ces attributs peuvent être laissées au libre arbitre de l utilisateur du modèle. Si ils sont utilisés, ces attributs seront alors définis dans le message lui-même au niveau du record DefInformation comme nous le verrons plus loin. Le temps d accès à l élément de relation est simulé du coté producteur et non du coté port. L entité gérant le port est ainsi passive. Lors d une exécution sur un processeur de degré de concurrence limité, l entité n a pas besoin de tenir compte de l état (active, inactive, bloquée ou en attente) de la fonction (tâche) producteur. Cependant, le protocole de communication indique à la tâche producteur qu elle doit passer à l état bloqué (Status égal à TaskBlocked) si le port ne peut satisfaire le requête du producteur. -C- Implantation Le principe d implantation d un port est schématisé par la figure 4.4. La figure 4.4-a représente la structure fonctionnelle constituée des fonctions Prod et Cons reliées par le port de communication nommé Port. L attribut Write sur le lien entre Prod et Port surcharge l attribut Write de Port. La structure de l implantation en VHDL est décrite par la figure 4.4-b. Les fonctions Prod et Cons sont implantées sous la forme d une entité ou d un block dont les entrées/sorties sont composées du signal States (ressource d exécution limitée) et du signal PortIn (respectivement PortOut) pour le transfert de données. Le port de communication est modélisé par un composant. Les paramètres génériques de ce composant sont les attributs associés habituellement à un port de communication ( Capacity, Write, Read, Concurrency). La description interne de l entité associée au composant Port contient une fifo (buff) qui sert à stocker et restituer (primitives Put et Get) les messages transmis. L implantation distingue le port du type rendez-vous ( Capacity=0) des ports à N places (N>0) ou fugace. Le comportement de l entité Port est constitué de deux automates pour un port à N places ou fugace (figure 4.4-c) et d un seul automate pour un port du type Rendez-Vous (figure 4.4-d). De plus, pour un port fugace, il n y a mémorisation du message que s il y a un consommateur en attente. Sur la figure 4.4-c, lorsqu un producteur désire déposer un message, il fait appel à la procédure Send (à gauche de la figure). Cette procédure signale son état actif au port par ActiveReq. Si le port est en mesure de recevoir le message, il répond immédiatement par. La condition d acceptation d un message comprend: la demande ActiveReq, la disponibilité d une place, le degré de concurrence non atteint (NbUse). Si le port n est pas libre, il y a alors libération de la ressource d exécution par la procédure Blocking définissant TaskState=blocked. Après acquittement du port de communication, la fonction passe alors le temps d écriture nécessaire réalisé par la procédure DELAY. Durant cette attente, le ressource d exécution peut être préemptée par une tâche plus prioritaire. Le protocole se termine ensuite par InactiveReq puis l état de repos InactiveAck qui sert aussi à la fin de la procédure Send. Pour un consommateur la procédure Receive (à droite de la figure) est identique mais avec l indication d une attente de message par ActiveReq. M.C.S.E 99
16 Chapitre 4 a) b) Prod[1:m] Write Port Capacity Write Read Concurrency Cons[1:n] Prod[1:m] Send InStatus[1:m] InValue[1:m] PortIn States(Prod[1:m]) PORT Capacity Write Read Concurrency buff: fifo; OutStatus[1:n] OutValue[1:n] PortOut Receive States(Cons[1:n]) Cons[1:n] Send ( InValue, Port) utilisé dans Prod[i] InValue /ActiveReq Taskblocked c) PORT à N places pour une concurrence NbUse:=0;NbFreeSpace:=Capacity;MnMess:=0; ActiveReq and (NbFreeSpace>0 or NbUse >= Concurrency) TaskBlocked ActiveReq and (NbMess=0 or NbUse >= Concurrency) TaskBlocked Receive (Port, OutValue) utilisé dans Cons[i] Taskblocked / ActiveReq DELAY (writetime) TaskBlocked Blocked ing (ActiveReq or TaskBlocked) and NbFreeSpace>0 and NbUse < Concurrency NbUse++; NbFreeSpace--; Send wait end InAccess Receive wait end OutAccess (ActiveReq or TaskBlocked) and NbMess>0 and NbUse < Concurrency NbUse++; NbMess--; TaskBlocked Blocked ing DELAY (ReadTime) InactiveAck End DELAY InactiveReq InactiveReq NbUse--; NbMess++; Put(buff, InValue); InactiveAck InactiveReq NbUse--; NbFreeSpace++; Get(buff, OutValue); InactiveAck End DELAY InactiveReq InactiveReq InactiveAck buff : fifo pour la mémorisation des messages InactiveAck OutValue d) PORT du type Rendez-Vous pour une concurrence Taskblocked Input/ActiveReq InputTaskBlocked Blocked Input ing NbUse:=0; InputActiveReq and not(consready) and NbUse >= Concurrency) InputTaskBlocked Rendez Vous ProdReady and ConsReady and NbUse < Concurrency NbUse++; Input OutputInactiveReq Start * astuce pour que le Rendez consommateur ne soit Vous pas pris pour un autre producteur 1 OutputActiveReq and not(prodready) and NbUse >= Concurrency) OutputTaskBlocked /OuputActiveReq OutputTaskBlocked Blocked Output ing Taskblocked DELAY (writetime) InactiveAck End DELAY InputInactiveReq Blocked InputInactiveAck ing Write Delay InputInactiveReq Output end OutAccess OutputInactiveReq NbUse--; InputInactiveAck OutputInactiveAck End DELAY OutputInactiveReq OutputInactiveAck DELAY (ReadTime) InactiveReq OutValue ConsReady := OutputActiveReq or OutputTaskBlocked; PropReady := InputActiveReq or InputTaskBlocked; -Figure 4.4- Solution pour l implantation d un transfert de messages par un port. 100 M.C.S.E
17 Transcription du modèle de performance en VHDL Pour un port du type rendez-vous, il y a gestion de couples Producteur/Consommateur. Le degré de concurrence (attribut Concurrency) représente alors le nombre de couples simultanés et non pas le nombre d accès simultanés autorisés (Port à N places). Un consommateur en attente est bloqué tant qu un producteur n a pas déposé de message et le producteur n est libéré que lorsque le consommateur a retiré le message. La durée de transfert d un message est donc au minimum la somme des temps des attributs Write et Read. La fonction de résolution et sa table de transition (utilisation de l état InactiveReq de poids plus fort que ActiveReq) sont utilisées à profit pour marquer les éléments d un couple. Les primitives Send et Receive décrites en VHDL sont données ci-dessous. PROCEDURE receive( SIGNAL message : INOUT DefPortOut; information : OUT DefInformation; LinkReadTime : IN TIME; priority : IN NATURAL; date : IN TIME; --SIGNAL TaskState : INOUT DefState; RendezVous : IN BOOLEAN) IS VARIABLE TmpPortAccess : DefUPortOut; IF ((TaskState.state/=ExitNow) AND (message.protocol.status/=)) THEN TmpPortAccess.protocol:=DefProtocol'(priority,date,ActiveReq); message<=tmpportaccess; --IF RendezVous THEN BlockingTask(TaskState); -- WAIT UNTIL (message.protocol.status=) OR (TaskState.state=ExitNow) OR (message.protocol.status=taskblocked); IF ((message.protocol.status=taskblocked) AND (TaskState.state/=ExitNow)) THEN --IF NOT(RendezVous) THEN BlockingTask(TaskState); -- WAIT UNTIL (message.protocol.status=) OR (TaskState.state=ExitNow); IF (message.protocol.status=) THEN TmpPortAccess:=message; IF (LinkReadTime/=NullTime) THEN TmpPortAccess.ReadTime:=LinkReadTime; --ingtask(taskstate); IF (TmpPortAccess.ReadTime/=NullTime) THEN Delay(TmpPortAccess.ReadTime)--,TaskState); TmpPortAccess.protocol.status:=InactiveReq; message<=tmpportaccess; WAIT UNTIL message.protocol.status=inactivereq; TmpPortAccess:=message; TmpPortAccess.protocol.status:=InactiveAck; message<=tmpportaccess; WAIT UNTIL message.protocol.status=inactiveack; TmpPortAccess:=message; information:=tmpportaccess.information; ELSE message.protocol.status<=inactiveack; END receive; -- PROCEDURE send(information : IN DefInformation; SIGNAL message : INOUT DefPortIn; LinkWriteTime : IN TIME; priority : IN NATURAL; date : IN TIME; --SIGNAL TaskState : INOUT DefState; M.C.S.E 101
18 Chapitre 4 RendezVous : IN BOOLEAN) IS VARIABLE TmpPortAccess : DefUPortIn; IF (TaskState.state/=ExitNow) THEN TmpPortAccess.protocol:=DefProtocol'(priority,date,ActiveReq); message<=tmpportaccess; WAIT UNTIL (message.protocol.status=) OR (message.protocol.status=taskblocked) OR (TaskState.state=ExitNow); IF ((message.protocol.status=taskblocked) AND (TaskState.state/=ExitNow)) THEN --BlockingTask(TaskState); WAIT UNTIL (message.protocol.status=) OR (TaskState.state=ExitNow); IF (message.protocol.status=) THEN TmpPortAccess:=message; IF (LinkWriteTime/=NullTime) THEN TmpPortAccess.WriteTime:=LinkWriteTime; --ingtask(taskstate); IF (TmpPortAccess.WriteTime/=NullTime) THEN Delay(TmpPortAccess.WriteTime)--,TaskState); TmpPortAccess.information:=information; TmpPortAccess.protocol.status:=InactiveReq; message<=tmpportaccess; WAIT UNTIL message.protocol.status=inactivereq; --IF RendezVous THEN BlockingTask(TaskState); -- message.protocol.status<=inactiveack; WAIT UNTIL message.protocol.status=inactiveack; --IF RendezVous THEN ingtask(taskstate); -- END send; NOTA: les lignes indiquées en commentaires sont à considérer dans le cas du partage d une ressource limitée pour plusieurs fonctions. -D- Utilisation L emploi des procédures Send et Receive diffère selon qu il s agit d un accès 1->1, N->1 ou N-> M. Dans le premier cas, le signal assurant le protocole est utilisé comme nom du port. Dans le deuxième cas, comme n producteurs ou consommateurs peuvent accéder au même port, le signal assurant le protocole est un vecteur non contraint. L appelant doit alors donner son identité sous la forme de son indice dans le vecteur. La surcharge de procédure permet de disposer que d un seul nom de procédure Send ou Receive mais avec un nombre d arguments différent. Dans le troisième cas, comme les n producteurs peuvent accéder aux m éléments du vecteur de port, le signal assurant le protocole est un vecteur de vecteur. L appelant doit alors donner son identité et l indice du destinataire du message dans le vecteur de port. Comme VHDL ne permet pas de définir un vecteur non contraint d un vecteur non contraint et ne permet pas de définir des paramètres génériques au niveau d un package, la primitive d accès ne peut être défini qu au niveau de l entité. Ceci complique sérieusement la génération du modèle VHDL et sa lisibilité. En effet, la taille des vecteurs sera généralement définie avec un paramètre générique permettant de modifier facilement la dimension et la topologie du système. VHDL ne permet pas aussi de définir des types dynamiques ou record variant sur des signaux. Pour contourner cette limitation, deux solutions sont possibles: 102 M.C.S.E
19 Transcription du modèle de performance en VHDL - définir un type spécifique pour chaque type d élément de communication (solution (a) de la figure 4.5). Ceci oblige malheureusement à redéfinir les primitives d accès et l entité gérant l élément de relation pour chaque type d élément de relation. Cette solution a donc un impact négatif sur la complexité et le temps de génération du code. - regrouper en un seul record (solution (b) de la figure 4.5) les informations nécessaires (attributs) pour les transferts de tous les types de messages du système. Cette solution facilite la génération de code mais a probablement un impact négatif sur la durée de simulation. Les deux solutions sont expliquées par la figure ci-après. Prod[1:m] Send Port1 Receive Exec Send Port2[1:n] Receive Cons[1:n] Info1 Info2 Solution a TYPE DefInfo1 IS RECORD Size : Integer; Speed: Integer; END RECORD; TYPE DefUPortIn_Info1 IS RECORD Information: DefInfo1; WriteTime: TIME; Protocol: DefProtocol; END RECORD; TYPE DefUPortOut_Info1 IS RECORD Information: DefInfo1; ReadTime: TIME; Protocol: DefProtocol; END RECORD; PROCEDURE Send (Info1: IN DefInfo1; SIGNAL LinkIn: INOUT DefPortIn_Info1; LinkWriteTime: TIME); PROCEDURE Receive ( SIGNAL LinkOut: INOUT DefPortOut_Info1; Info1: OUT DefInfo1; LinkReadTime: TIME); TYPE DefInfo2 IS RECORD Id : Integer; Priority: Integer; END RECORD; TYPE DefUPortOut_Info2 IS RECORD Information: DefInfo2; ReadTime: TIME; Protocol: DefProtocol; END RECORD; TYPE DefUPortIn_Info2 IS RECORD Information: DefInfo2; WriteTime: TIME; Protocol: DefProtocol; END RECORD; PROCEDURE Send (Info2: IN DefInfo2; SIGNAL LinkIn: INOUT DefPortIn_Info2; LinkWriteTime: TIME); PROCEDURE Receive ( SIGNAL LinkOut: INOUT DefPortOut_Info2; Info2: OUT DefInfo2; LinkReadTime: TIME); Solution b Type DefInformation IS RECORD Size : Integer; Speed: Integer; Id : Integer; Priority: Integer; END RECORD; TYPE DefUPortOut IS RECORD Information: DefInformation; ReadTime: TIME; Protocol: DefProtocol; END RECORD; TYPE DefUPortIn IS RECORD Information: DefInformation; WriteTime: TIME; Protocol: DefProtocol; END RECORD; PROCEDURE Send (Info: IN DefInformation; SIGNAL LinkIn: INOUT DefPortIn; LinkWriteTime: TIME); PROCEDURE Receive ( SIGNAL LinkOut: INOUT DefPortOut; Info: OUT DefInformation; LinkReadTime: TIME); -Figure 4.5- Techniques de transfert d information par les procédures Send et Receive. M.C.S.E 103
20 Chapitre 4 Dans la solution a, un type est déclaré pour chaque type de messages transmis. Les types associés aux informations transmises sont ensuite englobés dans la déclaration d un record regroupant le type de l information, un champ utile pour surcharger les attributs temporels du port et le signal utilisé pour le protocole de communication. La séparation des types nécessite de déclarer une primitive d accès pour chaque type d information. Dans la solution b, tous les types (attributs) associés aux ports de communication du système sont regroupés dans un seul record (DefInformation). Ainsi, la déclaration des types des signaux de connexion entre les éléments de relation et les composants actifs et celle des primitives d accès ne dépendent plus directement du type de l information transmise et sont uniques. Le générateur de code VHDL se contente alors simplement de mettre à jour le contenu du record DefInformation Transcription d un événement Une relation de transfert d'information sous-entend une dépendance temporelle avec échange de donnée. Comme une relation de synchronisation (événement, signal) exprime une dépendance temporelle sans échange de donnée, la transcription d une synchronisation est à rapprocher de celle d un transfert d information mais sans le champ information. L attribut Policy permet de choisir plusieurs modes de synchronisation: booléen et donc avec mémorisation, comptage d événement, fugitif et donc sans mémorisation. Cependant contrairement au port, pour les fonctions en attente sur un événement, c est le principe de la diffusion (et non la gestion des accès selon une priorité) qui a été retenu. Ceci signifie par exemple pour un événement du type Counter que la valeur du compteur correspond au nombre d activation des fonctions en attente et non pas au nombre de fonctions en attente activables (l événement du type Counter de MCSE n a pas la même signification que la notion de sémaphore rencontrée dans les exécutifs temps-réels). Pour un événement du type fugace, il n y a exploitation de l événement que s il y a au moins un récepteur de l événement en attente. L implantation en VHDL ne pose aucune difficulté et découle directement de ce qui a été fait pour les ports. Le principe d implantation d un événement est schématisé par la figure 4.6. La figure 4.6-a représente la structure fonctionnelle constituée des fonctions Prod et User reliées par l événement Ev. Les attributs Write et Read sur les liens entre les fonctions et l événement surchargent dynamiquement les attributs Write et Read de Ev. La structure de l implantation en VHDL est décrite par la figure 4.6-b. Les fonctions Prod et User sont implantées sous la forme d une entité dont les entrées/sorties sont composées du signal States (ressource d exécution limitée) et du signal EvIn (respectivement EvOut) pour la synchronisation. Les signaux EvIn et EvOut ne sont composés que du champ Status utilisé pour le protocole de communication en 4 phases. L événement est modélisé par un composant. Les paramètres génériques de ce composant sont les attributs associés habituellement à un événement ( Policy, Write, Read, Concurrency). Le comportement de l entité Ev qui est passive par rapport à la ressource d exécution est décrit par deux automates (figure 4.6-c). Lorsqu un producteur désire émettre un événement, il fait appel à la procédure SignalEv (à gauche de la figure). Cette procédure signale son état actif au port par ActiveReq. Si l événement est en mesure de mémoriser l occurrence d un événement (degré de concurrence non atteint), il répond immédiatement par, sinon la fonction Prod (tâche) passe à l état Blocked et la ressource d exécution devient disponible 104 M.C.S.E
Génie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
Plus en détailProcessus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace
Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement
Plus en détailOrdonnancement temps réel
Ordonnancement temps réel Laurent.Pautet@enst.fr Version 1.5 Problématique de l ordonnancement temps réel En fonctionnement normal, respecter les contraintes temporelles spécifiées par toutes les tâches
Plus en détailLe langage VHDL. Eduardo Sanchez EPFL
Le langage VHDL Eduardo Sanchez EPFL Livres conseillés: John F. Wakerly Digital design (4th edition) Prentice Hall, 2005 Peter J. Ashenden The designer's guide to VHDL (3rd edition) Morgan Kaufmann, 2008
Plus en détailNom de l application
Ministère de l Enseignement Supérieur et de la Recherche Scientifique Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Gafsa Département Technologies de l Informatique
Plus en détailInformatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction
Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d
Plus en détailREALISATION d'un. ORDONNANCEUR à ECHEANCES
REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6
Plus en détailT. BLOTIN Lycée Paul-Eluard 93206 SAINT-DENIS
T. BLOTIN Lycée Paul-Eluard 93206 SAINT-DENIS SOMMAIRE I. Le VHDL pour qui, pourquoi, quand, comment? A. Le VHDL!...... 1 B. Pourquoi un langage de description?...... 1 C. Les limites actuelles...... 2
Plus en détail3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes
PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason
Plus en détailLes diagrammes de modélisation
L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse
Plus en détailUML et les Bases de Données
CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..
Plus en détailMODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»
MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» Du cours Modélisation Semi -Formelle de Système d Information Du Professeur Jean-Pierre GIRAUDIN Décembre. 2002 1 Table de matière Partie 1...2 1.1
Plus en détailÉvaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Plus en détailLES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN
LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas
Plus en détailConception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
Plus en détailJulien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration
Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...
Plus en détailMEAD : temps réel et tolérance aux pannes pour CORBA
MEAD : un intergiciel temps-réel et tolérant aux pannes pour CORBA Master 2 Informatique Recherche Université de Marne-la-Vallée Vendredi 3 mars 2006 Plan 1 Introduction 2 Solutions existantes 3 Concilier
Plus en détailIntroduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr
Introduction aux systèmes temps réel Iulian Ober IRIT ober@iut-blagnac.fr Définition Systèmes dont la correction ne dépend pas seulement des valeurs des résultats produits mais également des délais dans
Plus en détailEvaluation des performances de programmes parallèles haut niveau à base de squelettes
Evaluation des performances de programmes parallèles haut niveau à base de squelettes Enhancing the Performance Predictability of Grid Applications with Patterns and Process Algebras A. Benoit, M. Cole,
Plus en détailIFT2255 : Génie logiciel
IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti
Plus en détailCorrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
Plus en détailProjet Active Object
Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques
Plus en détailMétriques de performance pour les algorithmes et programmes parallèles
Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and
Plus en détailSciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION
Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information
Plus en détail4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailNIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE
NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE Une application se construit par étapes 1) CAHIER DES CHARGES + ANALYSE FONCTIONNELLE = organisation fonctionnelle (QUE FAIRE) 2) ANALYSE OPERATIONNELLE
Plus en détailLES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION
LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION DES NOMBRES par Jean-Luc BREGEON professeur formateur à l IUFM d Auvergne LE PROBLÈME DE LA REPRÉSENTATION DES NOMBRES On ne conçoit pas un premier enseignement
Plus en détailChapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping
Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager
Plus en détailChapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailAnalyse,, Conception des Systèmes Informatiques
Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance
Plus en détailIntroduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
Plus en détailCours Informatique Master STEP
Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions
Plus en détailIntroduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Plus en détailCycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language
Unified Modeling Language UML Salima Hassas Version Cycle de vie du logiciel Client Besoins Déploiement Analyse Test Conception Cours sur la base des transparents de : Gioavanna Di Marzo Serugendo et Frédéric
Plus en détailEnseignement secondaire technique
Enseignement secondaire technique Régime technique Division technique générale Cycle moyen Informatique 11TG Nombre de leçons: 2.0 Nombre minimal de devoirs: - Langue véhiculaire: / Remarque générale:
Plus en détailEléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)
Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 - Evénements et architectures - Spécifications de performances
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailDate: 22/10/12 www.sugarpshop.fr Version: 3.2
Date: 22/10/2012 contact@sugarpshop.fr Page 1 / 16 Table des matières 1 SUGARPSHOP : SCHEMA... 3 2 QUE VOUS APPORTE L INTERFACE SUGARPSHOP?... 4 3 DESCRIPTION FONCTIONNELLE GENERALE... 5 4 MODULE DE DEMANDE
Plus en détailConcept de machine virtuelle
Concept de machine virtuelle Chap. 5: Machine virtuelle Alain Sandoz Semestre été 2007 1 Introduction: Java Virtual Machine Machine Virtuelle Java: qu est-ce que c est? c est la spécification d une machine
Plus en détailNetwork musical jammin
Network musical jammin Projet PC2R - 2015 Pour ce projet, nous allons réaliser une application permettant d effectuer des jams sessions en temps-réel entre des musiciens répartis à travers le monde. Le
Plus en détailInstitut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Plus en détailmodèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets
modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets Mengxuan Zhao, Gilles Privat, Orange Labs, Grenoble, France Eric Rutten, INRIA, Grenoble, France Hassane
Plus en détailUniversité de Bangui. Modélisons en UML
Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et
Plus en détailNFP111 Systèmes et Applications Réparties
NFP111 Systèmes et Applications Réparties 1 de 34 NFP111 Systèmes et Applications Réparties Cours 7 - CORBA/Partie 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon
Plus en détailRapport d activité. Mathieu Souchaud Juin 2007
Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix
Plus en détailLangage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL
Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions
Plus en détailAlgorithmique des Systèmes Répartis Protocoles de Communications
Algorithmique des Systèmes Répartis Protocoles de Communications Master Informatique Dominique Méry Université de Lorraine 1 er avril 2014 1 / 70 Plan Communications entre processus Observation et modélisation
Plus en détail//////////////////////////////////////////////////////////////////// Administration bases de données
////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données
Plus en détailCours de Génie Logiciel
Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes
Plus en détailPlan du cours 2014-2015. Cours théoriques. 29 septembre 2014
numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour
Plus en détailChapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
Plus en détailVers l'orchestration de grilles de PC par les mécanismes de publicationsouscription
Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription Présentée par Leila Abidi Sous la direction de Mohamed Jemni & Christophe Cérin Plan Contexte Problématique Objectifs
Plus en détailHaka : un langage orienté réseaux et sécurité
Haka : un langage orienté réseaux et sécurité Kevin Denis, Paul Fariello, Pierre Sylvain Desse et Mehdi Talbi kdenis@arkoon.net pfariello@arkoon.net psdesse@arkoon.net mtalbi@arkoon.net Arkoon Network
Plus en détailPROGRAMMATION EVENEMENTIELLE sur EXCEL
MASTERs SMaRT & GSI PROGRAMMATION EVENEMENTIELLE sur EXCEL Pierre BONNET Programmation évènementielle La programmation évènementielle permet un appel de procédure depuis l'interface HMI d'excel (ou d'un
Plus en détailCours Base de données relationnelles. M. Boughanem, IUP STRI
Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),
Plus en détailWEBVIEW. Serveur Web embarqué dans DIRIS G NOTICE D UTILISATION. www.socomec.com. http://www.socomec. com/webview_ software
NOTICE D UTILISATION WEBVIEW Serveur Web embarqué dans DIRIS G FR http://www.socomec. com/webview_ software www.socomec.com FR SOMMAIRE 1. DOCUMENTATION...3 2. OPÉRATIONS PRÉALABLES...3 3. PRÉSENTATION...3
Plus en détailAlgorithmique et programmation : les bases (VBA) Corrigé
PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi
Plus en détailLes BRMS Business Rules Management System. Groupe GENITECH
Les BRMS Business Rules Management System 1 Présentations Emmanuel Bonnet ebonnet (at) genigraph.fr Responsable Dpt Conseil Consultant, Expert BRMS Formateur IBM/Ilog JRules / JBoss Rules Génigraph SSII
Plus en détailExpression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailCours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailSugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009
SugarCubes Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués Paris, le 9 janvier, 2009 Plan 2 Les SugarCubes au dessus de J2ME Quelques résultats expérimentaux Les
Plus en détailRAPPORT DE CONCEPTION UML :
Carlo Abi Chahine Sylvain Archenault Yves Houpert Martine Wang RAPPORT DE CONCEPTION UML : Bamboo Ch@t Projet GM4 Juin 2006 Table des matières 1 Introduction 2 2 Présentation du logiciel 3 2.1 Précisions
Plus en détailTUTORIEL Qualit Eval. Introduction :
TUTORIEL Qualit Eval Introduction : Qualit Eval est à la fois un logiciel et un référentiel d évaluation de la qualité des prestations en établissements pour Personnes Agées. Notre outil a été spécifiquement
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailAvis n 94-02 sur la méthodologie relative aux comptes combinés METHODOLOGIE RELATIVE AUX COMPTES COMBINES
CONSEIL NATIONAL DE LA COMPTABILITÉ Avis n 94-02 sur la méthodologie relative aux comptes combinés Le Conseil national de la comptabilité réuni en formation de Section des entreprises le 28 octobre 1994,
Plus en détailUML (Diagramme de classes) Unified Modeling Language
UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association
Plus en détailAlgorithmique & programmation
Algorithmique & programmation Type structuré Article, Enregistrement, Structure Définition de nouveaux types!! On a vu les types simples "! entier, booléen, caractère, chaîne de caractères!! Comment gérer
Plus en détailDEMANDE D INFORMATION RFI (Request for information)
DOD SEICAM RFI Demande d information EVDEC Réf. : RFI_EVDEC- GT5_Outil_reporting_BI_v4.doc Page 1/11 DEMANDE D INFORMATION RFI (Request for information) OUTIL INTÉGRÉ DE REPORTING ET D ANALYSE DÉCISIONNELLE
Plus en détailLES FONCTIONS DE SURVEILLANCE DES FICHIERS
SYSLOG and APPLICATION LOGS Knowledge Module for PATROL - Data Sheet Version 1.5 Développé par http://www.axivia.com/ PRESENTATION DU PRODUIT SYSLOG and APPLICATION LOGS Knowledge Module for PATROL est
Plus en détailbasée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
Plus en détailDiagrammes de Package, de déploiement et de composants UML
labsticc.univ-brest.fr/pages_perso/babau/ Diagrammes de Package, de déploiement et de composants UML Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Description
Plus en détailDAns un système multi-utilisateurs à temps partagé, plusieurs processus
Chapitre 8 Ordonnancement des processus Dns un système multi-utilisateurs à temps partagé, plusieurs processus peuvent être présents en mémoire centrale en attente d exécution. Si plusieurs processus sont
Plus en détailL apprentissage automatique
L apprentissage automatique L apprentissage automatique L'apprentissage automatique fait référence au développement, à l analyse et à l implémentation de méthodes qui permettent à une machine d évoluer
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailObjectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui
Formation PARTIE 1 : ARCHITECTURE APPLICATIVE DUREE : 5 h Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui automatisent les fonctions Définir une architecture
Plus en détailSystème à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0
Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive Sommaire - Le Robot M.I.M.I. (Multipode Intelligent à Mobilité Interactive) - Présentation du Système à Enseigner. - Composition
Plus en détailUtilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008
Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application
Plus en détailARDUINO DOSSIER RESSOURCE POUR LA CLASSE
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée
Plus en détailSujet de thèse CIFRE RESULIS / LGI2P
Ecole des Mines d Alès Laboratoire de Génie Informatique et d Ingénierie de Production LGI2P Nîmes Sujet de thèse CIFRE RESULIS / LGI2P Titre Domaine De l ingénierie des besoins à l ingénierie des exigences
Plus en détailSOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique
SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des
Plus en détailTP N 57. Déploiement et renouvellement d une constellation de satellites
TP N 57 Déploiement et renouvellement d une constellation de satellites L objet de ce TP est d optimiser la stratégie de déploiement et de renouvellement d une constellation de satellites ainsi que les
Plus en détailSYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM
SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM Copyright TECH 2012 Technext - 8, avenue Saint Jean - 06400 CANNES Société - TECHNEXT France - Tel : (+ 33) 6 09 87 62 92 - Fax :
Plus en détailIntroduction à la programmation concurrente
Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under
Plus en détailChapitre 3 - VODEL, un langage de description d architectures logicielles statiques et dynamiques
Chapitre 3 - VODEL, un langage de description d architectures logicielles statiques et dynamiques «Examine soigneusement chaque voie. Essaye aussi souvent que tu le crois nécessaire. Puis pose toi la seule
Plus en détailMaster MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier
Master MIDO 2ème année Spécification et Conception en UML Maude Manouvrier Spécifications initiales Analyse Conception du système Conception des classes Bibliographie Modélisation et conception orientées
Plus en détailArchitecture d'entreprise : Guide Pratique de l'architecture Logique
Guides Pratiques Objecteering Architecture d'entreprise : Guide Pratique de l'architecture Logique Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam
Plus en détailArbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
Plus en détailPrincipes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Plus en détail1 Description générale de VISFIELD
Guide d utilisation du logiciel VISFIELD Yann FRAIGNEAU LIMSI-CNRS, Bâtiment 508, BP 133 F-91403 Orsay cedex, France 11 décembre 2012 1 Description générale de VISFIELD VISFIELD est un programme écrit
Plus en détailNom-Projet MODELE PLAN DE MANAGEMENT DE PROJET
Nom-Projet MODELE PLAN DE MANAGEMENT DE PROJET Glossaire La terminologie propre au projet, ainsi que les abréviations et sigles utilisés sont définis dans le Glossaire. Approbation Décision formelle, donnée
Plus en détailCLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280
FR9704668 PC CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES Jean GASSINO, Jean-Yves HENRY eci Rapport IPSN/Département d'évaluation de sûreté N 280 Octobre 1996 INSTITUT DE PROTECTION
Plus en détailProgrammation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006
vendredi 8 septembre 2006 Programmation d'agents intelligents Vers une refonte des fils de raisonnement Stage de fin d'études Master IAD 2006 Benjamin DEVEZE Responsable : M. Patrick TAILLIBERT Plan Plan
Plus en détailLES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
Plus en détailWindows Internet Name Service (WINS)
Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2
Plus en détail