1 / 25

Modellering med Uppaal

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

lilli
Télécharger la présentation

Modellering med Uppaal

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modellering med Uppaal Tobias Amnell tobias.amnell@docs.uu.se http://www.docs.uu.se/~tobiasa/ (Materialet lånat av Paul Pettersson)

  2. Ä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: BA, AB och BC. B är starttillstånd, C sluttillstånd. x,y,z är händelser. x z A B C y

  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. 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.

  5. 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!

  6. 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!

  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. Exempel: Smart Lysknapp (forts.) Press? Off Light Bright Press? Press? Press?

  9. 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.

  10. 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

  11. 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

  12. (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

  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==0 j:=4

  14. 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

  15. 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

  16. 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.

  17. 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?

  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. 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

  20. 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;

  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. 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

  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. 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. 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.

More Related