développement de systèmes temps réel en sdl · 2003. 1. 27. · – définition d ’interfaces...
TRANSCRIPT
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Développement de systèmes temps réelen SDL
Jean-Philippe Babau
Centre d'Innovation en Télécommunication et Intégration de Services
CITI / INSA de Lyon
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Complexité des systèmes embarquésCorrection (QoS)
Concept du génie logicielTechniques Formelles
Approche orientée/basée objetLangages formels
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Plan
• Langage SDL et développement
• Architecture type
• Introduction de la concurrence– Génération – Correction
• Vérification
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Développement
• Couvrir l’ensemble du cycle de développement– Spécification, conception, implémentation– Tests, preuves
• Continuité– correction– conception incrémentale
• Formalismes connus, normalisés– UML – MSC– SDL – C, RTOS
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
SDL : Specification and Description Language
• Langage formel– Sémantique définie (SDL 88, SDL 92, SDL 96, SDL2000)
• Langage des télécom (ITU)
• Langage graphique ou textuel• Machines à états finis
• Outils– ObjectGéode, Tau de Télélogic– Edition– Vérification/Validation/test (MSC)– Génération de code– SDL2IF (CADP : parcours de graphe, bisimulation, test)
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
SDL - Éléments de base
� Système� Procédure
� Bloc� Signal
� Process � État
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
SDL - Propriétés
- Exécution parallèle des process
- Etats : pas de hiérarchie, pas d ’états concurrents
- Communication par signal(paramètres)- Gestion en FIFO sauf si signal prioritaire
- Un signal non attendu est perdu sauf si sauvegarde du signal
- Hypothèse du "Run To Completion"
- Spécifications temporelles (timer)- Instants ordonnés
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Modélisation d'un système réactif
System
RégulationSensor Actuatorcanal1 canal2
Input CommandIT
Output
ComSE
Bloc
Process
E
Action
S
Idle
Idle
Idle
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Développement
Architecture communicante(machines, réseaux, protocoles)
Modèle d'exécution (RTOS)
Propriétés fonctionnelles, comportementales, de QoS(temps réel, …)
Analyse Vérifications,Génération de tests
correctionArchitecture fonctionnelle et comportementale, contraintes temporelles
Vérifications,tests
Conception
correctionPlacement
correctionImplémentation
VérificationAnalyse RMA
Génération de code
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
PROSEUS
- Modèles d’architecture de systèmes temps réel
- Approche basée objet (UML)
- Modélisation en couche
- 2 niveaux- Sans architecture matérielle- Avec architecture matérielle
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Décomposition d'un système• Activités génériques
– Régulation• Acquisition, Traitement, Commande
– Mise à jour de données pour la régulation• Acquisition, Mémorisation de la donnée• Mode pull, mode push
– Trace• Suivi
• Blocs– Type en SDL– Classe en UML
• Communication– Asynchrone (signal : message)– Synchrone (appel direct de procédure pour la consultation de données)
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Contraintes temps réel
• Activation– Périodique : timer– Quasi périodique : dmin– Une activation i défini un événement en entrée du système (ei)
• Délais– Délai simple
• Écart maximum entre la fin des actions déclenchées par un événement en entrée et la date d’arrivée de cet événement
– Délai bout-en-bout• Écart maximum entre la date de production d’un événement en sortie
et la date d’arrivée d’un événement en entrée– Logique temps réel
• @(fi, j) - @(ei, j) < di (fi : fin des actions)• @(sk, j) - @(ei, j) < dik (sk : message envoyés vers un actionneur)
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Décomposition d'un système
ICapteur Contrôle IActionneur
ISortie
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Exemple : contrôle d'un réseau ferroviaire
system trains
chgt cmd
onoff
MA
NCirinfo
ICapteurs Trains IAlimentation
PanneauNumCircuit
EtatCircuit
TOPHorloge IAfficheurs
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Interface, exemple du Joystick
(1) (2) (3)
(1) (2) (3)
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Actions
• Procedure SDL– Méthode– Spécification– Signature
• Task SDL– Gestion des PID
DemService()
AttenteReponse
R DemService () **
Ce signe veut dire que les messages * (soit tous sauf Rmessage() ) sont
conservés dans la queue sans être traités
Traitements amonts
Traitements avals
Méthode1
Message1
Réponse1
Etat1
Etat2
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Architecture matérielle
- Machines et liens de communication- PC, Microcontrôleurs- Liaison série, CAN
- Modélisation du réseau- Connecté/déconnecté- Fautes- Temps de réponse
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Exemple : robot mobilesystem robotMat
cPL
rqPC
repSR
cLM
rqSR
repMC1
cMCrqMC1
infoCAN
cCM
rqCAN
infoMC2
cMR
rqMC2
infoR
cPC
coeff,onoff
info
cEL
chgt_LS,fautes_LS
cEC
chgt_CAN,fautes_CAN
Liaison_Serie_Hertzienne
CAN
Robot
MC1
PC
MC2
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Architecture logicielle
• Placement– Processus
• Processus de communication– proxy
• dissocier la communication• réaction
– logiciel de communication
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Exemple : robot mobile
block PC
cPC
cPC cPL
cPC
cT
vit_rot
cC
cmd
CMO
onoff
cMC
coeff
cS
info
csC
rqPCrepSR
cGCS
requete
cSIreponse
cC2
chgt_etat
IJoystick
Panneau
CoeffVitesse
ONOFF com_LS
Robot proxy_Imoteurs
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Simulation
Prototype SDL
Acteur SDL
ApplicationSDL
Simulateur Géode
Application
Acteur réel/émulé
Interface
Module spécifiqueIHM
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Vérification
• Simulation (ObjectGéode)– Test– Pas à pas, aléatoire– Simulation exhaustive
• Point d'arrêt sur conditions (états, valeurs)• Preuve sur les états• Tests sur les données
• Diagramme de séquence (formalisme MSC)
• Autres outils– CADP (IF, Aldebaran, TGV) de Verimag– Agatha du CEA
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Développement
Architecture fonctionnelle et comportementale, contraintes temporelles
Propriétés fonctionnelles, comportementales, de QoS(temps réel, …)
Vérifications,Génération de tests
correction
Vérifications,tests
Architecture communicante(machines, réseaux, protocoles)
correctionPlacement
correction
Modèle d'exécution (RTOS)VérificationAnalyse RMA
Génération de code
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Génération de code : ObjectGeode
• Machine virtuelle qui s ’appuie sur l'OS (VRTX)– tâches, boîtes aux lettres, sémaphores, socket …
• Architecture– placement statique des process SDL sur des machines– mono processus – communication par socket– définition d ’interfaces (tâches, composants)
• Comportement– États et transitions entièrement gérés– Actions sur les transitions en langage cible (C,C++)
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Introduction de la concurrence : ObjectGeode
• Tâche– une par bloc– une par process– une par instance de process (selon l'OS cible)
• Une tâche dédiée aux timers– gère une structure de données de tous les timers en attente– set (timerID,temps,liste de PIDs, paramètres)– reset(timerID)– timeout : « plus faible » timer, envoi de messages aux instances en
attente
• Affectation des priorités– un niveau de priorité par défaut (200 sous VRTX), à modifier
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Définition du modèle d'exécution
• Objectifs– Limiter le nombre de tâches– Affiner les performances temps réel
• Gestion des priorités• Taille des sections critiques
• Tâche– Regroupement des activités par bloc
• Régulation, MAJ, Trace– Une tâche par bloc
• Section critique– Signaux liés à deux activités reçus par un même process– Appel "externe" de procédure exécutée par l'appelant
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Définition du modèle d'exécution
• Communication– Les signaux définissent les points de préemption
• Priorités– Selon la période (RM) ou le délai(DM) de l'activité Régulation ou MAJ– Priorité basse pour le Suivi– Héritage de priorité
• Optimisations– Regroupement d'activités
• Même période et délai
• Analyse RMA
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Développement (travail d'Ahmad Alkhodre)
Architecture fonctionnelle et comportementale, contraintes temporelles
Propriétés fonctionnelles, comportementales, de QoS(temps réel, …)
Vérifications,Génération de tests
correction
Vérifications,tests
Architecture communicante(machines, réseaux, protocoles)
correctionPlacement
correction
Modèle d'exécution (RTOS)VérificationAnalyse RMA
Génération de code
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Conception Modèle Validation
CADP
vérification
RT logic tools
Constraints model
SDL UML SA-RT
RT Logic
SDL Time Petri Net
KRONOS
RT Logic
IF
Modèle Sémantique
Execution model
SDL ROOM
UML-RT CODARTS
SDL IF
Modèle Sémantique
SDL*: SDL with preemption
AldebaranBisimulation
vérification
CADP
RT logic tools
CodeGeneration
CodeGeneration
Implementation
RTOS (VxWoks, Win32)
Preemptive
OSEK Time
Non preemptive
RMA analysis
Temporal propertyverification
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Constraint model• Logique événement/condition/action
• Activations– Interruption IT, TOP– Messages– Echéance
• Modélisation de l'environnement externe– IT(dmin, dmax), IT (n, dmax), …
• Actions– Traitements – Gestion du temps
• Filtrage• Réaction
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Sémantique
• Activation des actions– La modélisation n'intègre pas la priorité– La modélisation n'intègre pas la préemption
• Préemption à l'exécution– Correcte si l’exécution d’une action est indépendante de sa
possible préemption– Lecture au début, écriture à la fin
0 : A-B-C ou A-C-B ou C-A-B10 : A-B20 : -> 0
TOP-10->A->BTOP-20->C
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Modélisation d'une machine
EnvironmentEXTERN Application
Data ProcessingSoftware
Clock
Net
IT_niv
COM
Update_A_n
TOP_p
REP MSG_net
MSG_loc
ANS
messages
machine
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Interruption
-Environnement externe- interruption en rafale
Filtrage du dmin, vérification deadline
process Env_extern "rafale generatuer"
timer R;dcl CPT integer;dcl n integer := 3; dcl dmin time :=20;
/* n nombre d' IT dans le rafale */
SET (0,R)
idle
idle
R
SET (now +20, R)
CPT := n
CPT = 0
true
CPT := n
idle
false
IT(3,0,60)
CPT := CPT -1
IT(n,d2,d1)
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Execution model
• Objectif– Définir le séquencement des actions– Définir l'ordre d'activation des actions (priorités)– Durées (RMA)
• Boite à outils– Basée sur un RTOS– "routine d'IT", "routine d‘alarme", "periodic task", "software task",
"polling server"– Bloc - Process type– Règles d'interconnexion
• ISR -> SW, AL -> PT, (tâche + AL) -> PS• tâche -> SW
• Constraint model -> Execution model– Placement des actions dans les blocs correspondants
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Execution model : exemple
system test140103
can1
d_monitoring can2
TemporalException,STP
Terminate
can3
TIC_1
can4
Ext_event
can31TIC_2
can4
MSG_int_2
can12
d_monitoring
can21TemporalException,STP
Terminate
schedulerPriorityLevel = higest_priority
AL_1 PT_1
PriorityLevel = 120
Env_extern ISR_2
AL_2
PS_lecture
PriorityLevel = 150
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
La routine d'interruption(modèle sémantique)
- Overwritten Interrupt Routine- Masked Interrupt Routine- Stored Interrupt Routine.
Block type InterruptRoutin
can21
IT1
MSG_loc_1,d_monitoring
route1 IT1
d_monitoring
route3
MSG_loc_1
routine_it_masked
process routine_it_masque
DCL lev integer ,d1 deadline;dcl data integer;dcl time_IT time ;
wait_it
IT1(lev,d1)
time_IT:=now
Mask (lev)
at the code generation stage the SDL task Mask(lev) well be the mask OS primitive asintLevelSet() in VxWorks
MSG_loc_1(lev,data)
d_monitoring(time_IT,d1)
wait_it
Read(data)
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Le serveur à scrutation (modèle sémantique)
Process PS
DCL to_do boolean,lev integer ;DCL data integer;
MSG_loc_1(lev,data)
to_do:= true
idle
busy
Terminate_Act
Terminate to scheduler
to_do:=false
idle
STP
to_do:=false
idle
idle
TOP_1
to_do
false
idle
true
busy
STP
to_do:=false
idle
UnMask (lev)
Action(data)
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Correction des modèles
• Bisimulation faible– A.B est équivalent à A*B
• Interruptions– Constraint model : IT.A
• pour une IT, on a un déclenchement de A– Execution Model
• Renommage : IT(i) * A(i) A
IT
A(1)
A(2)
IT(1)IT(2)
A(1)
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Correction des modèles
• Activation périodique– "une action A toutes les 10 ut et une action B toutes les 20
ut" équivalent à "toutes les 10 ut : A et une fois sur deux B"– redéfinition d'une base de temps unitaire
• Constraint model et excecution model
A
TOP10
AB ou BA
TOP10 ATOP10
B
TOP20
B
TOP10TOP10
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Vérification d'implémentation(travail de Mostefa Belarbi)
• Modélisation de l'implémentation en IF– Application, services de l'OS (VxWorks), machines (IT, durées)– Propriétés locales aux éléments
• Un objet utilisé a été initialisé– Propriétés liées aux paramètres temporels
• Une boite aux lettres n'est jamais pleine• Ordonnancement
• Propriétés applicatives– Propriété SDL => observateur IF
Après une It, une action A est exécutée en 5 mset B est exécutée dans un délai de 10ms
– CADP de Verimag
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Conclusion
• Modélisation de l'architecture en SDL– Principes de génie logiciel– Formalisation– Tests, preuves
• Introduction de la concurrence
• Correction des modèles
• Méthodologie formelle de développement des systèmes temps réel
GDR - STRQDS – Paris Janvier 2003
[email protected] L3i - INSA
Perspectives
• Métamodélisation– Architecture, modèle d'exécution, transformation de modèle
• Protocoles– Données et messages– CAN / TTCAN– Pull / push– Impact sur la Qos
• Correction des modèles suite au placement/protocoles