Βασικές Δομές μοντέλων Petri Nets C.A. Petri - 1962
Γιατί χρήση Petri model? Φυσικό Πρόβλημα! Μοντέλο Petri abstract Software Simulation ανάλυση σε μοντέλο Petri Net
Βασικές δομές μοντέλων Petri Διαδοχική Εκτέλεσης; μετάβαση t2 μπορεί να βάλει μόνο μετά την πυροδότηση της t1. Αυτό επιβάλλει την προτεραιότητα (συγκεκριμένη σειρά) εκτέλεσης των πυροδοτήσεων: t1 και μετά t2. p 1 t 1 p 2 t 2 p 3 Συγχρονισμός: μετάβαση t1 θα ενεργοποιηθεί μόνο όταν υπάρχει token και στις δύο θέσεις είσοδοι. t 1 Συγχώνευση: Συμβαίνει όταν token από διάφορα σημεία φτάνουν για υπηρεσία στην ίδια μετάβαση.
Βασικές δομές μοντέλων Petri Ταυτόχρονη εκτέλεση γεγονότων (Concurrency) : Οι εκτέλεση των μεταβάσεων t1 και t2 γίνεται ταυτόχρονα. - Με αυτό τον τρόπο το Petri net είναι σε θέση να απεικονίσει συστήματα distributed control με πολλαπλές διεργασίες οι οποίες εκτελούνται ταυτόχρονα. t 1 t 2
Βασικές δομές μοντέλων Petri Σύγκρουση (Conflict) : Εδώ η εκτέλεση των μεταβάσεων t1 και t2 είναι έτοιμες για εκτέλεση. Όμως η εκτέλεση της μιας εκ των δύο μεταβάσεων οδηγεί την άλλη σε απενεργοποίηση. t 1 t 2 η προκύπτουσα σύγκρουση μπορεί να επιλυθεί με -Έναν καθαρά μη-ντετερμινιστικό τρόπο ή - Με πιθανολογική τρόπο, δηλαδή: με την εισαγωγή των κατάλληλων πιθανοτήτων οι οποίες αφορούν τις συγκρουόμενες μεταβάσεις. t 1 t 2
Βασικές δομές μοντέλων Petri Εναλλακτικός τρόπος εκτέλεσης μεταβάσεων: Στην περίπτωση αυτή υπάρχουν οι εξής επιλογές εκτέλεσης: - Εκτέλεση αρχικά των μεταβάσεων t1 και t2, και εν συνεχεία t3 και t4 (οδηγεί στην βηματική εκτέλεση των διαδικασιών) ή - Εκτέλεση αρχικά των μεταβάσεων t1 και t3, και εν συνεχεία t2 και t4 (οδηγεί στην απολύτως παράλληλη εκτέλεση των διαδικασιών) t 1 t 2 t 3 t 4
Βασικές δομές μοντέλων Petri Σύγχυση (Confusion) Οι t1 και t2 μπορεί να λειτουργούν ταυτόχρονα ή όχι. Τα αποτελέσματα όμως εξαρτώνται από της σειρά εκτέλεση των μεταβάσεων αλλά Και από τον τρόπο επίλυσης περιπτώσεων σύγκρουσης (conflict) Έστω μ 0 =(1,1,0,0,0) (1,1,0,0,0) (0,0,1,1,0) : με ταυτόχρονη εκτέλεση των t1,t2 (1,1,0,0,0) (0,1,1,1,0) : με εκτέλεση της t1 και εν συνεχεία έχουμε conflict - αν εκτελεστεί η t3 τότε οδηγούμαστε στην : (0,0,0,0,1) - αν εκτελεστεί η t2 τότε οδηγούμαστε στην : (0,0,1,1,0) p5 p1 t 1 p3 t 3 p2 t 2 p4
Δομές Petri nets για δημιουργία προγραμμάτων 1. If {A} then {do X} else {do Y} Α Χ Υ 2. If {A and B} then {do X} Α Α
Δομές Petri nets για δημιουργία προγραμμάτων 3. Δομή Case (Switch) X=... switch ( Χ=. ) { case Α: case B: // Code break; // Code break;..... default: // Code break; }
Δομές Petri nets για δημιουργία προγραμμάτων 4. Δομή While loop while (A) DO { activity X }
Δομές Petri nets για δημιουργία προγραμμάτων 5. Δομή επανάληψης for for {condition A} DO {activity X}
Δομές Petri nets για δημιουργία προγραμμάτων 6. Σειρά γεγονότων (Precedence) 7. Δομή επανάληψης for {activity X} πρέπει να προηγηθεί του {activity Y} After k seconds εκτέλεσε {activity X}
Δομές Petri nets για δημιουργία προγραμμάτων 8. Δομή αμοιβαίας αποκλειστικότητας (Either or - Mutual exclusion)) a) either do {activity X} or do {activity Y} b) either do {activity X} or do {activity Y} with preference to activity X
Ανεξάρτητη λειτουργία δύο συστημάτων
Βασικά θέματα που απασχολούν τα μοντέλα Petri Net Boundedness: o αριθμός των καταστάσεων τις οποίες παρουσιάζει ένα σύστημα έχει όριο; Place boundedness: υπάρχει όριο ως προς τον μέγιστος αριθμό των tokens τα οποία μπορεί να δημιουργηθούν σε μια συγκεκριμένη θέση; liveness: όταν από κάθε κατάσταση μπορεί να εκτελεσθεί κάθε μετάβαση. Τα liveness μοντέλα συνεπάγονται μοντέλα χωρίς αδιέξοδα, το αντίθετο δεν ισχύει. Semi-liveness: υπάρχει μια προσβάσιμη κατάσταση από την οποία μπορεί να εκτελεστεί μια δεδομένη μετάβαση; Coverability
Εν κατακλείδι Συμπεράσματα Είναι ένας τυποποιημένος σχεδιασμός (Design formalisms) - χρήσιμο μέσο για την περιγραφή μοντέλων και την επικοινωνία μεταξύ των ενδιαφερομένων. Μπορεί επίσης να χρησιμοποιηθεί για την ανάλυση, τη μέτρηση και την επαλήθευση συμπεριφοράς συστημάτων. H μοντελοποίηση των Μηχανών πεπερασμένων καταστάσεων (Finite State Machin γίνεται εύκολα αντιληπτή και κατανοητή αλλά δεν μπορεί να μοντελοποιήσει ορισμένους τύπους καταστάσεων που παρουσιάζονται σε συστήματα που λειτουργούν ταυτόχρονα. Η χρήση των δικτύων Petri εξυπηρετεί τέτοιες καταστάσεις. Και με τα δίκτυα αυτά απεικονίζονται: θέσεις, μεταβάσεις και βέλη που συνδέουν αυτά στοιχεία. Τα δίκτυα Petri απεικονίζουν μια ομάδα πεπερασμένων και διακριτών καταστάσεων ενός συστήματος με τη βοήθεια σημάνσεων (tokens) Οι μεταβάσεις των Petri nets είναι non-deteministic, και ενδεχομένως να εκτελούνται και ταυτόχρονα. Τα Petri nets μπορούν να μοντελοποιήσουν καταστάσεις concurrency, διεκδίκησης πόρων, αδιεξόδων (deadlock) και έλλειψης πόρων.