Θέματα στη Μοντελοποίηση Συστημάτων

Σχετικά έγγραφα
Αυτοματοποιημένη Επαλήθευση

Γραμμική Χρονική Λογική (Linear Temporal Logic)

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

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

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

Γραμμική Χρονική Λογική (Linear Temporal Logic) (ΗR Κεφάλαιο 3.1 και 3.2)

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

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

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

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

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

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

Διάλεξη 18: Πρόβλημα Βυζαντινών Στρατηγών. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Χρόνος και Άλγεβρες Διεργασιών

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

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

Ασκήσεις Επανάληψης Λύσεις

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Διεργασίες (Processes)

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

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

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

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

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

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

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

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

Αλγόριθμοι και Πολυπλοκότητα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

Pascal, απλοί τύποι, τελεστές και εκφράσεις

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

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

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Μοντελοποίηση Υπολογισμού. Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις

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

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

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

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

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

οµήτης παρουσίασης Marzullo και Neiger αλγόριθµος Παράδειγµα Distributed Debugging Εισαγωγικά

Ιδιοκτησία Αντικειµένου

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

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

ΕΠΛ664 ΑΝΑΛΥΣΗ ΚΑΙ ΕΠΑΛΗΘΕΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

Πληροφορική 2. Αλγόριθμοι

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Δομές Δεδομένων Ενότητα 2

Θέματα υπολογισμού στον πολιτισμό

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

ΕΦΑΡΜΟΓΗ Q-LEARNING ΣΕ GRID WORLD ΚΑΙ ΕΞΥΠΝΟΣ ΧΕΙΡΙΣΜΟΣ ΤΟΥ LEARNING RATE ΛΑΘΙΩΤΑΚΗΣ ΑΡΗΣ ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ

Περιεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ.

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

Αμοιβαίος αποκλεισμός

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Διδακτική της Πληροφορικής

Α Typing System for Privacy

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

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

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

2.4 Κλασσικά Προβλήματα IPC

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Transcript:

Θέματα στη Μοντελοποίηση Συστημάτων Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Σειριακά και συντρέχοντα συστήματα Συστήματα μεταβάσεων Δικαιοσύνη Σημασιολογία παρεμβαλλόμενης διάταξης Σημασιολογία μερικής διάταξης ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-1

Μοντελοποίηση Μοντελοποίηση: η δημιουργία αντικειμένων τα οποία συλλαμβάνουν τη συμπεριφορά συστημάτων. Ένα μοντέλο επιτρέπει τη διεξαγωγή συμπερασμάτων για τη συμπεριφορά του συστήματος στο οποίο αντιστοιχεί. Η μοντελοποίηση συστημάτων συνήθως συνεπάγεται τη διαδικασία της απόσπασης (abstraction), δηλαδή, της απλοποίησης της περιγραφής ενός συστήματος διατηρώντας μόνο ένα περιορισμένο αριθμό από τις αρχικές λεπτομέρειες. Η απόσπαση (abstraction) μπορεί να καταστεί αναγκαία λόγω της πολυπλοκότητας συστημάτων Αυστηρές μέθοδοι δεν μπορούν να εφαρμοστούν σε φυσικές οντότητες (π.χ. μνήμη του υπολογιστή) έτσι οι σχετικές ιδιότητές τους πρέπει να αποσπαστούν μαθηματικά. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-2

Μοντελοποίηση Εφαρμογή τυπικών μεθόδων ξεκινά με τη μοντελοποίηση/διατύπωση του συστήματος στη συγκεκριμένη σύνταξη του εργαλείου που θα χρησιμοποιηθεί. Το μοντέλο ενός συστήματος μπορεί να κατασκευαστεί και να μελετηθεί πριν ή παράλληλα με τον σχεδιασμό και την υλοποίησή του. Θα ασχοληθούμε με τη μοντελοποίηση Σειριακών (sequential) συστημάτων Συντρεχόντων (concurrent) συστημάτων Κατανεμημένα συστήματα Αντενεργά (reactive) συστήματα Ενθυλακωμένα (embedded) συστήματα (software + hardware). ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-3

