2.1 Mod`eles du temps
2.1.1 Automates temporis´es
Les automates temporis´es [AD94] forment sans doute le mod`ele le plus r´eput´e, ou en
tout cas le plus utilis´e. Il en existe de nombreuses variantes [Pett99] ; nous en pr´esentons
une que nous utiliserons au chapitre 5.
Un automate temporis´e se compose d’un ensemble d’´etats, de transitions entre eux et
d’un ensemble de chronom`etres permettant de mesurer le temps. (On parle plus
tradi-tionnellementd’horloges mais nous avons pr´ef´er´e marquer la diff´erence avec les horloges
causales.) L’ex´ecution d’une transition est soumise `a une condition portant sur les
chro-nom`etres ; lorsque la garde est vraie, la transition peut avoir lieu et assigner de nouvelles
valeurs aux chronom`etres tout en ´emettant des actions visibles. Dans certaines versions
du mod`ele, les ´etats portent des invariants qui doivent rester vrais tant que l’automate
est dans l’´etat ; les invariants servent le plus souvent `a forcer l’ex´ecution d’une transition.
L’´echelle du temps est suppos´ee continue : les valeurs des chronom`etres sont donc
des nombres r´eels. De plus, les transitions sont instantan´ees. Le s´ejour dans les ´etats
peut aussi ˆetre instantan´e mais il peut durer, ce qui est le cas le plus souvent. Une
ex´ecution d’un automate temporis´e est, `a l’instar de celle d’un automate fini classique,
un mot form´e par la suite des actions ´emises par les transitions. La diff´erence est que
le passage de chaque transition est dat´e par rapport au d´emarrage de l’automate. Une
autre diff´erence notable est qu’on s’int´eresse le plus souvent `a des ex´ecutions infinies
(et donc `a des mots infinis) puisque la plupart des syst`emes temps-r´eels sont suppos´es
fonctionner sans s’arrˆeter.
La figure 2.2 donne deux automates temporis´es. Celui de gauche d´emarre dans son ´etat
initialFar (marqu´e en gras) ; la transition vers l’´etat Beforese fait sans condition : elle
´emet une action app! et remet le chronom`etre t `a z´ero. L’automate peut ensuite rester
dans l’´etatBefore tant que t ne d´epasse pas la valeur 5. De plus, il ne peut ex´ecuter la
transition vers l’´etatInsideque si t≥4 et donc, cette transition doit avoir lieu dans un
intervalle [4,5] apr`es le franchissement de celle qui a remis t `a z´ero.
.
.
Far
t≤5
Before
t≤6
Inside
·|app!|t:=0
t≥4|·|t:=0
t≥4|exit!|·
clock t
.
.
Idle
c≤2 AppDown
c≤2 ExitUp
·|app?|c:=0 c≥1|down!|·
·|exit?|c:=0
c≥1|up!|·
clock c
Figure 2.2 — A gauche, un automate temporis´e `a trois ´etats utilisant un`
chronom`etret. `A droite, un autre automate utilisant un chronom`etrec.
L’automate `a gauche de la figure 2.2 peut avoir une ex´ecution correspondant au mot
temporis´e suivant :
(app!, z)(·, z+ 4,2)(exit!, z+ 5,1)(app!, z+ 42)(·, z+ 47)(exit!, z+ 51)· · ·
o`u z est la date de la premi`ere transition (qui n’est pas forc´ement l’origine de l’axe du
temps) et·repr´esente une transition silencieuse. L’automate a donc attendu zunit´es de
temps dans son ´etatFar, puis il est pass´e dans l’´etatBeforeo`u il a s´ejourn´e 4,2 unit´es de
l’automate a franchi la transition Before → Inside au plus tard et ensuite Inside→ Far
au plus tˆot.
Afin de faciliter la d´ecomposition de syst`emes complexes, les actions sur les transitions
peuvent ˆetre exploit´ees pour calculer leproduit synchronis´ede plusieurs automates. Cette
op´eration cr´ee un nouvel automate dont les ex´ecutions correspondent aux entrelacements
des ex´ecutions de ses op´erandes dans lesquelles les paires d’actions telles queapp! etapp?
surviennent en mˆeme temps (et silencieusement). Les ´etats de l’automate synchronis´e
sont form´es par le produit cart´esien des ´etats des automates op´erandes et les transitions
sont calcul´ees en fonction des ´etats, en respectant la synchronisation des actions. La
figure 2.3 montre le produit synchronis´e des deux automates de la figure 2.2.
.
.
Far.Idle
t≤5
c≤2
Before.AppDown
·|·|t:=0,c:=0
t≤5
Before.Idle
c≥1|down!|·
t≤6
Inside.Idle
t≥4|·|t:=0
c≤2
Far.ExitUp
t≥4|·|c:=0
c≥1|up!|·
clock c,t
Figure 2.3 —Le produit synchronis´e des automates de la figure 2.2.
Le produit synchronis´e de plusieurs automates ´etant lui mˆeme un automate, s´equentiel
par nature, il devient clair que ce mod`ele propose une vision entrelac´ee du parall´elisme.
Lorsque plusieurs chronom`etres sont pr´esents dans un automate (comme dans celui de
la figure 2.3), ils ´evoluent au mˆeme rythme.
Les automates temporis´es sont analys´es le plus souvent par v´erification de formules
de logiques temporelles [Alu+93] (voir aussi plus bas la section 2.1.4). Pour cela, on
associe des pr´edicats aux ´etats (par exemple, dans l’´etat Far.ExitUp de l’automate de
la figure 2.3, les pr´edicats Far et ExitUp sont vrais) et on v´erifie la formule sur toutes
les ex´ecutions possibles de l’automate. On ne peut pas le faire directement car l’´echelle
de temps ´etant continue, la plupart des transitions peuvent ˆetre dat´ees d’une infinit´e
de fa¸cons. Par exemple, la transition de Before `a Inside de l’automate de gauche de la
figure 2.2 peut (et doit) ˆetre franchie dans un intervalle de 4 `a 5 unit´es de temps apr`es
que l’automate arrive dans l’´etatBefore, or cet intervalle contient une infinit´e de points.
Afin de permettre la v´erification d’une formule sur un automate, on calcule au
pr´ea-lable legraphe des r´egions de l’automate qui regroupe tous les ´etats temporis´es (c’est `a
dire les ´etats de l’automate associ´es `a des valeurs de chronom`etres) qui permettent les
mˆemes ´evolutions. La figure 2.4 donne le graphe des r´egions de l’automate de gauche
de la figure 2.2. La taille de ce graphe d´epend exponentiellement du nombre de
chrono-m`etres utilis´es par l’automate et du nombre de constantes distinctes auxquelles ils sont
compar´es. (C’est pour cette raison que nous n’avons pas pr´esent´e le graphe des r´egions
de l’automate de la figure 2.3.)
.
.
t≥0
Far 0≤t<4
Before
4≤t≤5 Before
0≤t<4 Inside
4≤t≤6
Inside
Figure 2.4 — Le graphe des r´egions correspondant `a l’automate temporis´e
`a gauche de la figure 2.2. Les nœuds sont ´etiquet´es par les pr´edicats vrais et
nous avons indiqu´e `a l’int´erieur les valeurs possibles du chronom`etret.
Dans le document
Modèles composables et concurrents pour le temps-réel
(Page 31-34)