Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avMarianne Lindqvist
1
1 Modellering med Uppaal Tobias Amnell tobias.amnell@docs.uu.se http://www.docs.uu.se/~tobiasa/ (Materialet lånat av Paul Pettersson)
2
2 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: B A, A B och B C. B är starttillstånd, C sluttillstånd. x,y,z är händelser. Ändliga Tillståndsautomater A BC x y z
3
3 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.
4
4 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. OffLightBright Press?
5
5 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. Nätverk av Automater x? y? z! y! x!
6
6 Exempel: Smart Lysknapp OffLightBright Press? ABC Press! Press? Kan utföra (Off, A), (Light, B), (Off, C) eller......(Off, A), (Light, B), (Bright, C). Hur modellera två snabbt utförda Press?
7
7 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
8
8 Exempel: Smart Lysknapp (forts.) OffLightBright Press?
9
9 Exempel: Smart Lysknapp (forts.) LÖSNING: Vi lägger till en klocka x som mäter tiden. OffLightBright X:=0 X<=3 X>3 Press?
10
10 Tidsautomater Timed Automata n m a (Alur & Dill 1990) Klockor: x, y x 3 x := 0 Klockvillkor Boolesk kombination av jämförelser av klockor med heltalsgränser Tilldelning Nollställning av klockor Händelse används för synkronisering mellan automater
11
11 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? x?x? x! x:=0x<=3
12
12 n m a x 3 x := 0 x<=5 y<=10 g1 g2 g3 g4 En invariant används för att tvinga systemet att utföra en övergång (dvs lämna tillståndet) innan invarianten blir falsk!! Tidsautomater med Invarianter Timed Automata + Invariants (Henzinger et al, 1992) Tillstånds- invarianter Klockor: x, y
13
13 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==0j:=4
14
14 Deklarationer i U PPAAL clock x 1, …, x n ; int i 1, …, i m ; chan a 1, …, a o ; const c 1 n 1, …, c p n p ; 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
15
15 Urgent Channels/Händelse urgent chan skynda; 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. WAIT skynda! x>=MAX_TIME TIME- OUT Måste tas om möjligt
16
16 Urgent Locations/Tillstånd 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. U NOWAIT Någon av ut- övergångarna måste tas direkt
17
17 Commited Locations/Tillstånd Automaten måste fortsätta direkt Inga andra övergångar möjliga Används t.ex. för multicast C COMMIT Någon av ut- övergångarna måste tas direkt x>3a! b! b? a? C
18
18 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)
19
19 UPPAAL Specifikationsspråk p::= a.l | g d | g c | p and p | p or p | not p | p imply p | ( p ) klockvillkor variabelvillkor processtillstånd processnamn A[] p E<> p egenskapen p är alltid sann i modellen. det går att nå ett tillstånd i modellen där egenskapen p är sann.
20
20 Exempel på frågor A[] p - egenskapen p ä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;
21
21 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;
22
22 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; dedded deklarationer dede processer
23
23 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.
24
24 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.
25
25 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.
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.