Σειριακά (sequential) συστήματα Εκτελούν κάποιο υπολογισμό. Έχουν κάποια αρχική κατάσταση. π.χ. 0 i n A[i] 0, A[i] integer Έχουν κάποιο τελικό στόχο. π.χ. 0 i n-1 A[i] < A[i+1] Συνήθως, πρέπει να τερματίζουν. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-4

Συντρέχοντα συστήματα Εμπεριέχουν πολλούς υπολογιστικούς πράκτορες. Ο τερματισμός δυνατόν να υποδηλώνει κάποια ανωμαλία (deadlock, interrupt). Μπορεί να χρησιμοποιούν ενέργεια από πολλαπλές πηγές. Δυνατόν να υπάρχουν απομακρυσμένες συνιστώσες. Αλληλεπίδραση με τους χρήστες (Reactive). Μπορεί να εμπεριέχει λογισμικό (Embedded). multiprogramming vs multiprocessing Μη-ντετερμινισμός (nondeterminism): από κάποιο σημείο πιθανόν να υπάρχουν περισσότερες από μία δυνατές εξελίξεις του συστήματος ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-5

Θέματα στη μοντελοποίηση συστημάτων Αναπαράσταση ταυτοχρονισμού (σε συντρέχοντα συστήματα): Μία μετάβαση ανά πάσα στιγμή Συμπίπτουσες μεταβάσεις Μερική διάταξη ανάμεσα σε γεγονότα Μέγεθος (granularity) των γεγονότων Μοντέλο εκτέλεσης Μας ενδιαφέρει το σύνολο των δυνατών εκτελέσεων (linear model) ή όλες οι διαφορετικές συμπεριφορές από κάθε σημείο (branching model) Ολικές ή τοπικές καταστάσεις ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-6

Συστήματα Μεταβάσεων Κατάσταση: βασική έννοια στη μοντελοποίηση συστημάτων Συλλαμβάνει πληροφορίες για το σύστημα κάποια δεδομένη στιγμή, π.χ. ανάθεση τιμών στις μεταβλητές ενός προγράμματος, ή/και ανάθεση τιμών σε επιπλέον χρήσιμες μεταβλητές, όπως program counter, ουρές, κλπ ιδιότητες που ικανοποιεί το σύστημα τη δεδομένη στιγμή Αρχικές καταστάσεις τελικές καταστάσεις Συμπεριφορά Βήματα που μπορούν να εκτελεστούν σε κάθε κατάσταση. Σύστημα μεταβάσεων: περιγράφει τις δυνατές καταστάσεις από τις οποίες μπορεί να διέλθει το σύστημα καθώς και τις μεταβάσεις που μπορούν να γίνουν μεταφέροντας το σύστημα από μία κατάσταση σε κάποια άλλη. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-7

Συστήματα Μεταβάσεων Ένα σύστημα μεταβάσεων είναι μια πλειάδα,,,,, είναι ένα σύνολο καταστάσεων είναι ένα σύνολο ενεργειών a : Act είναι το σύνολο των μεταβάσεων s t S είναι το σύνολο των αρχικών καταστάσεων είναι ένα σύνολο από ατομικές προτάσεις : 2 είναι μια συνάρτηση η οποία συσχετίζει κάθε κατάσταση με ένα σύνολο από ατομικές προτάσεις. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-8

Παράδειγμα Ελατήριο release pull release s 0 s 1 s 2 {extended} {extended, malfunction} pull Καταστάσεις: S = {s 0, s 1, s 2 } Αρχικές Καταστάσεις: S 0 = {s 0 } Ενέργειες: Act = {release, pull} Σχέση μεταβάσεων: = {(s 0, pull, s 1 ), (s 1, release, s 0 ), (s 1, release, s 2 ), (s 2, pull, s 2 )}, Ατομικές Προτάσεις: AP = {extended, malfunction} L(s 0 ) = {}, L(s1) = {extended}, L(s 2 ) = {extended, malfunction} ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-9

Εκτελέσεις Εκτέλεση του συστήματος είναι ένα οποιοδήποτε μονοπάτι μπορεί να ληφθεί από το σύστημα το οποίο ξεκινά από μια αρχική κατάσταση και είτε είναι μη-πεπερασμένο s 0 a 1 a2 a3 s s... s S 1 2 είτε είναι πεπερασμένο και καμιά μετάβαση δεν είναι εφικτή από την τελευταία κατάσταση: a1 a2 an s0 s1... sn, s0 S0, s 0 0 n ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-10

