Vous êtes sur la page 1sur 57
Introduction Introduction aux aux systèmes systèmes temps temps réel réel 1 1 Samia Bouzefrane Maître

Introduction Introduction aux aux systèmes systèmes temps temps réel réel

11

Samia Bouzefrane

Maître de Conférences

CEDRIC –CNAM

samia.bouzefrane@cnam.fr

http://cedric.cnam.fr/~bouzefra

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Sommaire Sommaire 1. Définitions 2. Exemples d’applications temps réel 3. Caractéristiques d’une application temps

Sommaire Sommaire

Sommaire Sommaire 1. Définitions 2. Exemples d’applications temps réel 3. Caractéristiques d’une application temps

1. Définitions

2. Exemples d’applications temps réel

3. Caractéristiques d’une application temps réel

4. Cycle de vie d’une application temps réel

5. Méthodes de spécification et de conception

6. Langages pour le temps réel

7. Le choix d’un exécutif temps réel

8. Conclusion

22

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Définitions Définitions • Un système temps réel est un système (application ou ensemble d’applications)

Définitions Définitions

Définitions Définitions • Un système temps réel est un système (application ou ensemble d’applications)

Un système temps réel est un système (application ou ensemble d’applications) informatique dont le fonctionnement est assujetti à l’évolution dynamique d’un procédé extérieur qui lui est connecté et dont il doit contrôler le comportement.

•La correction d’un système temps réel dépend non seulement de la justesse des calculs mais aussi du temps auquel les résultats sont produits [Stankovic 1988] (contraintes temporelles).

•Un système temps réel n’est pas un système « qui va vite / rapide» mais un système qui satisfait des contraintes temporelles (les contraintes de temps dépendent de l’application et de l’environnement alors que la rapidité dépend de la technologie utilisée, celle du processeur par exemple).

33

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Définitions Définitions • Un système embarqué ( embedded system ou système enfoui ) est un

Définitions Définitions

Définitions Définitions • Un système embarqué ( embedded system ou système enfoui ) est un système

Un système embarqué (embedded system ou système enfoui) est un système informatique dans lequel le processeur/calculateur est englobé dans un système plus large et où le logiciel est entièrement dédié à une application donnée. Ex. sonde spatiale, terminal GSM, carte à puce

•Les ressources utilisées pour mener à bien les calculs sont en nombre limité (contraintes matérielles).

•Intervention humaine directe difficile voire impossible.

44

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Exemples Exemples de de grandeur grandeur des des contraintes contraintes temporelles temporelles -La

Exemples Exemples de de grandeur grandeur des des contraintes contraintes temporelles temporelles

des des contraintes contraintes temporelles temporelles -La milliseconde pour les systèmes de radar -La seconde
des des contraintes contraintes temporelles temporelles -La milliseconde pour les systèmes de radar -La seconde

-La milliseconde pour les systèmes de radar

-La seconde pour les systèmes de visualisation humaine

-Quelques heures pour le contrôle de production impliquant des réactions chimiques

-24 heures pour les prévisions météo.

-Plusieurs mois ou années pour les systèmes de navigation de sonde spatiale.

55

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Classification Classification • Temps réel dur ou critique (hard real-time) : le non respect des

Classification Classification

Classification Classification • Temps réel dur ou critique (hard real-time) : le non respect des contraintes

Temps réel dur ou critique (hard real-time): le non respect des contraintes temporelles entraîne la faute du système. Ex.: contrôle de trafic aérien, système de conduite de missile, etc.

Temps réel souple (soft real-time): le respect des échéances est important mais le non respect des échéances ne peut occasionner de graves conséquences. Ex.: projection vidéo (décalage entre le son et l’image). Ex.: un robot qui capte des infos sur des objets défilant sur un convoyeur [Duvallet et al. 1999].

Temps réel ferme (firm real-time): temps réel souple avec le manquement occasionnel des échéances. Ex.: projection vidéo (perte de quelques trames d’images).

66

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Commandes opérateurs 7 7 Boucle Boucle ouverte ouverte Traitements Actions sur le procédé samia.bouzefrane@cnam.fr -

Commandes

opérateurs

77

Boucle Boucle ouverte ouverte

Commandes opérateurs 7 7 Boucle Boucle ouverte ouverte Traitements Actions sur le procédé samia.bouzefrane@cnam.fr -

Traitements

Actions sur le procédé

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

8 8 Points de consigne Boucle Boucle fermée fermée Programme de contrôle capteurs données actionneurs

88

Points de

consigne

Boucle Boucle fermée fermée

8 8 Points de consigne Boucle Boucle fermée fermée Programme de contrôle capteurs données actionneurs commandes
8 8 Points de consigne Boucle Boucle fermée fermée Programme de contrôle capteurs données actionneurs commandes

