Model Checking pro Timed Automata Jiří Vyskočil 2011
Časově kritické systémy korektnost fungování vestavěným a distribuovaných systémů závisí na: správném výsledku výpočtu správném načasování prováděných operací (odezva na události, ) časově kritické systémy: železniční přejezdy (řízení hradel, závor, ) řízení letového provozu konzumní elektronika (Philips Audio Protocol, Bi-phase mark protocol, Bang & Olufsen Collision Detection Protocol, ) řízení výrobních procesů 2 / 32
Diskrétní versus reálný čas diskrétní model času časové úseky jsou namapovány na přirozená čísla události mohou nastat pouze v celočíselných časech čas se inkrementuje po násobcích nejmenšího časového úseku (označme ho tik) Příklad: inteligentní vypínač lampy tik? stisk? OFF stisk? ztlumeno stisk? tik? diskrétní časové úseky ztlumeno plný výkon stisk? Po rychlém dvojitém stisknutí se lampa rozsvítí. Po jednoduchém stisknutí se ztlumí. Pokud je mapa rozsvícena nebo ztlumena, po jednoduchém stisknutí se vypne. tik? tik? 3 / 32
Diskrétní versus reálný čas diskrétní model času + Událost tik lze snadno modelovat pomocí modelů s konečným počtem stavů + lze použít standardní model checkery a temporální logiku pro verifikaci časové prodlevy jsou modelovány explicitně synchronizace mezi komponentami je buď striktní nebo žádná => Vhodné pro modelování synchronních systémů, které se mění po pevně daných časových krocích. => Nevhodné pro velkou část asynchronních distribuovaných systémů. (systémy s nepřesnými lokálními hodinami, atd.) 4 / 32
reálný (spojitý) model času Diskrétní versus reálný čas časové úseky jsou namapovány na kladná reálná čísla události mohou nastat kdykoliv v (reálném) čase čas se nemůže inkrementovat po násobcích nejmenšího časového úseku, protože takový úsek není. časovače a prodlevy se modelují pomocí proměnných reálného času (hodin) Příklad: inteligentní vypínač lampy stisk? hodiny pro reálný čas OFF stisk? ztlumeno stisk? plný výkon Po rychlém dvojitém stisknutí se lampa rozsvítí. stisk? Po jednoduchém stisknutí se ztlumí. Pokud je mapa rozsvícena nebo ztlumena, po jednoduchém stisknutí se vypne. 5 / 32
spojitý model času Diskrétní versus reálný čas + proměnné hodin umožňují přirozeně simulovat časovače a prodlevy + prodleva (delay) je modelovány implicitně proměnné s reálnými hodnotami vedou k nekonečnému množství stavů algoritmus pro model checking je složitější => Vhodné pro modelování systémů, které se synchronizují podle reálného času. => Zbytečně složité pro plně diskrétní systémy. Pozor! Většina tzv. real-time systémů je typickým příkladem pro diskétní model času (operační systémy, simulátory, ) 6 / 32
Timed Automata Timed Automaton (časový automat) orientovaný graf s uzly pozicemi (locations) a hranami (edges) okamžité přechody po hranách (instantaneous transitions) a časová prodleva v pozici (hrany, které vycházejí i vcházejí z/do stejné pozice) hodiny reálného času (real-valued clocks), které se všechny zvyšují stejnou rychlostí omezující podmínky stráže (guards) na hranách reset hodin pro měření času mezi přechody invarianty v uzlech k zaručení dalšího postupu synchronizační značky (labels) 7 / 32
Timed Automata - formálně Definice: typ hodiny (clocks) typ clock je definován nad kladnými reálnými čísly R 0 povolené tvary podmínek (constraints) Nechť C je množina proměnných typu clock a nechť Ψ (C) je definováno následující gramatikou: φ:= φ φ φ x n x < n x - y m x y < m kde x, y C, n N, m Z, ohodnocení hodin ohodnocení hodin v je definováno funkcí C R C 0 ; pro d R 0 je ohodnocení v +d zobrazení hodin x na v (x ) + d ; pro r C a ohodnocení v [r := 0] se x zobrazí na 0 pouze pokud x r jinak se x zobrazí na v (x ). 8 / 32
Timed Automata - formálně Nechť C je množina proměnných typu clock, potom timed automaton (časový automat) je uspořádaná pětice (Loc, l 0, Σ, E, Inv), kde Loc je konečná množina pozic (locations) l 0 je počáteční pozice Σ je množina značek (labels) E Loc Ψ (C) Σ 2 C Loc je množina hran (l,g,σ,r,l ) kde l je zdrojová pozice g je stráž (guard) pro hodiny σ je značka pro synchronizaci r je množina resetů vybraných hodin z C l je cílová pozice funkce Inv: Loc Ψ (C) je zobrazení z pozic na invarianty 9 / 32
Stráže a invarianty stráže umožňují postup, invarianty vynucují postup 10 / 32
Stráže a invarianty stráže umožňují postup, invarianty vynucují postup invarianty mohou vést k deadlocku 11 / 32
Stráže a invarianty stráže umožňují postup, invarianty vynucují postup invarianty mohou vést k deadlocku Podle standardní definice TA jsou podmínky umožňující takový deadlock zakázány a je potřeba je upravit. 12 / 32
Timed Automata - sémantika Operační sémantika pro timed automaton (časový automat) (Loc, l 0, Σ, E, Inv) je definovaná pomocí časového přechodového systému TTS (Timed Transition System) (S,s 0,R) kde množina stavů S = { (l,v) l Loc, v = Inv(l) } počáteční stav s0 = (l 0,0) relace přechodu R S ( Σ R 0 ) S která obsahuje následující možnosti diskrétní přechody (l,v) σ (l,v ) pokud existuje (l,g,σ,r,l ) E takové, že v = g a v[r:=0] = v časové přechody (l,v) d (l,v+d) pro d R 0 pokud pro všechny 0 d d platí v + d = Inv(l) 13 / 32
Timed Automata běh běh je konečná nebo nekonečná posloupnost přechodů (l 0,v 0 ) a0 (l 1,v 1 ) a1 (l 2,v 2 ) kde (l 0,v 0 ) je počáteční stav a a i Σ R 0 a2 (l 3,v 3 ) a3... přechody mohou nastat v jakémkoliv bodě v reálném čase (l 0,v 0 ) 2 (l 1,v 1 ) on (l 2,v 2 ) π (l 3,v 3 ) 42... V jakémkoliv časovém bodě může dojít k několika přechodům zároveň (l 0,v 0 ) on (l 1,v 1 ) 0 (l 2,v 2 ) 0 (l 3,v 3 ) on... 14 / 32
Timed Automata dosažitelnost dosažitelnost stav (l,v) je dosažitelný pokud platí (l 0,v 0 ) ( d σ )* (l,v) pozice l je dosažitelná pokud existuje v takové, že je stav (l,v) je dosažitelný. aditivita času dva časové přechody mohou být zkombinovány (l 0,v 0 ) d0 (l 1,v 1 ) pro d 0, d 1 R 0 d1 (l 2,v 2 ) právě když (l 0,v 0 ) d0+d1 (l 2,v 2 ) Každý konečný běh lze přepsat jako posloupnost, ve které se pravidelně střídají diskrétní přechody a časové přechody. 15 / 32
Timed Automata časové pojmy časová akce (timed action) je dvojice (σ, t) kde σ Σ a t R 0 časová stopa (timed trace) pro TA A je konečná nebo nekonečná posloupnost (σ 1, t 1 ), (σ 2, t 2 ), (σ 3, t 3 ), pro t 0 t 1 t 2 taková, že existuje běh (l 0,v 0 ) d1 σ1 (l 1,v 1 ) d2 σ2 (l 2,v 2 ) d3 σ3 (l 3,v 3 )... kde t i+1 = t i + d i pro i > 0 a t 0 = 0 16 / 32
Timed Automata skládání Skládání se společnými synchronizačními značkami množina pozic (l 1,l 2 ) je kartézský součin l 1 Loc 1, l 2 Loc 2 invarianty v (l 1,l 2 ) jsou konjunkcí invariantů v l 1 a l 2 hrany se musí synchronizovat na sdílených značkách výsledná stráž je konjunkce stráží výsledný reset hodin je sjednocení resetů hrany bez sdílených značek se mohou provádět bez synchronizace 17 / 32
UPPAAL synchronizace handshake V UPPAALu se synchronizace handshake provádí mezi dvojicí hran se stejnojmennými značkami, kde vždy jedna končí? a druhá!. obě stráže musí být splněny Pokud je více možností výběru, vybírá se nedeterministicky (v simulaci se uvažují všechny možnosti) 18 / 32
UPPAAL synchronizace broadcast V UPPAALu se synchronizace broadcast provádí mezi několika hranami se stejnojmennými značkami, kde vždy právě jedna končí! (vysílač) a ostatní končí? (přijímače). stráž může být pouze u vysílače Pokud je více možností výběru vysílače, vybírá se nedeterministicky (v simulaci se uvažují všechny možnosti) 19 / 32
Příklad - Biphase Mark Protocol Kóduje datové bity a hodinový signál do jediného digitálního signálu. použití: Intel 82530 Serial Communications Controller Ethernet Optical communications Satellite telemetry applications a další 20 / 32
Biphase Mark Protocol 21 / 32
Biphase Mark Protocol 22 / 32
Biphase Mark Protocol Jaké předpoklady chceme zahrnout do modelu: Vysílač i přijímač mají vlastní hodiny. Obě hodiny nejsou zcela přesné ani stejné. Při změně napětí může signálu trvat nějaký čas než se stabilizuje. Vzorkování v době nestabilního signálu může produkovat libovolnou hodnotu. Přijímač smí vzorkovat časově nedeterministicky v intervalu ohraničeném hodinovým cyklem. 23 / 32
BMP schéma modelu hodiny hodiny tik tak tak hrana napětí encoder drát sampler decoder pošli vstup přijmi výstup sdílená proměnná synchron. kanál 24 / 32
BMP schéma modelu hodiny hodiny tik tak tak hrana napětí encoder drát sampler decoder pošli vstup přijmi výstup sdílená proměnná synchron. kanál 25 / 32
BMP konstanty modelu Konstanty modelu, které vychází z počátečních předpokladů: CELL = 32 MARK = 16 DELKA_VZORKU = 23 MIN = 81 MAX = 100 DELKA_HRANY < 81 -- délka buňky v hodinových cyklech -- délka podbuňky v hodinových cyklech -- délka jednoho vzorkování v hodinových cyklech -- minimální délka hodinového cyklu hodin -- maximální délka hodinového cyklu hodin -- max. délka náběhu (nestabilní) hrany 26 / 32
BMP digitální hodiny Hodinové signály jsou vysílány broadcastovým kanálem tik. Přesnost hodin je dána nastavením nedeterministického rozmezí min a max. 27 / 32
BMP encoder 28 / 32
BMP drát Vstupní událost je hrana? (po této události dojde ke změně napětí). Napětí se stabilizuje až po uplynutí DELKA_HRANY (jinak se nedefinovaně mění). 29 / 32
BMP sampler (vzorkovač) Vstupní proměnná je napeti. Synchronizace přes tik?. 30 / 32
BMP decoder 31 / 32
BMP tester 32 / 32