Μοντελοποίηση προγραμμάτων Πως μπορούμε να κατασκευάσουμε συστήματα μεταβάσεων για προγράμματα στα οποία η συμπεριφορά εξαρτάται άμεσα από τις τιμές των μεταβλητών (data-driven computation); Έστω ένα πρόγραμμα με μεταβλητές στο σύνολο V={v 0,v 1,v 2, }. Κατάσταση του προγράμματος: μία ανάθεση τιμών στις μεταβλητές. Πεδίο καταστάσεων του προγράμματος: το σύνολο όλων των δυνατών καταστάσεων στις οποίες μπορεί να βρεθεί. Για παράδειγμα, αν V = {a,b,c} και οι μεταβλητές είναι τύπου int, τότε το πεδίο καταστάσεων περιέχει τις καταστάσεις: <a=0,b=0,c=0> <a=1,b=0,c=0> <a=1,b=1,c=0> <a=932,b=5609,c=6658> ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-11

Μοντελοποίηση προγραμμάτων - Μεταβάσεις Για να συλλάβουμε τις μεταβάσεις του συστήματος, μπορούμε να χρησιμοποιήσουμε τη γλώσσα φρουρημένων εντολών του Dijkstra (guarded command language) Μία φρουρημένη εντολή έχει τη μορφή p (v 1,v 2,,v n ):=(e 1,e 2,,e n ) όπου p είναι η συνθήκη για να εκτελεστεί η μετάβαση με βήμα την πολλαπλή ανάθεση (v 1,v 2,,v n ):=(e 1,e 2,,e n ) Παράδειγμα: a>b (c,d):=(d,c) Αν a>b η μετάβαση εκτελείται με αποτέλεσμα την ανταλλαγή των τιμών των c και d. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-12

Γράφος Προγράμματος Ένας γράφος προγράμματος αποτελεί μια πλειάδα (V, S, Τ, p)όπου Vείναι ένα σύνολο μεταβλητών Sείναι ένα σύνολο καταστάσεων Τ είναι ένα πεπερασμένο σύνολο φρουρημένων εντολών. p είναι η αρχική συνθήκη Το πρόγραμμα ξεκινά από καταστάσεις που ικανοποιούν την αρχική συνθήκη. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-13

Εκτελέσεις Μία εκτέλεση είναι μία πεπερασμένη ή μη-πεπερασμένη ακολουθία από καταστάσεις s0 s1 s2... όπου η αρχική κατάσταση ικανοποιεί την αρχική συνθήκη, δηλαδή, p(s 0 ). Από την κατάσταση s i επάγεται η κατάσταση s i+1 μέσω εκτέλεσης μιας μετάβασης e t όπου : e(s i ), δηλαδή, η κατάσταση s i ικανοποιεί τη συνθήκη e, και s i+1 λαμβάνεται εφαρμόζοντας το βήμα t στην κατάσταση s i. Από ένα γράφο προγράμματος, μπορούμε να δημιουργήσουμε το σύστημα μεταβάσεων που αντιστοιχεί στο πρόγραμμα. Ξεκινούμε από την αρχική κατάσταση/τις αρχικές καταστάσεις που ικανοποιεί/ούν την αρχική συνθήκη p, και Εφαρμόζουμε όλες τις δυνατές μεταβάσεις σύμφωνα με το Τ προσθέτοντας καινούριες καταστάσεις και ακμές στο σύστημα μεταβάσεων όπως χρειάζεται. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-14

Παράδειγμα 1 Θεωρήστε τον πιο κάτω γράφο προγράμματος: V = {a, b, c, d, e} S: όλες οι αναθέσεις ακεραίων στις μεταβλητές V T={ c>0 (c,e):=(c-1,e+1), d>0 (d,e):=(d-1,e+1) } p: c=a d=b e=0 Ποια η λειτουργία του προγράμματος που μοντελοποιείται από το πιο πάνω σύστημα; Αναθέτει στην μεταβλητή e το άθροισμα των c και d, και στις μεταβλητές c και d την τιμή 0 και τερματίζει. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-15