Programme de contrôle

capteurs
capteurs

capteurs

données

actionneurs
actionneurs
actionneurs

actionneurs

actionneurs

commandes

Automate

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Caractéristiques Caractéristiques du du temps temps réel réel • Taille et complexité -Un système temps

Caractéristiques Caractéristiques du du temps temps réel réel

Caractéristiques du du temps temps réel réel • Taille et complexité -Un système temps réel

Taille et complexité -Un système temps réel interagit avec un environnement extérieur souvent complexe et en évolution -Il doit respecter des échéances temporelles, garantir une fiabilité permanente -Il doit pouvoir interagir avec différents types d’éléments matériels.

Implémentation efficace: restrictions dans l’utilisation des constructions du langage

Certification: garantir un fonctionnement conforme aux spécifications

Simulation, prototypage: vérification a priori de la conception

Plate-formes d’essai: vérification a posteriori du bon fonctionnement

99

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Exemples Exemples d’applications d’applications temps temps réel réel 10 10 samia.bouzefrane@cnam.fr - CEDRIC

Exemples Exemples d’applications d’applications temps temps réel réel

1010

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

11 11 Un Un système système embarqué/temps embarqué/temps réel réel console interface interface capteur c

1111

Un Un système système embarqué/temps embarqué/temps réel réel

système embarqué/temps embarqué/temps réel réel console interface interface capteur c a p t e u r

console

interface

interface

capteur c a p t e u r
capteur c a p t e u r
capteur

capteur

capteur c a p t e u r
capteur c a p t e u r
capteur c a p t e u r
c a p t e u r

capteur

capteur c a p t e u r
capteur c a p t e u r
capteur c a p t e u r

capteur

interface

Calculateur

Unité de stockage de données

actionneur

actionneur

actionneur

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Un Un système système embarqué/temps embarqué/temps réel réel O b s e r v a

Un Un système système embarqué/temps embarqué/temps réel réel

système embarqué/temps embarqué/temps réel réel O b s e r v a ti o n s
O b s e r v a ti o n s P r o c
O b s e r v a ti o n s
P r o c é d é
S y s t è m e
i n f o r m a t iq u e
m e s u r e s
d e
c o n t r ô l e
é q u i p e m e n t s
é
l é m e n ta i r e s
a u to m a t e
é
v é n e m e n ts
p r o c é d é
c o m p l e x e
m
o n o p r o c e s s e u r
c
o m m a n d e s
e n s e m b l e
m
u l t i- p r o c e s s e u r
d
'é q u i p e m e n t s
r é s e a u
l o c a l
a f f ic h a g e s
A
c t i o n s

1212

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Exemple Exemple 1: 1: domaine domaine de de l’avionique l’avionique • Système temps réel critique

Exemple Exemple 1: 1: domaine domaine de de l’avionique l’avionique

1: domaine domaine de de l’avionique l’avionique • Système temps réel critique : -Contraintes
1: domaine domaine de de l’avionique l’avionique • Système temps réel critique : -Contraintes

Système temps réel critique:

-Contraintes temporelles: échéance, temps de réaction, etc.

-Utilisation de redondance matérielle et logicielle

-Matériel et logiciel dédiés

-Système fermé, validé a priori

-Système réparti synchrone: commandes de vol, radars, moteurs, etc.

1313

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Exemple Exemple 1: 1: domaine domaine de de l’avionique l’avionique • Dans un Airbus A340

Exemple Exemple 1: 1: domaine domaine de de l’avionique l’avionique

1: domaine domaine de de l’avionique l’avionique • Dans un Airbus A340 [Boniol 1998]: Il y
1: domaine domaine de de l’avionique l’avionique • Dans un Airbus A340 [Boniol 1998]: Il y

Dans un Airbus A340 [Boniol 1998]:

Il y a 115 équipements avec :

- 3 calculateurs qui élaborent les paramètres inertiels

- 2 calculateurs qui implémentent les lois de guidage

- 5 calculateurs qui implémentent les lois de pilotage

- 2 calculateurs d’alarmes, etc.

- Environ 200 000 données sont échangées

1414

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Exemple Exemple 2: 2: multimédia multimédia sur sur le le Web Web • Système temps

Exemple Exemple 2: 2: multimédia multimédia sur sur le le Web Web

2: 2: multimédia multimédia sur sur le le Web Web • Système temps réel souple :

Système temps réel souple:

-Contraintes temporelles: gigue, délais de bout en bout, temps de réponse, etc.

-Synchronisations: intra et inter-flux

-Plateforme généraliste (ex. PC + Windows)

-Application interactive

-Débits variables et difficiles à estimer hors ligne.

