contatti e-mail: [email protected] e-mail: [email protected] ufficio:ca’...
TRANSCRIPT
![Page 1: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/1.jpg)
Contatti
e-mail: [email protected]
ufficio: Ca’ Vignal 2, primo piano, stanza 80
ricevimento: Giovedì, 11-12 oppure su appuntamento
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 1 / 29
![Page 2: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/2.jpg)
Lezione 1: Uppaal
Laboratorio di Sistemi in Tempo Reale
Corso di Laurea in Informatica Multimediale
6 Novembre 2008
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 2 / 29
![Page 3: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/3.jpg)
Outline
1 Una breve introduzione ad Uppaal
2 Il problema dei soldati
3 Un protocollo di mutua esclusione
4 Esercizio
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 3 / 29
![Page 4: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/4.jpg)
UPPAAL è un pacchetto per la simulazione e la verifica di sistemi intempo reale
sviluppato dalle università di Uppsala (Svezia) e Aalborg(Danimarca)utilizza gli automi temporizzati per modellare i sistemidispone di un’interfaccia graficapermette di simulare graficamente il comportamento del sistemaverifica di semplici proprietà di sicurezza e liveness
Programma e documentazione: http://www.uppaal.com
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 4 / 29
![Page 5: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/5.jpg)
Gli automi temporizzati in UPPAAL
nx <= 5
my <= 10
a
x <= 5 and y > 3
x := 0
Orologi: x , yInvarianti: condizioni sugli orologiGuardie: combinazioni booleane di confrontiReset: azioni sugli orologiStati: (locazione, x , y) con x , y ∈ RTransizioni:(n, x = 2.4, y = 3.1414)
a−→(m, x = 0, y = 3.1415)
(n, x = 2.4, y = 3.1414)1.1−→
(n, x = 3.5, y = 4.2415)
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 5 / 29
![Page 6: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/6.jpg)
Un semplice automa temporizzato.
L’automa può attivare la transizione solo dopo che sono passatidue secondiÈ obbligato ad attivarla quando sono passati 3 secondi
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 6 / 29
![Page 7: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/7.jpg)
Estensioni degli automi temporizzati
Template: gli automi sono definite mediante modelli cheaccettano parametri. Questi parametri sono istanziati nelladefinizione del sistema.Variabili intere: lo stato del sistema dipende anche da variabiliintere che vengono modificate solamente dalle transizioni discrete.Reti di automi: un sistema può essere composto da più automiche evolvono in parallelo.Canali: permettono la sincronizzazione tra due automi.Urgent/Committed locations: locazioni dove il tempo non scorree che devono essere lasciate il prima possibile.Array di orologi, canali e variabili.
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 7 / 29
![Page 8: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/8.jpg)
Reti di automi: la macchina del caffè
coin e cof sono due canali di sincronizzazione:
Person inserisce una moneta nella macchina (coin!) e rimane inattesa del caffè (cof?)Machine accetta la moneta (coin?) e, entro 3 secondi, prepara uncaffè (cof !), oppure va in uno stato di errore.
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 8 / 29
![Page 9: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/9.jpg)
Reti di automi: semantica
n1
m1
a!
x1 < 3
x1 := 0
n2
m2
a?
x2 > 5
x2 := 0
Le transizioni etichettate con un canalesi attivano simultaneamente:
entrambe le guardie devono esserevereuna transizione invia un segnale(a!) e l’altra lo riceve (a?)entrambi i reset vengono eseguiti
(n1, n2, x1 = 2.65, x2 = 6.13)a−→ (m1, m2, x1 = 0, x2 = 0)
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 9 / 29
![Page 10: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/10.jpg)
Model Checking e verifica automatica
Descrizione del sistemaTimed Automata A
Requisiti del sistemaSpecifica F
A soddisfa F?
Si!
No!Informazioni diagnostiche
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 10 / 29
![Page 11: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/11.jpg)
Specificare le proprietà in UPPAAL
UPPAAL usa un frammento della logica CTL per specificare le proprietàda verificare:
F ::= op_temporale formula_di_stato
Le formule di stato esprimono proprietà dei singoli stati:
fds ::= Proc.loc | deadlock |x == n | x <= n | x < n | x > n | x >= n |fds and fds | fds or fds |fds imply fds | not fds
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 11 / 29
![Page 12: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/12.jpg)
Operatori temporali: A[], E<>, -->, A<>, E[]
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 12 / 29
![Page 13: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/13.jpg)
Esempi di proprietà
Il sistema non va mai in deadlock: A[] not deadlock
È possibile che il processo P1 rimanga nello stato q per più di 10secondi: E<> (P1.q and x > 10)
Ogni messaggio inviato da P1 viene ricevuto da P2 entro 3secondi: P1.invia --> (P2.riceve and x <= 3)
Il sistema P raggiunge sempre lo stato q in un tempo compresotra 4 e 6 secondi: A<> (P.q and x >= 4 and x <= 6)
È possibile che il sistema P non entri mai nello stato q:E[] not P.q
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 13 / 29
![Page 14: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/14.jpg)
Outline
1 Una breve introduzione ad Uppaal
2 Il problema dei soldati
3 Un protocollo di mutua esclusione
4 Esercizio
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 14 / 29
![Page 15: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/15.jpg)
Il problema dei soldati
?
25
20
5
10 torcia
Campo minato
solo chi ha la torcia può passare per il campo minatoal massimo due soldati possono tenere la torcia
esiste un modo per mettere in salvo tutti i soldati in meno di 60 minuti?
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 15 / 29
![Page 16: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/16.jpg)
Modellare la torcia
L rappresenta la posizione della torcia:se L == 0 la torcia è al di qua del campo minato;se L == 1 la torcia è al di là del campo minato.
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 16 / 29
![Page 17: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/17.jpg)
Modellare il soldato
const int delay è un parametro che rappresenta il tempoimpiegato per attraversare il campo minato.
clock y; (nella finestra "Declaration" di "Soldier") è un orologiolocale.
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 17 / 29
![Page 18: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/18.jpg)
Modellare l’intero problema
Definzione delle variabili globali (nella finestra "Declarations"):chan take, release;int[0,1] L;clock time;
Definizione del sistema ("System declarations"):Soldier1 = Soldier(5);Soldier2 = Soldier(10);Soldier3 = Soldier(20);Soldier4 = Soldier(25);
system Soldier1, Soldier2, Soldier3, Soldier4,Torch;
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 18 / 29
![Page 19: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/19.jpg)
Un piccolo esercizio
L’esempio dei soldati è installato nei PC dei laboratori(bridge.xml)
Provare a riscrivere l’esempio da zero.
Qual’è il tempo minimo che i soldati possono impiegare perattraversare tutti quanti il ponte?
I Dimostrarlo usando le funzioni di verifica di Uppaal!
Modificare l’esempio:I Aggiungendo nuovi soldati;I Aggiungendo una torcia;I Permettendo a tre soldati di tenere la torcia.
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 19 / 29
![Page 20: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/20.jpg)
Outline
1 Una breve introduzione ad Uppaal
2 Il problema dei soldati
3 Un protocollo di mutua esclusione
4 Esercizio
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 20 / 29
![Page 21: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/21.jpg)
Consideriamo un semplice esempio di protocollo di mutua esclusione:
process P0:loopreq0 = 1turn = 1wait until turn == 0 or req1 == 0
sezione critica P0req0 = 0
end loop
process P1:loopreq1 = 1turn = 0wait until turn == 1 or req0 == 0
sezione critica P1req1 = 0
end loop
I due processi sono simmetriciUPPAAL permette di definire il processo una sola volta attraversol’uso di template
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 21 / 29
![Page 22: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/22.jpg)
Consideriamo un semplice esempio di protocollo di mutua esclusione:
process P0:loopreq0 = 1turn = 1wait until turn == 0 or req1 == 0
sezione critica P0req0 = 0
end loop
process P1:loopreq1 = 1turn = 0wait until turn == 1 or req0 == 0
sezione critica P1req1 = 0
end loop
I due processi sono simmetriciUPPAAL permette di definire il processo una sola volta attraversol’uso di template
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 21 / 29
![Page 23: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/23.jpg)
Consideriamo un semplice esempio di protocollo di mutua esclusione:
process P0:loopreq0 = 1turn = 1wait until turn == 0 or req1 == 0
sezione critica P0req0 = 0
end loop
process P1:loopreq1 = 1turn = 0wait until turn == 1 or req0 == 0
sezione critica P1req1 = 0
end loop
I due processi sono simmetriciUPPAAL permette di definire il processo una sola volta attraversol’uso di template
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 21 / 29
![Page 24: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/24.jpg)
Nome template: mutexParametri: bool &reqa, bool &reqb, bool me
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 22 / 29
![Page 25: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/25.jpg)
Il template mutex va istanziato con i parametri corretti per ottenere idue processi simmetrici:
bool req0, req1;bool turn;
P0 = mutex(req0,req1,0);P1 = mutex(req1,req0,1);
system P0,P1;
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 23 / 29
![Page 26: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/26.jpg)
Verificare se il protocollo soddisfa le seguenti proprietà:
P1 riesce ad accedere alla sua regione critica: E<> P1.CS
il sistema non va mai in deadlock: A[] not deadlock
P0 e P1 non possono essere contemporaneamente nella regionecritica: A[] not (P0.CS and P1.CS)
ogni volta che P1 chiede di entrare nella sezione critica la suarichiesta viene soddisfatta: P1.req --> P1.CS
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 24 / 29
![Page 27: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/27.jpg)
Outline
1 Una breve introduzione ad Uppaal
2 Il problema dei soldati
3 Un protocollo di mutua esclusione
4 Esercizio
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 25 / 29
![Page 28: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/28.jpg)
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 26 / 29
![Page 29: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/29.jpg)
Modellare un distributore di bibite e l’utente che lo utilizza.
Il costo di una bibita è pari a 5 monete.L’utente inserisce un certo numero di monete nella macchina(CoinIn), quindi preme il bottone RequestCan oppure cancelSe l’utente preme cancel la macchina restituisce le moneteinserite (CoinOut)Se l’utente preme RequestCan ed il credito inserito è sufficente, lamacchina dà una bibita all’utente più l’eventuale resto (CoinOut)La macchina impiega tra i 5 e i 10 secondi per emettere la lattina.Si assuma che l’utente non inserisca mai più di 10 monete senzapremere nessun bottone.
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 27 / 29
![Page 30: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/30.jpg)
Completare il sistema specificando gli automi per il Distributoredi bibite e per l’Utente in modo che rispettino le specifiche date.
Verificare che:I il sistema non va mai in deadlock;I se il credito è sufficente e se l’utente preme RequestCan, allora la
macchina emette una lattina entro 10 secondi.I se l’utente preme cancel, allora la macchina restituisce il credito
Suggerimento:Iniziare con un modello semplice (la lattina costa 1 moneta, no resto) epoi estenderlo al caso richiesto.
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 28 / 29
![Page 31: Contatti e-mail: davide.bresolin@univr...Contatti e-mail: davide.bresolin@univr.it ufficio:Ca’ Vignal 2, primo piano, stanza 80 ricevimento:Giovedì, 11-12 oppure su appuntamento](https://reader033.vdocuments.pub/reader033/viewer/2022052615/6091e07771aada11d2782d88/html5/thumbnails/31.jpg)
http://profs.sci.univr.it/~bresolin/lab01.pdf
Sistemi in Tempo Reale (Lab) Uppaal 6 Novembre 2008 29 / 29