s 0 = <a=2, b=1, c=2, d=1, e=0> (ικανοποιεί την αρχική συνθήκη) Παράδειγμα 1 s 1 = <a=2, b=1, c=1, d=1, e=1> (Εκτέλεση της πρώτης μετάβασης) s 2 = <a=2, b=1, c=1, d=0, e=2> (Εκτέλεση της δεύτερης μετάβασης) s 3 = <a=2, b=1,c=0, d=0, e=3> (Δεύτερη εκτέλεση της πρώτης μετάβασης) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-16

Παράδειγμα 2 Έστω το πιο κάτω πρόγραμμα που αποτελείται από δύο παράλληλες διεργασίες. while True do wait();... endwhile while True do wait();... endwhile Οι δύο διεργασίες περιμένουν τη σειρά τους για να εκτελέσουν κάποιο υπολογισμό κατά τον οποίο ζητούν αποκλειστική χρήση των πόρων του συστήματος. Όταν δίνεται άδεια πρόσβασης στην πρώτη διεργασία και αντίθετα όταν Turn = 1 την άδεια παίρνει η δεύτερη διεργασία. Ερωτήματα: Υπάρχει περίπτωση κάποια διεργασία να φθάσει σε αδιέξοδο περιμένοντας επ άπειρω να της δοθεί άδεια πρόσβασης; Υπάρχει περίπτωση να δοθεί και στις δύο διεργασίες άδεια ταυτόχρονα; ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-17

Παράδειγμα 2(συν.) Για να δημιουργήσουμε τον γράφο προγράμματος του συστήματος προσθέτουμε μεταβλητές PC 0 και PC 1 (program counters) που παίρνουν τιμές οι οποίες δεικνύουν το σημείο εκτέλεσης στην κάθε διεργασία. L 0 : while True do NC 0 : wait(); CR 0 : endwhile L 1 : while True do NC 1 : wait(); CR 1 : endwhile Οι μεταβάσεις: T 0 : PC 0 =L 0 PC 0 :=NC 0 T 1 : PC 0 =NC 0 PC 0 :=CR 0 T 2 : PC 0 =CR 0 (PC 0,Turn):=(L 0,1) T 3 : PC 1 =L 1 PC 1 =NC 1 T 4 : PC 1 =NC 1 PC 1 :=CR1 T 5 : PC 1 = CR 1 (PC 1,Turn):=(L 1,0) Αρχικά : PC 0 =L 0 /\ PC 1 =L 1 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-18

Παράδειγμα 2 Το σύστημα μεταβάσεων L0,L1 L0,L1 L0,NC1 NC0,L1 L0,NC1 NC0,L1 NC0,NC1 CR0,L1 L0,CR1 NC0,NC1 CR0,NC1 NC0,CR1 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-19

Παράδειγμα 2 Αμοιβαίος αποκλεισμός Ποτέ δεν ισχύει ότι και οι δύο διεργασίες έχουν πάρει ταυτόχρονα άδεια L0,L1 L0,L1 L0,NC1 NC0,L1 L0,NC1 NC0,L1 NC0,NC1 CR0,L1 L0,CR1 NC0,NC1 CR0,NC1 NC0,CR1 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-20

Παρ. 2 Οι διεργασίες εναλλάσσονται Πάντα αν Turn = 0 στο μέλλον Τurn = 1 L0,L1 L0,L1 L0,NC1 NC0,L1 L0,NC1 NC0,L1 NC0,NC1 CR0,L1 L0,CR1 NC0,NC1 CR0,NC1 NC0,CR1 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-21

Παράδειγμα εκτέλεσης του συστήματος L0,L1 L0,NC1 NC0,NC1 L0,CR1 L0,NC1 CR0,NC1 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-22

Παράδειγμα εκτέλεσης του συστήματος L0,L1 L0,NC1 NC0,NC1 CR0,NC1 L0,NC1 L0,CR1 L0,L1 L0,NC1 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-23

