Időzített rendszerek és az UPPAAL Dr. Németh L. Zoltán (zlnemeth@inf.u-szeged.hu) SZTE, Informatikai Tanszékcsoport 2008/2009 I. félév 2008.11.14 MODELL 10 1
Időzített rendszerek Real Time Systems = valós idejű rendszerek Olyan rendszerek, melyek helyessége, nem csak a folyamatok lépéseinek logikai sorrendjétől, de a lépések megtételének idejétől is függ. A rendszernek időbeli korlátozásokat is teljesítenie kell. Mindenütt jelen vannak, például: valós idejű operációs rendszerek valós idejű protokollok autóelektronika (ABS, légzsákok, Cruise Control/Tempomat ) szórakoztató elektronika robotok, ipari gépek, gyártósorok közlekedés (lámpák, légi irányítás, űrhajózás, stb.) általánosan RT rendszereket vezérlő hardverek / szoftverek bemenet: szenzorok (érzékelők, sensors) kimenet: aktuátorok (cselekvők, actuators) 2008.11.14 MODELL 10 2
Egy egyszerű példa Két fokozatú villanykapcsoló A rendszer állapotai: KI: a lámpa nem világít HALVÁNY: hangulatvilágítás, kis fényerő VILÁGOS: erős fény A felhasználó (most ő lesz a rendszer környezete)egyetlen gomb megnyomásával vezérelhesse a rendszert: gombnyomás vagy csak gomb 2008.11.14 MODELL 10 3
Időzítés nélkül gombnyomás? KI gombnyomás? KIS FÉNY gombnyomás? VILÁ- GOS 2008.11.14 MODELL 10 4
Időzített automatával KI KIS FÉNY x 500 VILÁ- GOS x>500 ahol x egy valsó idejű óra mondjuk miliszekundomokban (500 = fél másodperc) a zölddel írtak őrfeltételek (csak ekkor hajtható végre az átmenet) a pirossal írt az óra újraindítása (reset) azaz két gyors (<500ms) gombnyomás kell a VILÁGOS-ra állításhoz 2008.11.14 MODELL 10 5
Időzített automaták átmenetei I p x 30 & y=10 a őrfeltételek: órák egésszekkel vett összehasonlításainak (<,, =,, >) Boole kombinációi tevékenység (action) ezekkel lehet szinkronizálni q óra újraindítások (resets) 2008.11.14 MODELL 10 6
Időzített automaták átmenetei II Állapotok p q x 30 & y=10 a (hely, x=u, y=v) hármasok, ahol hely { p, q } u, v valós számok Átmenetek diszkrét átmentek: a (p,x=12.5,y=3.14) > (q,x=0,y=3.14) szünet átmenetek: e(1.1) (p,x=12.5,y=3.14) > (p,x=13.6,y=4.24) 2008.11.14 MODELL 10 7
Egy lehetséges futás KI KIS FÉNY x 500 VILÁ- GOS átmenet: e(200) x>500 állapot: (KI, x=0 ) (KI, x=200) (KIS FÉNY, x=0) e(350) (KIS FÉNY, x=350) (VILÁGOS, x=350) 2008.11.14 MODELL 10 8
Magától kikapcsoló lámpa x=60000 KI KISFÉNY x 60000 x 500 VILÁGOS x 60000 x=60000 a kék x 60000 feltételek invariánsok (előrehaladást tudunk velük kifejezni) a rendszer futásának az állapotra vonatkozó invariánsokat teljesíteni kell azaz sem KISFÉNY sem VILÁGOS állapotban nem várhatunk tovább 1 percnél egy perc után, ha újabb gombnyomás nem érkezik, a lámpa kikapcsol így pl. (KISFÉNY,x=0) ---e(65000) nem lehetséges 2008.11.14 MODELL 10 9
A lámpa UPPAAL modelljei gyakorlat I lampa1.xml: az időzítés nélküli modell, hogy kell definiálni állapotokat, átmeneteket hogyan működik a szimuláció, mit jelent a szinkronizálás lampa2.xml: az időzítés bevezetésével kapott modell felépítése őrfeltételek óra újraindítások szimulációk lampa3.xml: az egy perc után magától kikapcsoló lámpa modellje invariánsok használata verifikáció 2008.11.14 MODELL 10 10
Specifikációi az UPPAAL-ban A CTL (Computation Tree Logic) megszorított változata használható, a jelölés egy kicsit más: A = Allways /minden futásnál/ E = there Exists /van olyan futás/ [ ] = Globally /minden állapotban/ <> = Future /valamelyik állapotban/ Így a CTL jelölésével: A[ ] = AG, A<> = AF, E[ ] = EG, E<> = EF És még bounded livness (időben korlátozott élőségi) tulajdonságok is Bonyolultabb tulajdonságok egy monitor folyamat felvételével ellenőrizhetők Mind a diszkrét, mind a szünet átmeneteket figyelembe kell venni 2008.11.14 MODELL 10 11
Specifikáció az UPPAAL-ban II Possibility (lehetségesség) E<> P : van olyan futás mely során valamikor igaz lesz P Safety (biztonsági tulajdonságok) invariáns: A[ ] P : minden futás minden állapotában igaz P lehetséges invariáns: E[ ] P van olyan futás, melynek minden állapotában igaz P Liveness (élőségi tulajdonságok) végül is: A<> P : minden úton valamikor P teljesül válasz: P -> Q : minden úton, ha P teljesül, akkor valamikor Q is teljesülni fog Bounded liveness (korlátos élőségi) válasz időn belül: P -> t Q : minden úton, ha P teljesül, akkor valamikor Q is teljesülni fog t időn belül. 2008.11.14 MODELL 10 12
Specifikáció az UPPAAL-ban III Az előzőekben P és Q olyan kifejezések melyek hivatkozhatbak: egész változókra konstansokra óra változók értékeire folyamatok aktuális állapotaira bennük a típusok megfelelőek a kifejezés mellékhatás mentes és Boole értékre értékelődik ki így pl. a szokásos Boole-műveletek használhatók: not or, and imply (a jelenben nem keverendő a ->-lal, mely időbeli választ jelent) 2008.11.14 MODELL 10 13
Néhány egyszerű azonosság not A [ ] P = E <> not P not A <> P = E [ ] not P P -> Q = A [ ] ( P imply A <> Q ) Ez utóbbi tehát CTL-ben is kifejezhető De a CTL-lel szemben az UPPAAL nem engedi meg az időoperátorok egymásba ágyazását pl: A[ ] ( E <> P ) nem írható 2008.11.14 MODELL 10 14
A lámpa UPPAAL modelljei gyakorlat II lampa3.q: CTL formulák megadása a specifikációk ellenőrzése a hiba trace elemzése a szimulátorban lampa4.xml: sablonok (templates) használata, paraméterezés a rendszer deklarációja további tulajdonságok elenőrzése 2008.11.14 MODELL 10 15