Αποτίµησηκαθολικού κατηγορήµατος

Σχετικά έγγραφα
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 3: Καθολικά κατηγορήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1

Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις. Κατανεμημένα Συστήματα 1

Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

Εκλογήαρχηγού. Εισαγωγή Ισχυρά συνδεδεµένος γράφος ακτύλιος µίας κατεύθυνσης Τοπολογία δένδρου. Κατανεµηµένα Συστήµατα 06-1

Καθολικέςκαταστάσεις. Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική. Κατανεµηµένα Συστήµατα 04-1

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

Εντοπισμός αδιεξόδου. Κατανεμημένα Συστήματα 1

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

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

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

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

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

Κατανεµηµένα Αντικείµενα 16-1

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

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

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

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

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

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

Αλγόριθµοι Οπισθοδρόµησης

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

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

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Σύνοψη 3 ης ιάλεξης

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

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

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

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

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

Κεφάλαιο 5ο: Εντολές Επανάληψης

for for for for( . */

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Outlook Express-User Instructions.doc 1

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

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

Λειτουργικά Συστήματα. Ενότητα # 6: Αδιέξοδα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Ορισµοί Τοπική ιστορία

ΑΔΙΕΞΟΔΑ (Deadlocks) Παράδειγμα 1 Θανάσιμο αγκάλιασμα (deadly embrace)

7.9 ροµολόγηση. Ερωτήσεις

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

Αδιέξοδα (Deadlocks)

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Ορισµοί Τοπική ιστορία

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Δροµολόγηση (Routing)

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

09/04/2014 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Μάθηµα: Α ΙΕΞΟ Α. ιδάσκων: Λειτουργικά Συστήµατα Ι Αν. Καθ. Κ. Λαµπρινουδάκης Α ΙΕΞΟ Α

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

Τεχνικές διόρθωσης και ανίχνευσης σφαλµάτων

Λύση: Λύση: Λύση: Λύση:

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

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


Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Ενότητα 7 Ουρές Προτεραιότητας

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

Search and Replication in Unstructured Peer-to-Peer Networks

Κατανεμημένα Συστήματα Ασκήσεις.

HY118- ιακριτά Μαθηµατικά. Παράδειγµα. Από τα συµπεράσµατα στις υποθέσεις Αποδείξεις - Θεωρία συνόλων. Από τις υποθέσεις στα συµπεράσµατα...

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά

Σημειωματάριο Τετάρτης 29 Νοε. 2017

Επαναληπτικές Διαδικασίες

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

Ελαφρύτατες διαδρομές

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

7.7 Πρωτόκολλο ARP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1

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

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Η σχέση συνέβη-πριν

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

Επίλυση Προβλημάτων 1

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

Προγραµµατισµός Ι (ΗΥ120)

Δέντρα Απόφασης (Decision(

Για παράδειγμα η αρχική και η τελική κατάσταση αναπαριστώνται ως εξής: (ένα λίτρο)

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Δομές Δεδομένων και Αλγόριθμοι

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Μάθημα 5 ο : Μετάδοση Μηνυμάτων

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

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

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

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

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

Transcript:

Αποτίµησηκαθολικού κατηγορήµατος Εισαγωγή Ιδιότητες καθολικών κατηγορηµάτων Αδιέξοδα Ανίχνευση αδιεξόδων Συγκεντρωτική ανίχνευση Ιεραρχική ανίχνευση Κατανεµηµένη ανίχνευση Επανόρθωση αδιεξόδων Κατανεµηµένος τερµατισµός Κατανεµηµένα Συστήµατα 05-1

Εισαγωγή Καθολικό κατηγόρηµα Συνάρτηση που εφαρµόζεται στις συνεπείς καθ. Καταστάσεις Παράγει true ή false Πολλά προβλήµατα ανάγονται σε αυτό Ανίχνευση αδιεξόδων και τερµατισµού Απώλεια σκυτάλης Καθορισµός σηµείου ελέγχου και επανεκκίνηση Παρακολούθηση και εκσφαλµάτωση Στάθµιση φόρτου Αποτίµηση καθολικού κατηγορήµατος Η καθολική κατάσταση ικανοποιεί το κατηγόρηµα Φ; Για παράδειγµα, έχει συµβεί αδιέξοδο; Βασίζεται στην κατασκευή της καθολικής κατάστασης Κατανεµηµένα Συστήµατα 05-2

Ιδιότητεςκαθολικών κατηγορηµάτων Σταθερά κατηγορήµατα Όταν γίνουν αληθή, παραµένουν αληθή ΈστωηακολουθίακαθολικώνκαταστάσεωνΣ a Σ s Σ f Για ένα σταθερό κατηγόρηµα έχουµε Φ(Σ s ) = true Φ(Σ f ) = true Επιπλέον έχουµε Φ(Σ s ) = false Φ(Σ a ) = false Παραδείγµατα σταθερών κατηγορηµάτων Αδιέξοδο Τερµατισµός Απώλεια σκυτάλης Συλλογή απορριµάτων Κατανεµηµένα Συστήµατα 05-3

Ιδιότητεςκαθολικών κατηγορηµάτων Ασταθή κατηγορήµατα Παράδειγµα: ισότητα µήκους δύο δυναµικών ουρών ύο βασικά προβλήµατα Το Φµπορεί να γίνει αληθές αλλά να µην το ανιχνεύσουµε Μπορεί να µην είναι αληθές αρκετή ώρα Αλλά να µην ισχύει µόνιµα Το Φµπορεί να βρεθεί αληθές αλλά να µην ίσχυε Μπορεί να είναι αληθές σε ένα στιγµιότυπο Το στιγµιότυπο όµως µπορεί να µην συνέβη ποτέ Επέκταση σε ολόκληρο τον υπολογισµό Possibly(Φ): R : Σ l R τέτοιο ώστε Φ(Σ l ) = TRUE Definitely(Φ): R : Σ l R τέτοιο ώστε Φ(Σ l ) = TRUE Κατανεµηµένα Συστήµατα 05-4

Ιδιότητεςκαθολικών κατηγορηµάτων Σ 00 Σ 10 Σ 01 Σ 11 Σ 02 Σ 21 Σ 12 Σ 03 Παράδειγµα Possibly(y-x=2) Υπάρχει µία εκτέλεση στην οποία θα ισχύσει Definitely(x=y) Ισχύει οπωσδήποτε σε όλες τις εκτελέσεις Παρατηρούµε ότι ~Possibly(Φ) Definitely(~Φ) (y-x)=2 x=y Σ 41 Σ 31 Σ 22 Σ 32 Σ 23 Σ 42 Σ 33 Σ 43 Σ 53 Σ 44 Σ 63 Σ 54 Σ 55 Σ 64 Σ 65 Σ 45 Σ 13 Κατανεµηµένα Συστήµατα 05-5

Ιδιότητεςκαθολικών κατηγορηµάτων Αποτίµηση Possibly(Φ) Αναζήτηση σε όλες τις συνεπείς καθολικές καταστάσεις Αν δεν είναι πουθενά αληθές το Φ, τότε δεν ισχύει states={σ 0 0 };L=0; while (Φ(S)==false, S states) { if(states=={τελική καθολική κατάσταση}) } return false; L=L+1; states={όλες οι προσπελάσιµες από τις καταστάσεις του states καταστάσεις του επιπέδου L}; return true; Κατανεµηµένα Συστήµατα 05-6

Ιδιότητεςκαθολικών κατηγορηµάτων Αποτίµηση Definitely(Φ) Αναζήτηση σε όλες τις συνεπείς καθολικές καταστάσεις Πρέπει να είναι αληθές σε όλα τα µονοπάτια if (Φ(Σ 0 0 )) states={}; else states ={Σ 0 0 }; L=0; while {states <> {}) { L=L+1; reachable={όλες οι προσπελάσιµες από τις καταστάσεις του states καταστάσεις του επιπέδου L}; states={s reachable:φ(s)=false}; if(states=={τελική καθολική κατάσταση}) return false; } return true; Κατανεµηµένα Συστήµατα 05-7

Αδιέξοδα Ίδιος ορισµός µε συγκεντρωτικά συστήµατα Εµποδισµός διεργασιών λόγω αναµονής για πόρους Μόνιµος εµποδισµός συνόλου εργασιών Εµφανίζεται όταν ισχύουν οι συνθήκες του Coffman Απλά οι πόροι είναι κατανεµηµένοι σε κόµβους Γράφος καταχώρισης πόρων είχνει καταχώριση πόρων και ζήτηση πόρων Κατανεµηµένα Συστήµατα 05-8

Αδιέξοδα Γράφος αναµονής Απλούστερη µορφή του γράφου καταχώρισης πόρων Παραλείπει τους πόρους Ισχύει όταν έχουµε µία µονάδα κάθε πόρου Αν έχει κύκλο, έχουµε αδιέξοδο Πολλές µονάδες ανά πόρο Θα πρέπει να έχουµε κόµπο στο γράφο καταχώρισης πόρων Κόµπος είναι ένα µη κενό σύνολο κόµβων Κ Όπου όλοι οι προσπελάσιµοι κόµβοι από το Κ είναι και αυτοί µέλη του Κ Κατανεµηµένα Συστήµατα 05-9

Αδιέξοδα Χειρισµός αδιεξόδων Έγκριση Μόνο σε επίπεδο λειτουργικού συστήµατος Μόνο σε συγκεκριµένες εφαρµογές Αποφυγή ύσκολη στην εφαρµογή Απαιτεί γνώση απαιτήσεων εκ των προτέρων Πρόληψη Συνήθως αποφεύγουµε τη συνθήκη κυκλικής αναµονής Οι υπόλοιπες είναι δύσκολο να αποφευχθούν Ανίχνευση και επανόρθωση αδιεξόδων Η πιο συνηθισµένη στρατηγική στα κατανεµηµένα συστήµατα Κατανεµηµένα Συστήµατα 05-10

Ανίχνευσηαδιεξόδων Κατασκευή καθολικού γράφου αναµονής Κατασκευάζεται από τους τοπικούς Τρεις τρόποι κατασκευής Συγκεντρωτικός Ένας κόµβος συντονιστής Ιεραρχικός Ιεραρχία συντονιστών Κατανεµηµένος Συµµετέχουν όλοι Επιθυµητές ιδιότητες Πρόοδος Ανίχνευση σε πεπερασµένο χρόνο Ασφάλεια Ανίχνευση πραγµατικών αδιεξόδων Κατανεµηµένα Συστήµατα 05-11

Συγκεντρωτικήανίχνευση Τοπικοί συντονιστές Κατασκευή τοπικών γράφων αναµονής Μπορεί να εντοπίσει τοπικό αδιέξοδο Κεντρικός συντονιστής Κατασκευή καθολικού γράφου αναµονής Μπορεί να εντοπίσει καθολικό αδιέξοδο Τα τοπικά αντιµετωπίζονται από τον τοπικό συντονιστή Πότε συλλέγονται πληροφορίες; Συνεχής µετάδοση: σε κάθε αλλαγή Περιοδική µετάδοση: µετά από κάποιοι πλήθος αλλαγών Μετάδοση κατ απαίτηση: όταν το ζητήσει ο συντονιστής Πάντα στέλνονται µόνο οι αλλαγές Κατανεµηµένα Συστήµατα 05-12

Ιεραρχικήανίχνευση Συνήθως οι κύκλοι είναι µικροί Το 90% εµπλέκουν δύο διεργασίες εν έχει νόηµα η κατασκευή καθολικού γράφου Είναι καλύτερα το πρόβληµα να αντιµετωπίζεται τοπικά Ιεραρχική προσέγγιση Λογικό δένδρο από ελεγκτές Κάθε ελεγκτής έχει κάποια εµβέλεια Τα φύλλα ελέγχουν τον τοπικό τους γράφο Οι εσωτερικοί κόµβοι ελέγχουν την ένωση των παιδιών τους Αντιµετώπιση αδιεξόδων Από τον κατώτερο ιεραρχικά κόµβο που τα εντοπίζει Όσο πιο τοπικά γίνεται Μόνο οι γράφοι που δεν έχουν κύκλους πηγαίνουν παραπάνω Κατανεµηµένα Συστήµατα 05-13

Ιεραρχικήανίχνευση p 1 p 2 p 4 p 7 p 3 p 5 p 6 Ελεγκτής Η p 1 p 2 p 4 p 7 p 5 p 6 p 7 p 3 p 5 Ελεγκτής Ζ Ελεγκτής Ε p 1 p 3 p 1 R 3 p 3 p 5 p 6 R 1 R 2 p 4 R 4 p 5 R 6 R 7 p 2 R 5 p 7 p 6 p 7 Κόµβος Κ 1 Κόµβος Κ 2 Ελεγκτής Α Ελεγκτής Β Κόµβος Κ 3 Ελεγκτής Γ Κόµβος Κ 4 Ελεγκτής Κατανεµηµένα Συστήµατα 05-14

Κατανεµηµένηανίχνευση Οι κόµβοι διατηρούν τροποποιηµένους γράφους Σε κάθε τοπικό γράφο αναµονής προστίθενται Η ακµή (p i,p ex )ότανη εσωτερική p i περιµένει εξωτερικό πόρο Η ακµή (p ex,p i ) όταν η εξωτερική p i περιµένει τοπικό πόρο Παράδειγµα: έστω οι κόµβοι K 1 και K 2 Ο K 1 έχει τις διεργασίες p 1, p 2 και p 4 Ο K 2 έχει τις διεργασίες p 3 και p 5 Οι κόµβοι γνωρίζουν τις άµεσες εξωτερικές αιτήσεις Ο K 1 γνωρίζει την αίτηση του p 3 Ο K 2 γνωρίζει την αίτηση του p 1 Ο αλγόριθµος προσθέτει τον p ex και στους δύο κόµβους ηµιουργία δύο κύκλων Οι κύκλοι περιέχουν τον p ex Κατανεµηµένα Συστήµατα 05-15

Κατανεµηµένηανίχνευση Τικάνουµε αν υπάρχει αδιέξοδο µε τον p ex ; Πρέπει να συµβουλευτούµε και άλλους κόµβους Κατανεµηµένα Συστήµατα 05-16

Κατανεµηµένηανίχνευση Αλγόριθµος εντοπισµού κύκλου (path pushing) Έστω ότι ο p i έχει βρει τον κύκλο (p ex,p i,p j,,p k,p ex ) ΟK i στέλνει στον K j τον κύκλο Ο K j είναι ο κόµβος που περιέχει τον p k ΟK j ενηµερώνει τον γράφο του µε τις ακµές που έλαβε Αν ο νέος γράφος δεν περιέχει κύκλο εν υπάρχει αδιέξοδο, τερµατισµός Αν ο ενηµερωµένος γράφος περιέχει κύκλο χωρίς τον p ex Εντοπίστηκε κύκλος µε τις εµπλεκόµενες διεργασίες Αν ο ενηµερωµένος γράφος περιέχει κύκλο µε τον p ex ΟK j στέλνει τον νέο κύκλο στον κόµβο K k Η διαδικασία επαναλαµβάνεται µε K i = K j και K j = K k Κατανεµηµένα Συστήµατα 05-17

Κατανεµηµένηανίχνευση p ex p 1 p 5 p 3 p 2 Παράδειγµα Χρησιµοποιούµε το προηγούµενο παράδειγµα Ο K 1 εντοπίζει κύκλο που περιλαµβάνει τον p ex (p ex,p 3,p 2,p 1,p ex ) Ο κύκλος στέλνεται στον Κ 2 που ενηµερώνει τον γράφο Ο K 2 εντοπίζει κύκλο που δεν περιλαµβάνει τον p ex (p 3,p 2,p 1 ) Ξεκινά η διαδικασία αντιµετώπισης αδιεξόδου Κατανεµηµένα Συστήµατα 05-18

Κατανεµηµένηανίχνευση Αν ξεκινήσουν ταυτόχρονα δύο κόµβοι; Θα εντοπίσουν και οι δύο τον κύκλο Σπατάλη µηνυµάτων Πιθανόν περιττοί τερµατισµοί διεργασιών Χρήση µοναδικού αναγνωριστικού ανά διεργασία Όταν εντοπίζεται κύκλος της µορφής (p ex,p i,p j,,p k,p ex ) Αν ID(p k ) < ID(p i )τότε ο κόµβος εκτελεί τον αλγόριθµο Αλλιώς αφήνει την εκτέλεση σε άλλους Παράδειγµα Ο Κ 1 εντοπίζει τον κύκλο (p ex,p 3,p 2,p 1,p ex ) Ο Κ 1 έχει τον κόµβο p 1 και (έστω) ID(p 1 )<ID(p 3 ) Άρα ο Κ 1 ξεκινά τον αλγόριθµο ανίχνευσης Κατανεµηµένα Συστήµατα 05-19

Κατανεµηµένηανίχνευση Αλγόριθµος εντοπισµού κύκλου (edge chasing) Κάθε διεργασία p i έχει ένα µοναδικό ID Ανη αίτηση της p i προς την p j καθυστερεί πολύ Η p i στέλνει ένα µήνυµα διερεύνησηςστην p j Τρία πεδία: εµποδισµένος, αποστολέας, παραλήπτης Αν ο παραλήπτης p j δεν είναι εµποδισµένος εν υπάρχει αδιέξοδο, τέλος προώθησης Αν ο παραλήπτης p j είναι εµποδισµένος προωθεί το µήνυµα Σε όλους τους κόµβους p k τους οποίους περιµένει Στο δεύτερο πεδίο βάζει το δικό της αναγνωριστικό (p j ) Στο τρίτο πεδίο βάζει το αναγνωριστικό του παραλήπτη (p k ) Αν ο παραλήπτης δει το δικό του αναγνωριστικό στο πρώτο πεδίο Έχει συµβεί αδιέξοδο Κατανεµηµένα Συστήµατα 05-20

Κατανεµηµένηανίχνευση Παράδειγµα Το ίδιο παράδειγµα µε πριν Η p 1 µπλοκάρεται περιµένοντας την p 3 Στέλνει µήνυµα p 1,p 1,p 3 στην p 3 Η p 3 στέλνει το µήνυµα στις p 2 και p 5 Στην p 5 το µήνυµα σταµατάει Στην p 2 το µήνυµα προωθείται σε p 1 και p 4 Στην p 1 εντοπίζεται το αδιέξοδο Κατανεµηµένα Συστήµατα 05-21

Κατανεµηµένηανίχνευση Ποιος αλγόριθµος είναι καλύτερος; Συνήθως χρησιµοποιείται ο δεύτερος Εύκολη υλοποίηση Μηνύµατα σταθερού µεγέθους Το πολύ ένα µήνυµα ανά ακµή εν χρειάζεται καθολικούς γράφους εν ανιχνεύει ανύπαρκτα αδιέξοδα εν απαιτεί διάταξη των διεργασιών Όλα αυτά δεν ισχύουν στον πρώτο αλγόριθµο! Κατανεµηµένα Συστήµατα 05-22

Επανόρθωσηαδιεξόδων Τι κάνουµε όταν εντοπίσουµε ένα αδιέξοδο; Επέµβαση χειριστή Ποιος είναι αρµόδιος; Αν ξεκινήσουν όλοι την αντιµετώπιση; Αν ένας κόµβος ευνοεί τις δικές του διεργασίες; Τερµατισµός διεργασιών Επιλέγει τις «καλύτερες» διεργασίες Υψηλό κόστος λόγω σπατάλης πόρων Οπισθοδρόµηση διεργασιών Στο προηγούµενο σηµείο ελέγχου Θα πρέπει όµως να διατηρούµε σηµεία ελέγχου Συµφέρει η οπισθοδρόµηση ή ο τερµατισµός; Κατανεµηµένα Συστήµατα 05-23

Κατανεµηµένοςτερµατισµός Πότε τερµατίζει ένα παράλληλο πρόγραµµα; Όλες οι διεργασίες περιµένουν εθελοντικά µηνύµατα από άλλες Έτσι καλύπτουµε και τις άπειρες ανακυκλώσεις Όταν η αναµονή δεν είναι εθελοντική, έχουµε αδιέξοδο Πώς όµως µπορούµε να το διαπιστώσουµε; Ανίχνευση κατανεµηµένου τερµατισµού Υποθέτουµε αξιόπιστα κανάλια επικοινωνίας Τα µηνύµατα φτάνουν µία φορά και σωστά Αλγόριθµος του Dijkstra Έστω n κόµβοι σε ενεργή ή παθητική κατάσταση Μόνο οι ενεργοί κόµβοι στέλνουν µηνύµατα Ένας παθητικός γίνεται ενεργός όταν λάβει µήνυµα Ένας ενεργός γίνεται παθητικός όταν δεν περιµένει κάτι Κατανεµηµένα Συστήµατα 05-24

Κατανεµηµένοςτερµατισµός Κατάσταση τερµατισµού Όλοι οι κόµβοι είναι παθητικοί εν υπάρχει κανένα µήνυµα καθοδόν οµή αλγορίθµου Οι κόµβοι διατάσσονται λογικά σε δακτύλιο Κάθε κόµβος i διατηρεί έναν µετρητή c i Αρχικά c i =0 Ο c i αυξάνεται σε κάθε αποστολήµηνύµατος Ο c i µειώνεται σε κάθε λήψη µηνύµατος Το Σc i δείχνει πόσα µηνύµατα εκκρεµούν Όλοι οι κόµβοι και η σκυτάλη έχουν χρώµα Αρχικά όλα είναι λευκά Ένας κόµβος γίνεται µαύρος όταν λάβει µήνυµα (όχι τη σκυτάλη) Ένας κόµβος γίνεται λευκός όταν προωθεί τη σκυτάλη Αν η σκυτάλη βρει µαύρο κόµβο, γίνεται µαύρη Κατανεµηµένα Συστήµατα 05-25

Κατανεµηµένοςτερµατισµός Αλγόριθµος Ο κόµβος i=0 στέλνει τη σκυτάλη µε τιµή 0 στον n-1 Όταν ένας κόµβος i<>0 λάβει τη σκυτάλη Κρατάει τη σκυτάλη µέχρι να γίνει παθητικός Προωθεί τη σκυτάλη στον i-1 αυξάνοντας τηντιµή της κατά c i Αν ο κόµβος είναι µαύρος Η σκυτάλη γίνεται µαύρη Ο κόµβος γίνεται λευκός Όταν ένας κόµβος λάβει ένα µήνυµα (όχι τη σκυτάλη) Γίνεται µαύρος Όταν ο κόµβος 0 λάβει τη σκυτάλη Αν είναι παθητικός και λευκόςκαι η σκυτάλη είναι λευκή και το άθροισµα της τιµής της σκυτάλης και του c είναι 0 Έχει συµβεί τερµατισµός Κατανεµηµένα Συστήµατα 05-26

Κατανεµηµένοςτερµατισµός Αλγόριθµος ανάκτησης πίστωσης Μία εργασία j αποτελείται από καθήκοντα Κάθε καθήκον εκτελείται σε έναν µόνο κόµβο Αρχικά κάθε εργασία περιέχει ένα µόνο καθήκον Το καθήκον µπορεί να δηµιουργήσει νέα σε άλλους κόµβους Άρα µπορούµε να έχουµε καθήκοντα καθοδόν Όταν τα καθήκοντα ολοκληρωθούν, έχουµε terminated(j)=true Ο τερµατισµός είναι σταθερό καθολικό κατηγόρηµα Αν ο κόµβος Sδεν έχει ενεργά καθήκοντα, έχουµε idle S (j)=true Η αδράνεια είναι ασταθές τοπικό κατηγόρηµα Μπορεί να φτάσουν σε λίγο κι άλλα καθήκοντα Η αδράνεια όλων των κόµβων δεν υπονοεί τερµατισµό Μπορεί να έχουµε καθήκοντα καθοδόν Κατανεµηµένα Συστήµατα 05-27

Κατανεµηµένοςτερµατισµός οµή αλγορίθµου Κάθε έργο έχει µία συγκεκριµένη πίστωση Κάθε καθήκον παίρνει µέρος της πίστωσης του έργου Όταν τερµατίσει το καθήκον η πίστωση επιστρέφεται Έχουµε τερµατισµό όταν ανακτηθεί η πίστωση όλου του έργου Για κάθε καθήκον tέχουµε job(t) είναι το έργο που ανήκει credit(t)είναι η πίστωσή του, της µορφής 2 -i Για κάθε έργο j έχουµε home(j) είναι ο κόµβος που ξεκίνησε recovered(j) είναι η ανακτηθείσα πίστωση Για κάθε κόµβο S έχουµε done S (j)είναι το άθροισµα πιστώσεων Κατανεµηµένα Συστήµατα 05-28

Κατανεµηµένοςτερµατισµός Αλγόριθµος ηµιουργία νέου έργου j µε ένα καθήκον t στον κόµβο H home(j)=h, job(t)=j, credit(t)=1, recovered(j)=0, done H (j)=0 ηµιουργία από το t ενός νέου καθήκοντος t credit(t)=credit(t )=credit(t)/2 Ολοκλήρωση του t στον κόµβο S done S (j)=done S (j)+credit(t) Ολοκλήρωση όλων των καθηκόντων στον S Ο Sστέλνει το done S (j)στον home(j) O Ηθέτει recovered(j)=recovered(j)+done S (j) Αν recovered(j)=1, έχουµε τερµατισµό Ιδιότητες αλγορίθµου Βέλτιστος: ένα µήνυµα ανά κατάσταση αδράνειας Βασίζεται σε αυθαίρετης ακρίβειας δυαδικούς αριθµούς Κατανεµηµένα Συστήµατα 05-29

Κατανεµηµένοςτερµατισµός Αλγόριθµος των Dijkstra και Scholten Οι κόµβοι είναι ενεργοί ή παθητικοί Όπως στον αλγόριθµο του Dijkstra Αρχικά όλοι οι κόµβοι είναι παθητικοί Ο συντονιστής S είναι ενεργητικός Οι υπολογισµοί ξεκινούν από τον S Κατασκευή ενός αντεστραµµένου δένδρου Ρίζα ο συντονιστής S Κάθε κλαδί δείχνει έναν εκκρεµή υπολογισµό Κάθε κόµβος p δείχνει στον πατέρα του (parent(p)) Ένας κόµβος χωρίς πατέρα είναι ελεύθερος Κάθε κόµβος p µετράει τα παιδιά του (children(p)) Ένας κόµβος χωρίς παιδιά είναι φύλλο Κατανεµηµένα Συστήµατα 05-30

Κατανεµηµένοςτερµατισµός Αλγόριθµος Όταν o p<>s λάβει µήνυµα από τον p Αν parent(p)=null Εισάγεται στο δένδρο η ακµή (p,p ) Ο p ενηµερώνει τον p children(p )++ Αν ένα φύλλο p είναι παθητικό και children(p)=0 Για κάθε κόµβο p στον οποίο δείχνει ο p Ο p ενηµερώνει τον p children(p ) Αφαιρούνται όλες οι εξερχόµενες ακµές του p Αν ο S είναι παθητικό φύλλο έχουµε τερµατισµό εν υπάρχουν άλλοι εκκρεµείς υπολογισµοί Κατανεµηµένα Συστήµατα 05-31

Κατανεµηµένοςτερµατισµός Ανίχνευση τερµατισµού µε στιγµιότυπα Έστω ότι η p λαµβάνει µήνυµα στιγµιοτύπου από την p Τότε η p είναι ο προκάτοχος της p Αλγόριθµος Όταν η διεργασία p ολοκληρώσει τη δουλειά της Αν η p έχει λάβει <done> από όλους τουςδιαδόχους της και δεν έχει λάβει κανένα µήνυµα κατάτο χρονικό διάστηµα που κατέγραφε την κατάσταση των καναλιών της Στέλνει <done> στον προκάτοχό της ιαφορετικά Στέλνει <continue> στον προκάτοχό της Αν ο συντονιστής λάβει <done> από όλους τους προκατόχους Ο υπολογισµός έχει τελειώσει Κατανεµηµένα Συστήµατα 05-32