(Ένα) ξεδίπλωμα του συστήματος μεταβάσεων L0,L1 L0,NC1 NC0,L1 NC0,NC1 NC0,NC1 CR0,L1 CR0,NC1 CR0,NC1 CR0,NC1 L0,NC1 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-24

Εργασία Ο πιο κάτω αλγόριθμος επιχειρεί να επιβάλει αμοιβαίο αποκλεισμό ανάμεσα σε δύο διεργασίες Ρ 1 και Ρ 2 κάθε μία από τις οποίες τρέχει τον πιο κάτω κώδικα. Μπορείτε να υποθέσετε ότι αρχικά sema = 0. 1. while true do{ 2. atomic {if sema = 0 3. then sema := 1 4. else 5. go to line 2} 6. critical section; 7. sema := 0; 8. } (α) Μοντελοποιήστε το πρωτόκολλο ως ένα γράφο προγράμματος. (β) Αποδώστε τον γράφο προγράμματος του πρωτοκόλλου γραφικά ως ένα σύστημα μεταβάσεων. (γ) Συζητήστε την καταλληλότητα του πρωτοκόλλου για διασφάλιση αμοιβαίου αποκλεισμού στην παρουσία 2 ή περισσότερων διεργασιών ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-25

Παράδειγμα 2 (συν.) Δικαιοσύνη Οι μεταβάσεις: L 0 : while True do NC 0 : wait(); CR 0 : endwhile L 1 : while True do NC 1 : wait(); CR 1 : endwhile T 0 : PC 0 =L 0 PC 0 :=NC 0 T 1 : PC 0 =NC 0 PC 0 :=CR 0 T : 1 PC 0 =NC 0 PC 0 :=NC 0 T 2 : PC 0 =CR 0 (PC 0,Turn):=(L 0,1) T 3 : PC 1 =L 1 PC 1 =NC 1 T 4 : PC 1 =NC 1 PC 1 :=CR1 T 4 : PC 1 =NC 1 PC 1 :=NC1 T 5 : PC 1 = CR 1 (PC 1,Turn):=(L 1,0) Αρχικά : PC 0 =L 0 /\ PC 1 =L 1 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-26

Οι διεργασίες εναλλάσσονται; L0,L1 L0,L1 L0,NC1 NC0,L1 L0,NC1 NC0,L1 NC0,NC1 CR0,L1 L0,CR1 NC0,NC1 CR0,NC1 NC0,CR1 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-27

Δικαιοσύνη Περιορισμός στο σύνολο των εκτελέσεων υπό μελέτη Ασθενής δικαιοσύνη διεργασιών: αποκλείει τις εκτελέσεις όπου, από μία κατάσταση και μετά, ενώ μία διεργασία είναι συνεχώς έτοιμη για εκτέλεση δεν εκτελείται ποτέ. Ασθενής δικαιοσύνη μεταβάσεων: αποκλείει τις εκτελέσεις όπου, από μία κατάσταση και μετά, ενώ μία μετάβαση είναι συνεχώς έτοιμη για εκτέλεση δεν εκτελείται ποτέ. Ισχυρή δικαιοσύνη διεργασιών: αποκλείει τις εκτελέσεις όπου, μία διεργασία είναι έτοιμη για εκτέλεση για μη-πεπερασμένο αριθμό φορών αλλά εκτελείται μόνο για πεπερασμένο αριθμό φορών. Ισχυρή δικαιοσύνη μεταβάσεων: αποκλείει τις εκτελέσεις όπου, μία μετάβαση είναι έτοιμη για εκτέλεση για μη-πεπερασμένο αριθμό φορών αλλά εκτελείται μόνο για πεπερασμένο αριθμό φορών. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-28

Παράδειγμα 3 P1:: L1: x:=1 L2 P2:: L3: while y=0 do L4: [z:=z+1 ΟR if x=1 then y:=1] end while L5 Γράφος Προγράμματος P1 A: PC1=L1 (PC1, x) := (L2, 1) P2 Β: PC2=L3 y=0 PC2 := L4 Γ: PC2=L4 (PC2, z) := (L3, z+1) : PC2=L4 x=1 (PC2, y) := (L3,1) E: PC2=L4 x 1 PC2:= L3 Αρχικά : x=0 /\ y=0 /\ z=0 Z: PC2 = L3 y 0 PC2 := L5 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-29