-Débits variables et difficiles à estimer hors ligne. 15 15 processeur réseau processeur samia.bouzefrane@cnam.fr

1515

processeur

réseau

processeur

et difficiles à estimer hors ligne. 15 15 processeur réseau processeur samia.bouzefrane@cnam.fr - CEDRIC ( CNAM)

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Exemple Exemple 3: 3: Péage Péage au au centre centre de de Londres Londres 16

Exemple Exemple 3: 3: Péage Péage au au centre centre de de Londres Londres

3: 3: Péage Péage au au centre centre de de Londres Londres 16 16 samia.bouzefrane@cnam.fr -
3: 3: Péage Péage au au centre centre de de Londres Londres 16 16 samia.bouzefrane@cnam.fr -

1616

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Autres Autres exemples exemples d’application d’application - Transports (métro, aérospatiale, automobiles,

Autres Autres exemples exemples d’application d’application

Autres exemples exemples d’application d’application - Transports (métro, aérospatiale, automobiles, etc.). -

-Transports (métro, aérospatiale, automobiles, etc.).

-Médias (décodeurs numériques).

-Services téléphoniques (terminal GSM, auto-commutateur).

-Supervision médicale.

-Systèmes de production industrielle : centrale nucléaire, chaîne de montage, usine chimique, etc.

-Robotique (ex. PathFinder: sonde lancée par la NASA en mars 1996, composée d'une station au sol et d'un robot mobile Sojourner ).

1717

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Caractéristiques Caractéristiques des des applications applications temps temps réel réel 18 18

Caractéristiques Caractéristiques des des applications applications temps temps réel réel

1818

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Utilisation Utilisation du du temps temps concret concret • Au sein d'une application ou d'un

Utilisation Utilisation du du temps temps concret concret

Utilisation du du temps temps concret concret • Au sein d'une application ou d'un système temps

Au sein d'une application ou d'un système temps réel, il faut pouvoir manipuler le temps concret (horloge)

Le temps réel (ou temps concret) sera utilisé de plusieurs façons:

– Soit en définissant la date à laquelle une action doit être commencée

– Soit en définissant la date à laquelle une action doit être finie

Il peut être nécessaire de pouvoir modifier ces paramètres en cours d'exécution et de pouvoir préciser les actions à prendre en cas de faute temporelle

1919

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Découpage Découpage en en tâches tâches • Dans le monde réel, l'environnement du système temps

Découpage Découpage en en tâches tâches

Découpage Découpage en en tâches tâches • Dans le monde réel, l'environnement du système temps réel

Dans le monde réel, l'environnement du système temps réel peut consister en plusieurs actions qui évoluent simultanément (en parallèle ou en concurrence).

Pour réduire la complexité de conception et calquer fidèlement la réalité, il faut utiliser la programmation concurrente :

– utiliser un modèle de tâches ou processus concurrents.

– utiliser des moyens de communication et de synchronisation inter-tâches

ou inter-process (mémoire partagée, boîtes aux lettres, files de messages,

moniteurs, etc.).

2020

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Respect Respect des des contraintes contraintes temporelles temporelles • La limitation des ressources (en

Respect Respect des des contraintes contraintes temporelles temporelles

des des contraintes contraintes temporelles temporelles • La limitation des ressources (en particulier du
des des contraintes contraintes temporelles temporelles • La limitation des ressources (en particulier du

La limitation des ressources (en particulier du processeur) conduit à bloquer des processus (ils ne peuvent progresser du fait du manque de ressource)

Afin de respecter en permanence les échéances, il faut gérer efficacement

la pénurie et tenter de favoriser les processus dont l'avancement est le plus « urgent »

Un ordonnancement consiste à définir un ordre sur l'utilisation des ressources du système afin de respecter les échéances.

2121

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Ordonnancement Ordonnancement • On appelle ordonnanceur (scheduler), le processus système qui gère

Ordonnancement Ordonnancement

Ordonnancement Ordonnancement • On appelle ordonnanceur (scheduler), le processus système qui gère

On appelle ordonnanceur (scheduler), le processus système qui gère l'ordonnancement des processus (tâches)

Un algorithme d'ordonnancement est une méthode ou stratégie utilisée pour ordonnancer les processus (tâches)

Un tel algorithme s'appuie sur la connaissance de certaines caractéristiques des processus (tâches) ou du système

– processus (tâches) périodiques ou apériodiques;

– préemption possible ou non;

– échéance et pire temps d'exécution des processus (tâches)

– système à priorité fixe ou à échéance etc.

2222

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Algorithmes Algorithmes d’ordonnancement d’ordonnancement • Deux algorithmes classiques d'ordonnancement –

Algorithmes Algorithmes d’ordonnancement d’ordonnancement

Algorithmes d’ordonnancement d’ordonnancement • Deux algorithmes classiques d'ordonnancement – RM
Algorithmes d’ordonnancement d’ordonnancement • Deux algorithmes classiques d'ordonnancement – RM

Deux algorithmes classiques d'ordonnancement

– RM (Rate Monotonic) : algorithme à priorité fixe pour tâches

périodiques (la tâche la plus prioritaire est celle de plus petite période)

– EDF (Earlest Deadline First) : algorithme à priorité dynamique pour

tâches périodiques (la tâche la plus prioritaire est celle de plus petite échéance)

L'ordonnanceur choisit d'exécuter la tâche prête de plus haute priorité

Au sein d'une même classe de priorité, le choix peut se faire par temps partagé (Round Robin) ou par ancienneté (gestion FIFO)

2323

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Cycle Cycle de de vie vie d’une d’une application application temps temps réel réel 24

Cycle Cycle de de vie vie d’une d’une application application temps temps réel réel

2424

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Génie Génie logiciel logiciel et et temps temps réel/1 réel/1 • Génie logiciel = méthodes,

Génie Génie logiciel logiciel et et temps temps réel/1 réel/1

logiciel logiciel et et temps temps réel/1 réel/1 • Génie logiciel = méthodes, modèles et ateliers

Génie logiciel = méthodes, modèles et ateliers pour la conception mais aussi pour maîtriser la qualité des produits, leur coût et le respect des délais.

Spécificités des applications temps réel

- Concurrentes et synchronisées

- Manipulation du temps

- Coût de développement très lourd (validation temporelle et logique, applications peu flexibles)

- Maintenance souvent impossible (terminal GSM, sonde spatiale)

- Conséquences tragiques (vies humaines, faillites économiques)

Utilisation de méthodes, outils (adaptés aux spécificités du temps réel) qui

facilitent la conception et le développement.

2525

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Génie Génie logiciel logiciel et et temps temps réel/2 réel/2 Spécification du logiciel Conception du
Génie Génie logiciel logiciel et et temps temps réel/2 réel/2 Spécification du logiciel Conception du
Génie Génie logiciel logiciel et et temps temps réel/2 réel/2
Génie Génie logiciel logiciel et et temps temps réel/2 réel/2

Spécification

du logiciel

Conception

du logiciel

Codage/réalisation du logiciel

Validation du

logiciel

Tests unitaires et intégration du logiciel

•Spécification=quoi faire?

•Notions de méthodes, modèles et outils •Couverture partielle ou totale du cycle. Cela dépend du domaine applicatif

Conception= comment faire?

2626

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Méthodes Méthodes de de développement/1 développement/1 • Méthodes fonctionnelles structurées - SA_RT :

Méthodes Méthodes de de développement/1 développement/1

Méthodes de de développement/1 développement/1 • Méthodes fonctionnelles structurées - SA_RT :
Méthodes de de développement/1 développement/1 • Méthodes fonctionnelles structurées - SA_RT :

Méthodes fonctionnelles structurées

- SA_RT : Structured Analysis Real Time [Pirbhai-Hatley 1986]

- DARTS : Design Approach for Real-Time Systems [Gomaa 1984) ]

- SDL : Specification and Description Language [CCITT 1988] etc.

Méthodes orientées objet

- UML : Unified Modeling Language [OMG 1995]

- HOOD : Hierarchical Object Oriented Design [CRI-Cisi 1987]

Méthodes orientées composant

- KOALA : technologie composant développée par Philips pour la conception de composants électroniques grand public [Ommering et al. 2002]

2727

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

28 28 SA-RT UML Méthodes Méthodes de de développement/2 développement/2 Spécification du logiciel Conception

2828

SA-RT

UML

Méthodes Méthodes de de développement/2 développement/2

Méthodes de de développement/2 développement/2 Spécification du logiciel Conception du logiciel DARTS
Méthodes de de développement/2 développement/2 Spécification du logiciel Conception du logiciel DARTS

Spécification

du logiciel

Conception

du logiciel

DARTS

HOOD

Codage/réalisation du logiciel

Validation du

logiciel

Tests unitaires et intégration du logiciel

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Exemples Exemples industriels industriels • Programme Spot4 (Matra Marconi Space/CNES) - satellite destiné à
Exemples Exemples industriels industriels • Programme Spot4 (Matra Marconi Space/CNES) - satellite destiné à
Exemples Exemples industriels industriels
Exemples Exemples industriels industriels

Programme Spot4 (Matra Marconi Space/CNES)

- satellite destiné à l’observation de la terre (météorologie, environnement, etc.)

- Spécification et conception: HOOD

- langages : Ada, Assembleur

Programme SENIT8 (Dassault Électronique /DCN-Ingénierie)

- équipements de gestion et contrôle commande du porte-avions Charles de Gaulle

- Spécification et conception: SART et Ada-Buhr (proche de DARTS)

- langages : Ada, C

Programme Rafale (Dassault Électronique): avion militaire

- Spécification et conception: SART et OMT

- langages : Ada

2929

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Méthodes Méthodes de de spécification spécification et et de de conception conception 30 30

Méthodes Méthodes de de spécification spécification et et de de conception conception

3030

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Spécifier: Spécifier: la la méthode méthode SART SART • SART = Structured Analysis Real Time

Spécifier: Spécifier: la la méthode méthode SART SART

Spécifier: la la méthode méthode SART SART • SART = Structured Analysis Real Time spécification du

SART = Structured Analysis Real Time spécification du logiciel

Une spécification est constituée de :

- Dictionnaire de données

- Graphes de flots de données étendus par la notion d’événements

- Diagrammes état-transition pour l’aspect dynamique du système

3131

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

La La méthode méthode SART SART : : récapitulation récapitulation Figure p.55 de [Cottet &

La La méthode méthode SART SART : : récapitulation récapitulation

méthode SART SART : : récapitulation récapitulation Figure p.55 de [Cottet & Grolleau 2005] 32 32
méthode SART SART : : récapitulation récapitulation Figure p.55 de [Cottet & Grolleau 2005] 32 32

Figure p.55 de [Cottet & Grolleau 2005]

3232

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Concevoir: Concevoir: la la méthode méthode HOOD HOOD HOOD = Hierarchical Object Oriented Design (projet

Concevoir: Concevoir: la la méthode méthode HOOD HOOD

Concevoir: la la méthode méthode HOOD HOOD HOOD = Hierarchical Object Oriented Design (projet ESA

HOOD = Hierarchical Object Oriented Design (projet ESA (européen) vise à définir une méthode de conception pour des applications spatiales ) - spécification préliminaire et détaillée du logiciel

- 1987: CRI,CISI Ingéniérie, MATRA => HOOD 2.0 Reference Manual

- 1989 : HOOD 3.0 ref. manual

- Exemple : STOOD de la société TNI

3333

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

HOOD HOOD en en quelques quelques mots mots • Objet: unité de modularité - encapsule
HOOD HOOD en en quelques quelques mots mots • Objet: unité de modularité - encapsule
HOOD HOOD en en quelques quelques mots mots
HOOD HOOD en en quelques quelques mots mots

Objet: unité de modularité

- encapsule données et opérations

- encapsule aucun, un ou plusieurs flots de contrôle.

- fournit une interface d'utilisation à ses utilisateurs

Objets passifs

- fournissent des opérations séquentielles, le flot de contrôle de l'utilisateur est transféré à l'opération demandée

Objets actifs

- ont un état interne propre

- ont leur propre comportement

- fournissent à leurs utilisateurs des opérations "contraintes"

3434

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Concevoir: Concevoir: UML UML temps temps réel réel • UML = Unified Model Language •

Concevoir: Concevoir: UML UML temps temps réel réel

Concevoir: Concevoir: UML UML temps temps réel réel • UML = Unified Model Language • Profile

UML = Unified Model Language

• Profile temps réel [OMG 2000]

- stéréotypes pour la gestion du temps

- stéréotypes pour l’analyse d’ordonnançabilité et la gestion des ressources

3535

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Concevoir: Concevoir: Approche Approche composant composant • Modèle composant temps réel - composant, interface
Concevoir: Concevoir: Approche Approche composant composant • Modèle composant temps réel - composant, interface
Concevoir: Concevoir: Approche Approche composant composant • Modèle composant temps réel - composant, interface

Concevoir: Concevoir: Approche Approche composant composant

Concevoir: Approche Approche composant composant • Modèle composant temps réel - composant, interface

Modèle composant temps réel

- composant, interface offerte, interface requise, opérations, contraintes de temps, etc.

- Types de composants: actif, passif, connecteur, composite

- Événements extérieurs/communication

Exemples :

- KOALA : technologie composant développée par Philips pour

la conception de composants électroniques grand public [Ommering et al. 2002]

- SAVEComp est une technologie basée sur le modèle SAVECCM destiné

au développement du logiciel pour automobiles [Hansson et al. 2004].

- TinyOS: système non temps réel mais embarqué dans les réseaux de capteur,

utilise le modèle composant.

3636

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Quelques Quelques ADLs ADLs Nom Focaliser vers Origine Wright Modélisation et analyse du comportement

Quelques Quelques ADLs ADLs

Quelques Quelques ADLs ADLs Nom Focaliser vers Origine Wright Modélisation et analyse du comportement

Nom

Focaliser vers

Origine

Wright

Modélisation et analyse du comportement dynamique des systèmes concurrents

CMU

Darwin

Systèmes massivement distribués

ICL

Rapide

Modélisation et simulations du comportement dynamique des architectures

Stanford

UniCon

Génération de code de liaison pour l’interconnexion de composants préexistants

CMU

MetaH

Conception, validation et génération d’applications temps réel embarquées (avionique)

Honeywell

3737

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Le Le Model-Driven Model-Driven Architecture Architecture (MDA) (MDA) • Proposé par l’«Object Management

Le Le Model-Driven Model-Driven Architecture Architecture (MDA) (MDA)

Model-Driven Architecture Architecture (MDA) (MDA) • Proposé par l’«Object Management Group» (OMG) –

Proposé par l’«Object Management Group» (OMG)

– Permet la séparation des spécifications fonctionnelles du système des spécifications concernant son implantation sur plate-forme technologique quelconque

– Le principe du MDA tourne autour de modèles et de transformation de modèles.

3838

du MDA tourne autour de modèles et de transformation de modèles. 38 38 samia.bouzefrane@cnam.fr - CEDRIC

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

• Le Le processus processus MDA MDA Supporte toutes les étapes du cycle de développement

• Le Le processus processus MDA MDA Supporte toutes les étapes du cycle de développement logiciel
Le Le processus processus MDA MDA
Le Le processus processus MDA MDA

Supporte toutes les étapes du cycle de développement logiciel

– Des modèles sont créés à chaque phase de développement

– Les passages entre les différentes phases se font à l’aide de projections standardisées et automatiques.

3939

Requirements

 

CIM

Analysis

 

PIM

Low-level

design

 

PSM

Coding

 

CODE

Testing

 

CODE

Deployment

CIM

1

PIM

3

PSM

5

CODE

2

4

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Les Les transformations transformations de de modèles modèles • PIM vers PIM – Vise à

Les Les transformations transformations de de modèles modèles

transformations transformations de de modèles modèles • PIM vers PIM – Vise à enrichir, filtrer ou

PIM vers PIM

– Vise à enrichir, filtrer ou spécialiser le modèle sans nécessiter d’informations dépendantes d’une plate-forme

PIM vers PSM

– Utilisé quand le PIM est suffisamment raffiné pour être projeté vers une plate-forme d’exécution

PSM vers PSM

– Utilisé lors des phases de déploiement, d’optimisation, de reconfiguration ou lors de la génération du code

PSM vers PIM

– Utilisé pour obtenir un modèle d’abstraction PIM à partir d’une implantation existante sur une plate-forme spécifique (reverse engineering)

• Difficilement réalisable

4040

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Concevoir: Concevoir: Approche Approche MDA MDA 41 41 samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Concevoir: Concevoir: Approche Approche MDA MDA

Concevoir: Concevoir: Approche Approche MDA MDA 41 41 samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -
Concevoir: Concevoir: Approche Approche MDA MDA 41 41 samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

4141

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Les Les approches approches formelles formelles Spécification Génération de code Simulation Vérifier Mise en

Les Les approches approches formelles formelles

Les Les approches approches formelles formelles Spécification Génération de code Simulation Vérifier Mise en

Spécification

Génération de code

Génération de code
Génération de code
Génération de code

Simulation

Vérifier

Mise en œuvre

Objectifs

- Spécifier et/ou concevoir formellement un système

- Valider des propriétés (ex. temporelles)

- Génération de code pour effectuer des simulations

- Dans le futur, être capable d’embarquer le logiciel

4242

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Les Les réseaux réseaux de de Pétri Pétri   Prêt à déposer Fin de production
Les Les réseaux réseaux de de Pétri Pétri   Prêt à déposer Fin de production
Les Les réseaux réseaux de de Pétri Pétri
Les Les réseaux réseaux de de Pétri Pétri
 

Prêt à

déposer

Fin de

production

 

Production

Places

libres

Places

occupées

Consommation

Prêt à

consommer

Fin de consommation

- Place, jeton, transition. Modèle à états

- Validation logique, éventuellement temporelle

- Étude du graphe d’états: vivacité (interblocage), respect d’invariant (ex. exclusion mutuelle)

4343

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Langages Langages pour pour le le temps temps réel réel 44 44 samia.bouzefrane@cnam.fr - CEDRIC

Langages Langages pour pour le le temps temps réel réel

4444

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Famille Famille de de langages langages possibles possibles • Trois sortes de langages peuvent être

Famille Famille de de langages langages possibles possibles

Famille de de langages langages possibles possibles • Trois sortes de langages peuvent être identifiés dans

Trois sortes de langages peuvent être identifiés dans le contexte du développement d'applications temps réel

– les langages assembleurs

– les langages séquentiels liés à des librairies système

– les langages concurrents de haut niveau

4545

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Les Les langages langages de de type type assembleur assembleur • Historiquement, ces langages furent

Les Les langages langages de de type type assembleur assembleur

langages de de type type assembleur assembleur • Historiquement, ces langages furent longtemps les seuls

Historiquement, ces langages furent longtemps les seuls à être utilisés dans ce contexte

Dépendant par nature de l'architecture cible (matériel et système)

Aucune abstraction possible et grande difficulté de développement, de maintenance et d'évolution

-> Langages à proscrire sauf pour l'implémentation de petites fonctionnalités très spécifiques et apportant une grande amélioration des performances

4646

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Les Les langages langages séquentiels séquentiels • Introduits pour remédier aux problèmes dus au codage

Les Les langages langages séquentiels séquentiels

Les Les langages langages séquentiels séquentiels • Introduits pour remédier aux problèmes dus au codage en

Introduits pour remédier aux problèmes dus au codage en assembleur

Les plus connus sont le C, le C++ ou encore le Fortran

Apporte un plus grand pouvoir d'abstraction et une certaine indépendance du matériel

Mais, doit faire appel à des librairies systèmes spécifiques pour la manipulation des processus

-> Ces langages posent le problème de la standardisation des appels systèmes mais sont quelques fois le seul choix possible à cause de la spécificité d'une cible et des outils de développement sur celle-ci

4747

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Les Les langages langages de de haut haut niveau niveau • Langages généralistes incluant de

Les Les langages langages de de haut haut niveau niveau

Les langages langages de de haut haut niveau niveau • Langages généralistes incluant de plus la

Langages généralistes incluant de plus la notion de tâches et des primitives de synchronisation

Haut pouvoir d'abstraction, indépendance des architectures et des systèmes cibles (ou très peu dépendants)

Parmi ces langages, Ada et Java temps réel sont des langages qui peuvent

être utilisés à profit dans le développement d'applications/systèmes temps réel

-> Langages à privilégier lorsque d'autres contraintes (manque de formation,

reprise de code existant, coopération inter-équipes/ ou inter entreprises, ne rendent pas la chose impossible

)

4848

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Langages Langages choisis choisis dans dans ce ce cours cours • Java comme exemple de

Langages Langages choisis choisis dans dans ce ce cours cours

Langages choisis choisis dans dans ce ce cours cours • Java comme exemple de langage concurrent

Java comme exemple de langage concurrent de haut niveau

C avec l'utilisation de bibliothèques système

Java temps réel (jRate une implémentation de RTSJ :Real-Time Specification for Java, sous Linux)

4949

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Le Le choix choix d’un d’un exécutif exécutif temps temps réel réel 50 50 samia.bouzefrane@cnam.fr

Le Le choix choix d’un d’un exécutif exécutif temps temps réel réel

5050

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Les Les systèmes systèmes d’exploitation d’exploitation • Caractéristiques d'un système

Les Les systèmes systèmes d’exploitation d’exploitation

systèmes systèmes d’exploitation d’exploitation • Caractéristiques d'un système d'exploitation

Caractéristiques d'un système d'exploitation

– approche généraliste

– supporte généralement plusieurs types d’applications simultanément

– interaction par appels système

– peu dépendant du domaine d'applications visé

généralement de taille plus importante qu'un exécutif

5151

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Exécutif Exécutif temps temps réel/1 réel/1 • Caractéristiques d'un exécutif temps réel – système

Exécutif Exécutif temps temps réel/1 réel/1

Exécutif Exécutif temps temps réel/1 réel/1 • Caractéristiques d'un exécutif temps réel – système

Caractéristiques d'un exécutif temps réel

– système spécialisé

– dédié à une application spécifique (ex. contrôle de trafic aérien)

– collection de primitives

-> plus spécialisé qu'un système d'exploitation, code de taille plus petite qu'un système classique

5252

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Exécutif Exécutif temps temps réel/2 réel/2 Procédé Actionneurs Capteurs Système de contrôle tâches

Exécutif Exécutif temps temps réel/2 réel/2

Exécutif Exécutif temps temps réel/2 réel/2 Procédé Actionneurs Capteurs Système de contrôle tâches
Procédé Actionneurs Capteurs Système de contrôle tâches Exécutif Temps Réel (ordonnanceur, gestion des
Procédé
Actionneurs
Capteurs
Système de
contrôle
tâches
Exécutif Temps Réel
(ordonnanceur, gestion des
ressources, des interruptions
)

5353

Structure d’un noyau temps réel

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Exemples Exemples d’exécutifs d’exécutifs temps temps réel réel • RTAI: basé sur du code libre,

Exemples Exemples d’exécutifs d’exécutifs temps temps réel réel

d’exécutifs d’exécutifs temps temps réel réel • RTAI: basé sur du code libre, extension de Linux

RTAI: basé sur du code libre, extension de Linux (http://www.aero.polimi.it/~rtai/index.html)

Lynx-OS : système Unix à base de thread noyau (http://www.lynuxworks.com/) compatible avec Linux

QNX : système Unix (http://www.qnx.com/)

Windows CE : système Microsoft temps réel (http://www.cewindows.net)

VxWorks : Exécutif de Wind river (http://www.windriver.com)

VRTX : (http://www.mentor.com/vrtxos/)

RI/RTSJ (Machine virtuelle): Java TR de TimeSys (http://www.timesys.com/company/java.htm)

jRate/RTSJ:

http://linux.softpedia.com/get/Programming/Compilers/jRate-16990.shtml

5454

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Les Les exécutifs exécutifs temps temps réel réel les les plus plus utilisés utilisés Sondage

Les Les exécutifs exécutifs temps temps réel réel les les plus plus utilisés utilisés

réel réel les les plus plus utilisés utilisés Sondage effectué par Open Group en 2001 auprès
réel réel les les plus plus utilisés utilisés Sondage effectué par Open Group en 2001 auprès

Sondage effectué par Open Group en 2001 auprès de 10 000 utilisateurs

5555

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Conclusion Conclusion • Les systèmes ou applications temps réel sont – complexes – font intimement

Conclusion Conclusion

Conclusion Conclusion • Les systèmes ou applications temps réel sont – complexes – font intimement intervenir

Les systèmes ou applications temps réel sont

– complexes

– font intimement intervenir le temps dans leur conception

– ont des besoins de fiabilité importants

– généralement décomposés en sous-systèmes avec des tâches ou des processus qui interagissent

– doivent être implémentés avec des langages appropriés

– doivent être exécutés sur des systèmes ou des exécutifs adaptés

5656

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -

Références Références [ CRI-Cisi 1987]: HOOD Manual, CRI-Cisi Matra, Toulouse. [Boniol 1998]: Frédéric Bonio, «

Références Références

Références Références [ CRI-Cisi 1987]: HOOD Manual, CRI-Cisi Matra, Toulouse. [Boniol 1998]: Frédéric Bonio, «

[ CRI-Cisi 1987]: HOOD Manual, CRI-Cisi Matra, Toulouse. [Boniol 1998]: Frédéric Bonio, « Une approche synchrone multi-formalismes pour la conception de systèmes temps-réel distribués », TSI 1998. [Cottet & Grolleau 2005]: F. Cottet & E. Grolleau, « systèmes temps réel de contrôle-commande : conception et implémnetation », Ed. Dunod, 2005, ISBN:2 10 007893 3. [Dorseuil & Pillot 1991] : Dorseuil A. et Pillot P., « le temps réel en milieu industriel », édition Dunod, collection informatique industrielle, 1991. [Duvallet et al. 1999]: C. Duvallet, Z. Mammeri et B. Sadeg, « Analyse des protocoles de contrôle de concurrence et des propriétés ACID dans les SGBD temps réel », Revue TSI, 1999. [Gomaa 1984) ]: Gomaa, Hassan, “A Software Design Method for Real-Time Systems,” Communications of the ACM, Sept., 1984 [Hansson et al. 2004]: H. Hansson, M. Akerholm, I. Crnkovic & M. Törngren, "SaveCCM: a component model for safety-critical real-time systems", EuroMicro Conference, Special Session Component Models for Dependable Systems, Rennes, France, Sept. 2004. [Jaulent 1994]: P. Jaulent, « Génie Logiciel: les méthodes », Armand Colin, 1994. Jean-François Peyre, supports de cours sur l’informatique industrielle-systèmes temps réel, CNAM(Paris). Frank Singhoff, supports de cours sur le temps réel, département informatique, université de Bretagne Occidentale (http://beru.univ-brest.fr/~singhoff/supports.html). [Ommering et al. 2000]: R. Van Ommering, F. Van der Linden & J. Kramer, "The Koala component model for consumer electronics software", IEEE Computer, Vol. 33, N° 3, pp. 78-85, March 2000.

[Pirbhai-Hatley 1987]: D. J. Hatley, I. A. Pirbhai: Strategies for Real-Time System Specification;

New York, 1987. RTSJ: http://www.rtsj.org/ [Stankovic 1988]: John Stankovic, « Misconceptions about real-time computing », IEEE Computer, oct. 1988.

Dorset House,

5757

samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -