ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-1

Σχετικά έγγραφα
Φροντιστήριο 8 Φύλλο Ασκήσεων UPPAAL 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Σειρά Προβλημάτων 3 Ημερομηνία Παράδοσης: 04/04/16

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

CTL Έλεγχος Μοντέλου (ΗR Κεφάλαιο 3.5 και 3.6.1)

Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα:

CTL - Λογική Δένδρου Υπολογισμού (ΗR Κεφάλαιο 3.4)

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Αυτοματοποιημένη Επαλήθευση

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Κατανεμημένα Συστήματα Ι

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

CTL - Λογική Δένδρου Υπολογισμού

Γραμμική και διακλαδωμένη χρονική λογική

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Διπλωματική Εργασία : Σαρακατσάνος Ορέστης Επιβλέπων καθηγητής: Γεώργιος Χασάπης Καθηγητής

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας

Κατανεμημένα Συστήματα Ι

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 9: Αλγόριθμοι Αμοιβαίου Αποκλεισμού με τη χρήση μεταβλητών Ανάγνωσης/Εγγραφής. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Η γλώσσα προγραμματισμού Strange

Λειτουργικά Συστήματα Η/Υ

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

Δομημένος Προγραμματισμός (ΤΛ1006)

Σειρά Προβλημάτων 1 Λύσεις

Διάλεξη 8: Πρόβλημα Αμοιβαίου Αποκλεισμού. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Χρονικά Συστήματα και Σχέσεις Ισοδυναμίας

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Ακολουθιακός Κώδικας

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως

Άλγεβρες Διεργασιών και Σχέσεις Ισοδυναμίας

Λειτουργικά Συστήματα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

Pascal. 15 Νοεμβρίου 2011

Βασικά Στοιχεία της Java

Ανάλυση της Ορθότητας Προγραμμάτων

Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

Ψευδοκώδικας. November 7, 2011

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

Διαδικασιακός Προγραμματισμός

ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΣΤΗ CTL/LTL

ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-1

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές.

09 Η γλώσσα UML II. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Βασικές Δομές μοντέλων Petri Nets. C.A. Petri

Κατανεμημένα Συστήματα Ι

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL

Σειρά Προβλημάτων 4 Ημερομηνία Παράδοσης: 13/11/13

Λειτουργικά Συστήματα

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ

Αντικειμενοστρεφής Προγραμματισμός

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 Συµπληρωµατική ΔΙΑΛΕΞΗ 14: Περιγραφή Ακολουθιακών Κυκλωµάτων στη VHDL

for for for for( . */

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΠΡΟΔΙΑΓΡΑΦΗ ΙΔΙΟΤΗΤΩΝ ΜΕ ΧΡΟΝΙΚΗ ΛΟΓΙΚΗ Ι

Σειρά Προβλημάτων 1 Λύσεις

ΗΥ-150. Προγραμματισμός

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΗΥ-150. Προγραμματισμός

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Η/Υ (ΤΛ2007 )

Στοιχειώδης προγραμματισμός σε C++

Η γλώσσα προγραμματισμού EEL

Βασικά Στοιχεία της Java

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας

Κατανεμημένα Συστήματα Ι

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1

Λύσεις 4ης Σειράς Ασκήσεων

Κατανεμημένα Συστήματα Ι

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

ιαγράµµατα Αλληλεπίδρασης ιαγράµµατα Ακολουθίας ιαγράµµατα Επικοινωνίας

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Σειρά Προβλημάτων 5 Λύσεις

Ανάλυση της Ορθότητας Προγραμμάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Πληροφορική ΙΙ Θεματική Ενότητα 6

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο

Transcript:

To εργαλείο UPPAAL Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Εισαγωγή στo εργαλείο UPPAAL Γλώσσα Μοντελοποίησης Ο προσομοιωτής Ο επαληθευτής ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-1

Εισαγωγή στην UPPAAL Το εργαλείο UPPAAL αποτελεί ένα μοντελοελεγκτή μέσω του οποίου μπορούμε να μοντελοποιούμε, να προσομοιώνουμε και να ελέγχουμε τη συμπεριφορά συστημάτων πραγματικού χρόνου Ελεγκτές πραγματικού χρόνου Πρωτόκολλα επικοινωνίας Εφαρμογές πολυμέσων Αναπτύχθηκε από Uppsala University + Aalborg University = UPPAAL Πρώτη εκδοχή το 1995 Διατίθεται από: http://www.uppaal.org ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-2

Εισαγωγή στο εργαλείο UPPAAL To εργαλείο UPPAAL λαμβάνει ως είσοδο συστήματα Χρονικών Αυτομάτων τα οποία συνοδεύονται από Ακέραιες μεταβλητές Δομές δεδομένων Κανάλια Επικοινωνίας Κρίσιμες συμπεριφορές Υποστηρίζεται ο μοντελοέλεγχος ιδιοτήτων διατυπωμένων στη χρονική επέκταση του λογισμού CTL. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-3

Αρχιτεκτονική Συστήματος Περιλαμβάνει: Γραφική διεπιφάνεια Προσομοιωτή Μοντελοελεγκτή ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-4

Μοντέλα UPPAAL Ένα μοντέλο στην UPPAAL περιλαμβάνει ένα δίκτυο από αυτόματα η περιγραφή των οποίων χωρίζεται σε τρία τμήματα: Οι καθολικές και τοπικές δηλώσεις Οι κλάσεις των αυτομάτων Ο ορισμός του συστήματος Το επόμενο παράδειγμα προέρχεται από το Uppaal release (φάκελος demo). ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-5

Παράδειγμα Καθολικές Δηλώσεις ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-6

Κλάση αυτόματου Train Παράδειγμα (συν.) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-7

Παράδειγμα (συν.) Τοπικές Δηλώσεις αυτομάτου Train ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-8

Κλάση αυτόματου Gate Παράδειγμα (συν.) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-9

Παράδειγμα (συν.) Τοπικές Δηλώσεις αυτομάτου Gate ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-10

Παράδειγμα (συν.) Το σύστημα ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-11

Γλώσσα Μοντελοποίησης Tα χρονικά αυτόματα στην Uppaal, επεκτείνουν τον ορισμό που έχουμε δώσει, αφού διαθέτουν παραμέτρους και μεταβλητές τις οποίες μπορούν επεξεργάζονται μέσω συναρτήσεων. 4 τύποι δεδομένων int: [-32768, 32767] bool: {true,false} clock: ρολόγια chan: κανάλια ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-12

Δηλώσεις Οι δηλώσεις μπορούν είτε να αναφέρονται τοπικά σε μία κλάση αυτομάτου, είτε καθολικά σε ένα σύστημα από αυτόματα Περιλαμβάνουν Δηλώσεις Pολογιών Δηλώσεις Ακεραίων Δηλώσεις Καναλιών Δηλώσεις Πινάκων Δηλώσεις Τύπων Δηλώσεις Εγγραφών ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-13

Δηλώσεις - Παραδείγματα const int a = 1; Δηλώνεται η σταθερά a τύπου int με τιμή 1 bool b[8], c[4]; Δηλώνονται δύο πίνακες τύπου boolean, με ονόματα b και c, και μήκος 8 και 4 αντίστοιχα. int[0,100] a=5; Δηλώνεται η ακέραια μεταβλητή a η οποία παίρνει τιμές από το πεδίο [0, 100] και η οποία αρχικοποιείται με 5. int a[2][3] = {{1,2,3},{4,5,6}}; Δηλώνεται ένας δυσδιάστατος πίνακας ο οποίος και αρχικοποιείται clock x, y; Δηλώνονται δύο ρολόγια ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-14

chan d; Δηλώνεται ένα κανάλι Δηλώσεις - Παραδείγματα struct {int a; bool b;} s1 = {2,true} Δηλώνεται η s1 ως εγγραφή με δύο πεδία, τα a και b, η οποία και αρχικοποιείται. typedef struct {int a; bool b; clock c;} S; Δήλωση εγγραφής ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-15

Εκφράσεις Εκφράσεις στην Uppaal έχουν ως βασικά δομικά στοιχεία Μεταβλητές Ακέραιοι Βάσει αυτών μπορούμε να κτίσουμε: Ε ::= E [E] ( Ε ) E ++ Ε -- E := E E = E Unary E E Binary E E? E : E E.ID Unary ::= + -! not Binary ::= < <= ==!= >= > + - * / && E1? E2 : E3 = if E1 then E2 else E3 Εκφράσεις που χρησιμοποιούν ρολόγια είναι επιτρεπτές σε συνθήκες κατάστασης, φρουρούς μεταβάσεων και περιορισμούς. Η σύνταξή τους είναι περιορισμένη ανάλογα με την περίπτωση. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-16

Κλάσεις Αυτομάτων Στην UPPAAL μπορούμε να ορίσουμε κλάσεις (template) χρονικών αυτομάτων. Κάθε κλάση αυτομάτου μπορεί Να χρησιμοποιεί εκφράσεις για να ελέγχει και να ενημερώνει τις τιμές των ρολογιών, των μεταβλητών και των εγγραφών. Να καλεί συναρτήσεις. Να έχει τοπικές μεταβλητές και παραμέτρους. Παράμετροι στις κλάσεις μπορούν να δηλωθούν ως Call by value (περνούμε την τιμή) call-by-reference (περνούμε τη διεύθυνση) Τα κανάλια και τα ρολόγια δηλώνονται πάντα ως παράμετροι call-byreference P(clock &x, bool bit, chan &ack) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-17

Κλάσεις Αυτομάτων και Παράμετροι ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-18

Κλάσεις Αυτομάτων και Στιγμιότυπα Στιγμιότυπα μιας κλάσης αυτομάτου μπορούν να δημιουργηθούν στον ορισμό του συστήματος. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-19

Αυτόματα στην Uppaal Αυτόματα στην Uppaal αποτελούνται από τοποθεσίες (locations) και ακμές (edges). Οι τοποθεσίες αναπαριστούνται ως κύκλοι μπορούν να έχουν κάποιο όνομα (name) συσχετίζονται με ιδιότητες κατάστασης (invariant) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-20

Αυτόματα στην Uppaal Οι ακμές συνδέουν ζεύγη τοποθεσιών συσχετίζονται με επιλογές (selections) φρουρούς (guards), συγχρονισμούς (synchronisations) και ενημερώσεις (updates). ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-21

Παράδειγμα ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-22

Τοποθεσίες Ιδιότητες κατάστασης ακολουθούν τη σύνταξη των εκφράσεων με τους πιο κάτω περιορισμούς: Αποτελούν συζεύξεις απλών συνθηκών σε ρολόγια ή τη διαφορά της τιμής δύο ρολογιών Λογικές εκφράσεις που δεν εμπεριέχουν ρολόγια Τα όρια στις συνθήκες πρέπει να είναι εκφράσεις πάνω σε ακέραιες τιμές Απαγορεύεται η χρήση κατώτατων συνθηκών σε ρολόγια. Οι πιο κάτω είναι έγκυρες ιδιότητες κατάστασης όπου τα x και y είναι ρολόγια και το A είναι ένας πίνακας τύπου int. x <= 2 x < y (A[0]+1)!= (A[1]*10) Αρχικές Τοποθεσίες Κάθε κλάση αυτομάτου πρέπει να έχει ακριβώς μια αρχική τοποθεσία Η αρχική τοποθεσία σημειώνεται με διπλό κύκλο ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-23

Τοποθεσίες Κρίσιμες Τοποθεσίες (urgent locations) Παγώνουν τον χρόνο Σημασιολογικά, αυτό είναι ισοδύναμο με: Εισάγουμε ένα καινούριο ρολόι x το οποίο να μηδενίζεται σε κάθε ακμή εισόδου της κατάστασης καθώς και την ιδιότητα κατάστασης x <= 0. Δεσμευμένες Τοποθεσίες (Committed locations) Παγώνουν τον χρόνο Αν κάποιο αυτόματο βρίσκεται σε δεσμευμένη τοποθεσία, η επόμενη μετάβαση πρέπει να χρησιμοποιεί κάποια ακμή από κάποια δεσμευμένη τοποθεσία του συστήματος. Οι δεσμευμένες τοποθεσίες χρησιμοποιούνται για τη δημιουργία ατομικών ακολουθιών μεταβάσεων και για να διασφαλίζουν συγχρονισμό ανάμεσα σε περισσότερες από 2 οντότητες. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-24

Κρίσιμες Τοποθεσίες - Παράδειγμα Για να εξαναγκάσουμε τη μετάβαση στο l2 να γίνει άμεσα: Χρησιμοποιούμε ρολόγια, ή Δηλώνουμε την τοποθεσία ως κρίσιμη Τα P και Q έχουν την ίδια συμπεριφορά. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-25

Δεσμευμένες Τοποθεσίες Παράδειγμα Έστω ότι το αυτόματο P θέλει να στείλει ταυτόχρονα τα μηνύματα a και b σε δύο διεργασίες. Η δήλωση της τοποθεσίας n ως κρίσιμη έχει σαν αποτέλεσμα το πάγωμα του χρόνου στην τοποθεσία χωρίς όμως να αποτρέπει την παρεμβολή άλλων διεργασιών, π.χ. το Q: ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-26

Δεσμευμένες Τοποθεσίες Παράδειγμα Αν όμως δηλώσουμε την n ως δεσμευμένη αποτρέπει την παρεμβολή οποιασδήποτε άλλης διεργασίας σε αυτό το σημείο. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-27

Ακμές και ενημερώσεις Ενημερώσεις/Updates: Εκφράσεις που εκτελούνται κατά την εκτέλεση μιας μετάβασης Παραδείγματα x = 0 j = ( i[1]>i[2]? i[1] : i[2] ) x = 1, y=2*x Οι εκφράσεις εκτελούνται σειριακά, π.χ. στην ενημέρωση x = 1, y=2*x θα εκτελεστεί πρώτα το x = 1 και μετά το y=2*x ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-28

Ακμές και επιλογές, φρουροί Επιλογές/Selections: Δεσμεύουν μη ντετερμινιστικά μια μεταβλητή σε κάποια τιμή από ένα πεδίο. select: i : int[0,3] Φρουροί/Guards: Διατυπώνουν τις συνθήκες κάτω από τις οποίες η μετάβαση είναι εκτελέσιμη. Αποτελούν συζεύξεις απλών συνθηκών σε ρολόγια ή τη διαφορά της τιμής δύο ρολογιών Λογικές εκφράσεις που δεν εμπεριέχουν ρολόγια Τα όρια στις συνθήκες πρέπει να είναι εκφράσεις πάνω σε ακέραιες τιμές Παράδειγμα: x >= 1 && x <= 2 (i[0]+1)!= (i[1]*10) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-29

Ακμές και συγχρονισμοί Συγχρονισμοί/Synchronisation: Περιέχουν το όνομα μιας ενέργειας πάνω στην οποία η μετάβαση οφείλει να συγχρονιστεί με κάποιο άλλο αυτόματο. Δύο είδη ενεργειών: e? και e! Δυο αυτόματα συγχρονίζονται όταν έχουν συμπληρωματικές ενέργειες συγχρονισμού. Οι ενέργειες e1? και e2! είναι συμπληρωματικές αν οι εκφράσεις e1 και e2 αναφέρονται στο ίδιο κανάλι. Όταν δύο αυτόματα συγχρονίζονται Οι μεταβάσεις τους εκτελούνται ταυτόχρονα Οι ενημερώσεις της ακμής που εκτελεί την ενέργεια e1! υλοποιούνται πριν από τις ενημερώσεις της ακμής που εκτελεί την ενέργεια e2?. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-30

Ακμές και συγχρονισμοί Κρίσιμα κανάλια (urgent channels): Ο συγχρονισμός πάνω σε κρίσιμα κανάλια δεν μπορεί να καθυστερήσει. Δεν επιτρέπεται να ορίζουμε φρουρούς με ρολόγια σε ακμές που χρησιμοποιούν κρίσιμα κανάλια Κανάλια εκπομπής (broadcast channels): Επιτρέπουν συγχρονισμούς του τύπου 1-to-many. Όταν εκτελείται η ενέργεια e! και το e είναι κανάλι εκπομπής, τότε όλες οι διαθέσιμες μεταβάσεις με ενέργεια e? θα συγχρονιστούν μαζί του. Δεν είναι απαραίτητο να υπάρχει διαθέσιμη ενέργεια e?. Δεν επιτρέπεται να ορίζουμε φρουρούς με ρολόγια σε ακμές που περιμένουν κάποιο μήνυμα σε κανάλι εκπομπής. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-31

Κρίσιμα Κανάλια Παράδειγμα 1 Έστω ότι δύο διεργασίες μπορούν να συγχρονιστούν μέσω ενός καναλιού και επιθυμούμε ο συγχρονισμός να πραγματοποιηθεί μόλις και οι δυο διεργασίες είναι έτοιμες. Είναι δυνατόν να εκφράσουμε αυτή τη συμπεριφορά χρησιμοποιώντας ιδιότητες κατάστασης; Όχι. Για παράδειγμα στην τοποθεσία l1 δεν είναι δυνατό να ξέρουμε πότε η Q θα φτάσει στην τοποθεσία s1. Λύση: δηλώνουμε το κανάλι a ως κρίσιμο κανάλι. urgent chan a; ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-32

Κρίσιμα Κανάλια Παράδειγμα 2 Tα κρίσιμα κανάλια επίσης μας διευκολύνουν να ορίζουμε μεταβάσεις που πρέπει να εκτελεστούν αμέσως μόλις ο φρουρός τους γίνει true. Έστω ότι θέλουμε η μετάβαση από το l1 στο l2 να συμβεί μόλις i==5 (i μεταβλητή δεδομένων). Δημιουργούμε ένα καινούριο κρίσιμο κανάλι και μια παράλληλη διεργασία έτοιμη να συγχρονιστεί σε αυτό. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-33

Συστήματα Σύστημα: ορίζει το μοντέλο ενός συστήματος Αποτελείται από Ένα ή περισσότερα αυτόματα Τοπικές και καθολικές μεταβλητές Κανάλια Οι δηλώσεις μεταβλητών και καναλιών δεν είναι άμεσα προσβάσιμες από τις κλάσεις αυτομάτων αφού ορίζονται μετά από αυτές. Χρησιμεύουν για να δώσουν τιμές στις τυπικές παραμέτρους των κλάσεων. Λέξη κλειδί system: χρησιμοποιείται για να δημιουργήσει τα αυτόματα που απαρτίζουν το σύστημα ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-34

System Declaration Παράδειγμα const int fastest = 5; const int fast = 10; const int slow = 20; const int slowest = 25; Viking1 = Soldier(fastest); Viking2 = Soldier(fast); Viking3 = Soldier(slow); Viking4 = Soldier(slowest); system Viking1, Viking2, Viking3, Viking4, Torch; ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-35

Ο Προσομοιωτής Ο προσομοιωτής (simulator) του εργαλείου UPPAAL επιτρέπει τη διενέργεια προσομοιώσεων ενός μοντέλου. Επιτρέπει Παρακολούθηση συμπεριφορών καθώς και Μετακίνηση μπρος και πίσω πάνω σε μία εκτέλεση Παρακολούθηση των τιμών των μεταβλητών Παρακολούθηση της επικοινωνίας ανάμεσα στις διάφορες συνιστώσεις μέσω Message Sequence Chart. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-36

Ο Προσομοιωτής ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-37

Ο Επαληθευτής Ο Επαληθευτής (verifier) επιτρέπει το μοντελοέλεγχο ιδιοτήτων ασφάλειας και ζωτικότητας διατυπωμένων σε μια χρονική εκδοχή της χρονικής λογικής CTL. Γλώσσα προδιαγραφής ιδιοτήτων: φ ::= A[] Expression E<> Expression E[] Expression A<> Expression Expression --> Expression Expression είναι οποιαδήποτε νόμιμη έκφραση της γλώσσας. Επιπλέον ως έκφραση μπορούμε να γράψουμε την process.location της οποίας η τιμή γίνεται true όταν η διεργασία process βρίσκεται στην τοποθεσία location. Σημείωση: δεν επιτρέπεται το φώλιασμα των χρονικών τελεστών. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-38

Επεξήγηση Τελεστών A[] φ AG φ Σε κάθε εκτέλεση και κάθε κατάσταση αυτής ισχύει το φ E<> φ ΕF φ Υπάρχει εκτέλεση όπου στο μέλλον φ E[] φ ΕG φ Υπάρχει εκτέλεση όπου σε κάθε κατάσταση αυτής ισχύει το φ A<> φ AF φ Σε κάθε εκτέλεση στο μέλλον φ φ1 --> φ2 AG(φ1 AF φ2) Σε κάθε εκτέλεση και πάντοτε αν φ1 τότε σε κάθε εκτέλεση στο μέλλον φ2 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-39

Παραδείγματα E<> (p1.cs and p2.cs) A[] (p1.cs imply not p2.cs) A[] not deadlock A<> (P1.Landed and P2.Landed) A[] [(P1.Landed and P2.Landed) imply (y>=3 or z>=3) ] ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-40

Ο Επαληθευτής ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-41

Case Study Ο Αλγόριθμος του Fischer Αμοιβαίος Αποκλεισμός Τυπική Δομή Αλγόριθμου while true do begin remainder region trying region critical region exit region end Στόχος Ανά πάσα στιγμή το πολύ μια διεργασία μπορεί να βρίσκεται στην κρίσιμή της περιοχή Απουσία Αδιεξόδων ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-42

Impossibility Results Γνωστοί αλγόριθμοι για n διεργασίες Απαιτούν Ο(n) καταχωρητές και Ο(n) πράξεις πάνω σε αυτές Μη πρακτικό για εφαρμογές μεγάλου μεγέθους Υπάρχει καλύτερος αλγόριθμος; Θεώρημα [Burns/Lynch 1996] Δεν υπάρχει ασύγχρονος αλγόριθμος για διασφάλιση αμοιβαίου αποκλεισμού ανάμεσα σε n 2 διεργασίες που να χρησιμοποιεί λιγότερους από n καταχωρητές. Impossibility results Θέτουν ακριβή όρια στο τι είναι ή όχι εφικτό στα πλαίσια ενός υπολογιστικού μοντέλου Διασαφηνίζουν τις συνθήκες κάτω από τις οποίες υπάρχουν τα όρια Οι συνθήκες ικανοποιούνται σε διαφορετικά σενάρια; Τι συμβαίνει σε υπολογιστικά μοντέλα που ικανοποιούν διαφορετικές ιδιότητες; ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-43

Χρονικός Αλγόριθμος Αμοιβαίου Αποκλεισμού Ο Αλγόριθμος του Fischer: o πρώτος αλγόριθμος που «έσπασε» το κάτω φράγμα των Ο(n) καταχωρητών. Χρησιμοποιεί ένα κοινό καταχωρητή, id, με αρχική τιμή 0. Επιτρέπει στις διεργασίες, να καθυστερήσουν για κάποιο χρόνο delay ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-44

Ο Αλγόριθμος του Fischer Κώδικας για τη διεργασία με αναγνωριστικό i: while true do begin nocritical section ; L: if id!= 0 then goto L; 1: id = i; 2: pause (delay); 3: if id!= i then goto L; critical section ; id := 0; end ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-45

Η καθυστέρηση delay Ποια είναι η κατάλληλη επιλογή για την καθυστέρηση delay; Έστω k ο μέγιστος χρόνος οποιουδήποτε βήματος και οποιασδήποτε διεργασίας που συμμετέχει στον αλγόριθμο. Θέτουμε delay > k. Επεξήγηση Επιλογής: Mέχρι τη στιγμή που μια διεργασία φτάσει στο βήμα 3, όλες οι διεργασίες που πέρασαν τον έλεγχο στο βήμα L έχουν εκτελέσει και το βήμα 2 αφού η καθυστέρηση είναι μεγαλύτερη από τον μέγιστο χρόνο που θα μπορούσε να καθυστερήσει αυτό το βήμα. Επομένως, αν στο βήμα 3 μια διεργασία βρει το id να έχει ως τιμή την τιμή του αναγνωριστικού της, μπορεί να προχωρήσει στο κρίσιμό της τμήμα ως η διεργασία που υπερισχύει έχοντας γράψει τελευταία την τιμής της στον καταχωρητή. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-46

Μοντελοποίηση του Αλγόριθμου Κοινή μεταβλητή clock x; Σταθερά Παράμετρος: το αναγνωριστικό της κάθε διεργασίας ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-47

Δήλωση Κλάσης Όνομα κλάσης Παράμετροι κλάσης ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-48

Καθολικές και Τοπικές Δηλώσεις ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-49

Ανάλυση του Αλγόριθμου Αμοιβαίος Αποκλεισμός: A[] forall (i:id_t) forall (j:id_t) P(i).cs && P(j).cs imply i == j Απουσία Αδιεξόδων: A[] not deadlock Παρατεταμένη στέρηση: P(1).req --> P(1).cs ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-50

Μοντελοέλεγχος Ιδιοτήτων (1) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-51

Μοντελοέλεγχος Ιδιοτήτων (2) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-52

Μοντελοέλεγχος Ιδιοτήτων (3) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-53

Παραλλαγή του μοντέλου Τι θα γίνει αν μειωθεί η καθυστέρηση; ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-54

Παραβιάζεται ο αμοιβαίος αποκλεισμός ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-55

http://www.uppaal.org Βοηθητικό Υλικό http://www.it.uu.se/research/group/darts/papers/texts/new-tutorial.pdf http://www.it.uu.se/research/group/darts/papers/texts/lpw-sttt97.ps.gz Στο Help του εργαλείου! ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-56