Παράδειγμα 3 P1::x:=1 P2::while y=0 do [z:=z+1 ΟR if x=1 then y:=1] end while Αρχικά : x=0 /\ y=0 /\ z=0 Η P1 τερματίζει πάντα; Η Ρ2; Δικαιοσύνη; Δεν υπάρχουν εγγυήσεις Ασθενής δικαιοσύνη μεταβάσεων (διεργασιών); Τερματίζει η P1 Ισχυρή δικαιοσύνη διεργασιών; Tερματίζει η P1 Ισχυρή δικαιοσύνη μεταβάσεων; Τερματίζουν και η P1 και η P2 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-30

Ιεραρχία των ιδιοτήτων δικαιοσύνης Ισχυρή δικαιοσύνη μεταβάσεων Ισχυρή δικαιοσύνη διεργασιών Ασθενής δικαιοσύνη διεργασιών Ασθενής δικαιοσύνη μεταβάσεων φ ψ Γράφουμε ότι η φ συνεπάγεται τη ψαν κάθε εκτέλεση που είναι δίκαια ως προς τη φ είναι δίκαια και ως προς τη ψ. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-31

Σημασιολογία παρεμβαλλόμενης διάταξης Σημασιολογία παρεμβαλλόμενης διάταξης (interleaving model): μέθοδος αναπαράστασης παραλληλισμού/ταυτοχρονισμού όπου ανά πάσα στιγμή μπορεί να συμβεί μόνο μία μετάβαση. Απλό μοντέλο Συνοδεύεται από μια πλειάδα μαθηματικών εργαλείων ανάλυσης συστημάτων. Και αν δύο μεταβάσεις a και b μπορούν να πραγματοποιηθούν ταυτόχρονα; Στο σύστημα μεταβάσεων παρουσιάζονται δύο εκτελέσεις: μία στην οποία η a εκτελείται πριν από τη b και μία στην οποία η b εκτελείται πριν από την a. Αυτό είναι ικανοποιητικό για την πλειονότητα των συστημάτων που μας ενδιαφέρουν. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-32

true concurrency Σημασιολογία μερικής διάταξης Δεν υπάρχει ολική διάταξη ανάμεσα στα γεγονότα. Πιο διαισθητική. Πιο κοντά στην πραγματική συμπεριφορά του συστήματος Δυσκολότερο να αναλυθεί. Λιγότερα μαθηματικά αποτελέσματα. Μερική διάταξη: (S, <), όπου η σχέση < είναι Αν x<y και y<z τότε x<z. (μεταβατική) Για κανένα ζεύγος x και y δεν ισχύει x<y /\ y<x (αντισυμμετρική). Για κανένα x δεν ισχύει x<x Διαισθητικά, x < y αν το x είναι προαπαιτούμενο για το y. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-33

Παράδειγμα 4 Μία τράπεζα έχει δύο παραρτήματα, αρχικά $1M στο κάθε ένα. Ταυτόχρονα Στο παράρτημα 1: κατάθεση $2M. Στο παράρτημα 2: ΛΗΣΤΕΙΑ. Πως μπορεί να μοντελοποιηθεί το σύστημα; Θέλουμε να αγοράσουμε μετοχές της τράπεζας αν τα περιουσιακά της στοιχεία στα δύο παραρτήματα ξεπερνούν τα $2Μ, διαφορετικά, να πουλήσουμε τις μετοχές που έχουμε. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-34

Σημασιολογία Παρεμβαλλόμενης Διάταξης Κάθε κατάσταση συλλαμβάνει και τα δύο παραρτήματα. κατάθεση $1M, $1M ληστεία $3M, $1M $1M, $0M ληστεία $3M, $0M κατάθεση ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-35

Παράδειγμα 4: Επένδυση Αγόρασε! κατάθεση $1M, $1M ληστεία $3M, $1M $1M, $0M ληστεία $3M, $0M κατάθεση Αγόρασε! Πούλησε! ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-36

Σημασιολογία Μερικής Διάταξης Δύο συνιστώσες μοντελοποιούν τα δύο ανεξάρτητα παραρτήματα. $1M $1M deposit robbery $3M $0M ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-37

