250 likes | 387 Views
Modellering med Uppaal. Tobias Amnell tobias.amnell@docs.uu.se http://www.docs.uu.se/~tobiasa/ (Materialet lånat av Paul Pettersson). Ändliga Tillståndsautomater. I Uppaal kan man beskriva modeller av program, kommunikationsprotokoll m.m. Modellerna bygger på s.k. tillståndsautomater
E N D
Modellering med Uppaal Tobias Amnell tobias.amnell@docs.uu.se http://www.docs.uu.se/~tobiasa/ (Materialet lånat av Paul Pettersson)
Ändliga Tillståndsautomater • I Uppaal kan man beskriva modeller av program, kommunikationsprotokoll m.m. • Modellerna bygger på s.k. tillståndsautomater • Exempel: • Automat med tre tillstånd: A,B,C och tre övergångar: BA, AB och BC. B är starttillstånd, C sluttillstånd. x,y,z är händelser. x z A B C y
Exempel: Smart Lysknapp ÖNSKAT BETEENDE: Om man trycker två gånger snabbt så skall ljuset bli ljusare än om man bara trycker en gång.
Press? Off Light Bright Press? Press? Press? Exempel: Smart Lysknapp ÖNSKAT BETEENDE: Om man trycker två gånger snabbt så skall ljuset bli ljusare än om man bara trycker en gång.
Nätverk av Automater • Vi använder “!” och “?” för par av komplementära händelser som kan synkronisera på övergångarna. • Automaterna kan synkronisera på x och sedan på y. x? z! y? x! y!
Exempel: Smart Lysknapp Press? • Kan utföra (Off, A), (Light, B), (Off, C) eller... • ...(Off, A), (Light, B), (Bright, C). • Hur modellera två snabbt utförda Press? Off Light Bright Press? Press? Press? A B C Press! Press!
Klockor • I Uppaal hanteras tid m.h.a. klockor. • Från början är alla klockor noll. • Alla klockor har exakt samma hastighet. • Övergångarna kan ha klockvillkor där klockorna testas. • Klockorna kan även nollställas på övergångarna. X:=0 X>3
Exempel: Smart Lysknapp (forts.) Press? Off Light Bright Press? Press? Press?
Press? X<=3 Off Light Bright X:=0 Press? Press? Press? X>3 Exempel: Smart Lysknapp (forts.) LÖSNING: Vi lägger till en klocka x som mäter tiden.
TidsautomaterTimed Automata (Alur & Dill 1990) n Klockor:x, y Händelse används för synkronisering mellan automater Klockvillkor Boolesk kombination av jämförelser av klockor med heltalsgränser x<=5 & y>3 a x := 0 m Tilldelning Nollställning av klockor
x? x! x? Oförutsägbarhet i Automater • Modeller i Uppaal är inte alltid förutsägbara • Extern oförutsägbarhet (synkronisering) • Oförutsägbarhet i tid. x:=0 x<=3
(Henzinger et al, 1992) Tidsautomater med Invarianter Timed Automata + Invariants n Klockor:x, y x<=5 x<=5 & y>3 Tillstånds-invarianter a x := 0 En invariant används för att tvinga systemet att utföra en övergång (dvs lämna tillståndet) innan invarianten blir falsk!! m y<=10 g4 g1 g3 g2
Data i Automater • Förutom klockor finns datavariabler (int). • Alla heltal är begränsade • exempel: int[0,1] a; • Datavarialer kan användas i villkor på övergångar • Kan tilldelas nya värden då en övergång tas i>3 & j==0 j:=4
Deklarationer i UPPAAL clock x1, …, xn; int i1, …, im; chan a1, …, ao; const c1 n1, …, cp np; Exempel: clock x, y; int i, J0; int[0,1] k[5]; const delay 5, true 1, false 0; Array k med 5 booleska variabler
Urgent Channels/Händelse Måste tas om möjligt WAIT urgent chan skynda; skynda! x>=MAX_TIME • Informell betydelse: • Ingen väntan möjlig om övergång med urgent händelse kan utföras.Begränsningar: • Inget klockvillkor på övergång med urgent händelse. • Invarianter och variabelvillkor kan användas som vanligt. TIME-OUT
Urgent Locations/Tillstånd NOWAIT Någon av ut-övergångarna måste tas direkt U Klicka på “Urgent” i State Editorn. Ingen väntan i urgent tillstånd. Not: Användandet av Urgent tillstånd kan reducera antalet klockor i modellen och därmed den tid och utrymme som krävs för att analysera modellen.
Commited Locations/Tillstånd COMMIT • Automaten måste fortsätta direkt • Inga andra övergångar möjliga • Används t.ex. för multicast Någon av ut-övergångarna måste tas direkt C a? b! x>3 a! C b?
Verifiering med UPPAAL • UPPAAL är en s.k. model-checker • Ett verktyg som undersöker om en modell uppfyller en egenskap • Modellen beskrivs m.h.a. tidsautomater • Egenskapen beskrivs av logiska formler • UPPAAL använder en begränsad variant av”Timed Computation Tree Logic” (TCTL)
UPPAAL Specifikationsspråk p::= a.l | gd | gc | p and p | p or p | not p | p imply p | ( p ) egenskapenpär alltid sann i modellen. det går att nå ett tillstånd i modellen däregenskapen p är sann. A[] p E<> p variabelvillkor klockvillkor processtillstånd processnamn
Exempel på frågor A[] p - egenskapenpär alltid sann i modellen. E<> p - det går att nå ett tillstånd i modellen där egenskapen p är sann. A[] not (ProcessA.S1 and ProcessB.S2); A[] ClockA <= 100; A[] ProcessA.S1 imply ProcessB.S3; E<> Process.Error; E<> Clock > 200;
Nya frågor i version 3.2 A<> p För alla körningar kommer p att gälla E[] p Det finns en körning där p alltid gäller p --> q När p gäller kommer q att gälla senare A[] not deadlock Systemet kan inte låsa sig A<> Process.Safe; E[] Clock <= 100; ProcessA.S1 --> ProcessB.S2; A[] not deadlock;
System i UPPAAL • I UPPAAL skapas ett system av processer • En process är en instans av en template • En template är en automat + lokala variabler och klockor • En template kan initialiseras med variabler och konstanter const i 2; const j 3; int k; P1:=T(i,k); P2:=T(j,k) system P1,P2,P3; ded deklarationer de processer
Uppgift 1 - Kaffemaskin • Person automat given. • Konstruera automat Machine för att producera kaffe. • Konstruera automat Observer för att kont-rollera att publikationer sker tillräckligt ofta. • Synkronisera de tre automaterna.
2. Kommunikationsprotokoll • Tre automater: Sender skickar meddelanden via Medium till Receiver. • Varje meddelande har längd length. • Mediet Medium har en överföringstid delay. • bs (begin send) och es (end send) synkar Sender och Medium. • br (begin receive) och er (end receive) synkar Medium och Receiver.
Uppgift 3 Telefonskvaller • Varje person vet ett saftigt skvaller var. • Varje person kan tala i telefon med en annan person åt gången och då dela det skvaller som de båda vet. • Vad är det minimala antalet telefonsamtal som behövs för att att fyra personer skall veta alla andras hemligheter? • Vi använder reachability analys för att lösa schemaläggningsproblem.