Ταυτοχρονισμός vs μη-ντετερμινισμός Παράρτημα με ένα υπάλληλο Έστω ότι στο παράρτημα 1, παρουσιάζονται ταυτόχρονα δύο πελάτες για καταθέσεις $2Μ και $.1Μ ο καθένας και υπάρχει μόνο ένας υπάλληλος για να τους εξυπηρετήσει $1M $1M deposit deposit robbery $3M $1.1M $0M deposit $3.1M deposit Διαχωρίζεται ο ταυτοχρονισμός από το μηντετερμινισμό ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-38

Εκτέλεση μερικής διάταξης 1 $1M $1M deposit robbery $3M $0M deposit $3.1M ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-39

Εκτέλεση μερικής διάταξης 2 $1M $1M deposit robbery $1.1M $0M $3.1M deposit ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-40

Μοντελοποίηση με μερική διάταξη Έστω δύο διεργασίες P1, P2 και κανάλι επικοινωνίας ανάμεσα στις δύο, ch. Γράφουμε ch!x για την αποστολή του μηνύματος x στο κανάλι ch και ch?y για την παραλαβή μηνύματος στο κανάλι ch το οποίο αποθηκεύεται στη μεταβλητή y. Το σύστημα λειτουργεί ως εξής: H P1αυξάνει την τιμή του x κατά 1 και τη στέλνει στην P2 μέσω μιας ουράς ch, H P2 λαμβάνει κάποια τιμή στην ουρά ch και την προσθέτει στην τιμή του y Έστω ότι η επικοινωνία στην ουρά ch είναι συγχρονισμένη. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-41

Μοντελοποίηση με μερική διάταξη Υπάρχουν τρεις δυνατές μεταβάσεις: P1 m0:x:=x+1 m1:ch!x n0:ch?z n1:y:=y+z P2 α: pc1=m0 (pc1,x):= (m1, x+1) β: pc1=m1 /\ pc2=n0 (pc1, pc2, z):=(m0, n1,x) γ: pc2=n1 (pc2, y):= (n0, y+z) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-42

Μοντελοποίηση με μερική διάταξη pc1=m0,x=0 pc2=n0,y=0,z=0 α m0:x:=x+1 n0:ch?z pc1=m1,x=1 P1 m1:ch!x n1:y:=y+z P2 β pc1=m0,x=1 α pc1=m1,x=2 pc2=n1,y=0,z=1 γ pc2=n0,y=1,z=1 β pc1=m0,x=2 α pc2=n1,y=1,z=2 γ ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-43

Εκτελέσεις pc1=m0,x=0 α pc1=m1,x=1 β pc1=m0,x=1 α pc1=m1,x=2 β pc1=m0,x=2 α pc2=n0,y=0,z=0 pc2=n1,y=0,z=1 γ pc2=n0,y=1,z=1 pc2=n1,y=1,z=2 γ pc1=m0,x=0,pc2=n0,y=0,z=0 pc1=m1,x=1,pc2=n0,y=0,z=0 pc1=m0,x=1,pc2=n1,y=0,z=1 pc1=m1,x=2,pc2=n1,y=0,z=1 pc1=m1,x=2,pc2=n0,y=1,z=1 pc1=m0,x=2,pc2=n1,y=1,z=2... ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-44

Εκτελέσεις pc1=m0,x=0 α pc1=m1,x=1 β pc1=m0,x=1 α pc1=m1,x=2 β pc1=m0,x=2 α pc2=n0,y=0,z=0 pc2=n1,y=0,z=1 γ pc2=n0,y=1,z=1 pc2=n1,y=1,z=2 γ pc1=m0,x=0,pc2=n0,y=0,z=0 pc1=m1,x=1,pc2=n0,y=0,z=0 pc1=m0,x=1,pc2=n1,y=0,z=1 pc1=m0,x=1,pc2=n0,y=1,z=1 pc1=m1,x=2,pc2=n0,y=1,z=1 pc1=m0,x=2,pc2=n1,y=1,z=2... ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-45

Μη Ντετερμινισμός Στην παρεμβαλλόμενη διάταξη ο μη ντετερμινισμός δυνατόν να επιλύει ταυτοχρονισμό Επιπλέον, ο μη ντετερμινισμός δυνατόν να σχετίζεται με τα πιο κάτω, τόσο στη σημασιολογία παρεμβαλλόμενης διάταξης όσο και στη σημασιολογία της μερική διάταξης. Ανταγωνισμός ανάμεσα σε παράλληλες αλληλοεξαρτώμενες ενέργειες. Ελευθερία στην υλοποίηση ή απλοποίηση μοντέλου Ελλιπή γνώση ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-46

Ταυτοχρονισμός α : β : ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-47

Αλληλοεξαρτώμενες ενέργειες α : β : ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-48

Ελευθερία στην υλοποίηση (1) Αβεβαιότητα για τον τύπο της επικοινωνίας που θα πρέπει να υλοποιηθεί: Σύστημα μεταβάσεων: Σε μεταγενέστερο στάδιο ο μη-ντετερμινισμός μπορεί να αντικατασταθεί από μία εκ των δύο επιλογών. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-49

Ελευθερία στην υλοποίηση (2) Το σύστημα δεν θα υποστηρίζει ηλεκτρονικό ταχυδρομείο Εκλεπτυσμένο σύστημα μεταβάσεων: ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-50

Απλοποίηση μοντέλου (1) Η αβεβαιότητα κατά πόσο το μήνυμα θα παραδοθεί ή θα χαθεί. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-51

Απλοποίηση μοντέλου (2) Πιθανή μελλοντική εκλέπτυνση: ο μη ντετερμινισμός αντικαθίσταται από πιθανοτική επιλογή. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-52

Ελλιπής Γνώση Έλλειψη γνώσης που οφείλεται στο περιβάλλον: χρήστης, αισθητήρας, επικοινωνία με άλλα προγράμματα. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-53

Μέγεθος μεταβάσεων Κάθε ατομική μετάβαση σε ένα σύστημα μεταβάσεων αντιπροσωπεύει ένα κομμάτι κώδικα το οποίο δεν μπορεί να διασπαστεί. Ποιο είναι τα κατάλληλο μέγεθος μιας ατομικής μετάβασης; Μεταβάσεις μικρού μεγέθους συνεπάγονται περιττή πολυπλοκότητα Μεταβάσεις μεγάλου μεγέθους μπορεί να οδηγήσουν στην απώλεια συμπεριφορών του συστήματος υπό μελέτη Η εντολή a:=a+1 αντιστοιχεί σε ατομική μετάβαση; Μόνο σε συστήματα όπου η εντολή εκτελείται ατομικά ως μία εντολή τύπου inc. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-54

Έλλειψη ατομικότητας Εκτέλεσε τα πιο κάτω όταν a=0 σε δύο συντρέχουσες διεργασίες: P1:a=a+1 P2:a=a+1 Αποτέλεσμα: a=2. Θεωρήστε την πιο κάτω μετάφραση: P1:load R1,a inc R1 store R1,a P2:load R2,a inc R2 store R2,a Ισχύει πάντα το αποτέλεσμα; Το a μπορεί να πάρει και την τιμή 1. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-55

Μέθοδοι μοντελοποίησης Προφανώς η χρήση συστημάτων μεταβάσεων δεν είναι πρακτική για τη μοντελοποίηση μεγάλων συστημάτων. Ως εκ τούτου διάφοροι φορμαλισμοί έχουν προταθεί. Χωρίζονται σε δύο βασικές κατηγορίες: απλές γλώσσες προγραμματισμού παραλλαγές αυτομάτων Στόχοι Ύπαρξη απλής και αποδοτικής μετάφρασης ανάμεσα στο φορμαλισμό και κάποια εσωτερική αναπαράσταση Απλότητα και ευκολία χρήσης Αυστηρά διατυπωμένη σημασιολογία FDT s (Formal Description Techniques) Estelle, LOTOS, SDL - αναπτύχθηκαν από το ΙSO (International Standards Organization) Άλγεβρες Διεργασιών (CCS, CSP, ACP, ) Ι/Ο Αυτόματα Promela Γραφικά πρότυπα (UML, ROOM) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 2-56