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

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

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

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

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

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

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

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

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

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

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

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

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Κατανεμημένη συμφωνία (distributed consensus) Κατανεμημένα Συστήματα 1

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

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

Διάλεξη 3: Αλγόριθμοι σε Γράφους ΙΙ. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

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

Ομαδική Επικοινωνία (Group Communication) Κατανεμημένα Συστήματα 1

Κατανεμημένα Συστήματα. Javascript LCR example

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

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

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

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

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017

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

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

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

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

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

Ανοχή βλαβών με καταγραφή κατάστασης και οπισθοδρόμηση (checkpoints & rollback) Κατανεμημένα Συστήματα 1

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι.

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

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

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

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A

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

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

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Τι είναι το πρωτόκολλο Διαδικτύου (Internet Protocol, IP);

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

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

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

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

Φυσικά και λογικά ρολόγια. Κατανεμημένα Συστήματα 1

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

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

ΠΑΡΑΡΤΗΜΑ IV. ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ IV Ασκήσεις για το Robolab

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

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

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

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

Εργαστήριο 4 Πρωτόκολλα Δρομολόγησης

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

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

ΚΕΦΑΛΑΙΟ 3: Τοπολογίες Δικτύων Εισαγωγή

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Αλγόριθμοι Κατανεμημένων Συστημάτων

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

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

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα

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

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

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Διάλεξη 5: Κάτω Φράγμα για Αλγόριθμους Εκλογής Προέδρου. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Διδάσκων: Κωνσταντίνος Αντωνής Δρ. Μηχανικός Η/Υ & Πληροφορικής Πανεπιστημίου Πατρών

Διδάσκων: Παναγιώτης Ανδρέου

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

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

Δομές ελέγχου ροής προγράμματος

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

Διάλεξη 11: Αιτιότητα Διάταξη Γεγονότων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

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

Διάλεξη 15: Ατομική ΚΚΜ Εγγραφής/Ανάγνωσης με Γρήγορες Λειτουργίες. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

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

Red-Black Δέντρα. Red-Black Δέντρα

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

Transcript:

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

Μοντέλο συστήματος Μια ομάδα διεργασιών εκτελεί έναν υπολογισμό Κατάσταση διεργασίας: ενεργητική ή παθητική (ανάλογα με το αν εκτελεί μέρος του υπολογισμού) Μια ενεργητική διεργασία μπορεί ανά πάσα στιγμή να γίνει παθητική (να ολοκληρώσει τον υπολογισμό της) να στείλει μήνυμα σε οποιαδήποτε άλλη διεργασία (για να της αναθέσει ένα τμήμα του υπολογισμού) Μια παθητική διεργασία μπορεί να ξαναγίνει ενεργητική μόνο αν λάβει ένα μήνυμα (ανάθεση τμήματος υπολογισμού) Τερματισμός υπάρχει αν: (1) όλες οι διεργασίες βρίσκονται σε παθητική κατάσταση, και (2) δεν υπάρχει μήνυμα καθοδόν προς κάποια διεργασία Κατανεμημένα Συστήματα 2 lalis@inf.uth.gr

P είναι ενεργή P P στέλνει μήνυμα m P P είναι παθητική P P λαμβάνει μήνυμα και ενεργοποιείται m P Κατανεμημένα Συστήματα 3 lalis@inf.uth.gr

Αλγόριθμος σκυτάλης σε δακτύλιο (Dijkstra, Feijen, Gasteren) Οι διεργασίες έχουν λευκό ή μαύρο χρώμα αρχικά λευκό, αν μια διεργασία στείλει μήνυμα γίνεται μαύρη Όταν μια διακεκριμένη διεργασία Pc γίνει παθητική, γίνεται άσπρη και στέλνει μια άσπρη σκυτάλη κατά μήκος του δακτυλίου Κάθε διεργασία προωθεί την σκυτάλη κατά μήκος του δακτυλίου, όταν γίνει (ή αν είναι ήδη) παθητική αν η διεργασία είναι μαύρη, η σκυτάλη γίνεται μαύρη μετά την προώθηση της σκυτάλης, η διεργασία γίνεται λευκή Όταν η σκυτάλη επιστρέψει στην Pc, εντοπίζεται τερματισμός εφόσον (1) η Pc είναι παθητική, και (2) η Pc είναι λευκή, και (3) η σκυτάλη είναι λευκή Κατανεμημένα Συστήματα 4 lalis@inf.uth.gr

Init: clr = W; term = false; = true; app-sendmsg(p,msg): clr = B; send(p,msg); app-done_processing(): = false; On deliver(msg): = true; app-deliver(msg); checktermination /* Pc */: while () {} send(nxtproc(),<check,w>); clr = W; On deliver(<check,tclr>): if (myid==pc) { term = (!) && (clr==w) && (tclr==w); } else { while () {} if (clr==b) { tclr=b; } send(nxtproc(),<check,tclr>); clr = W; } Κατανεμημένα Συστήματα 5 lalis@inf.uth.gr

Ορθότητα συνθήκης τερματισμού 1. Η Pc είναι παθητική διαφορετικά, ο υπολογισμός σίγουρα δεν έχει τερματιστεί 2. Η Pc είναι λευκή και η σκυτάλη είναι λευκή διαφορετικά, τουλάχιστον μια διεργασία έστειλε τουλάχιστον ένα μήνυμα που πιθανώς να ενεργοποίησε μια διεργασία που ήταν παθητική (από την οποία πέρασε η σκυτάλη) Οι συνθήκες (1)+(2) εγγυώνται ότι η σκυτάλη πέρασε από παθητικές διεργασίες καμία διεργασία δεν έστειλε μήνυμα κατά τη διάρκεια μιας ολόκληρης κυκλικής διαδρομής της σκυτάλης Ο τερματισμός εντοπίζεται ένα κύκλο αφού δημιουργηθεί το τελευταίο μήνυμα Κατανεμημένα Συστήματα 6 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 7 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 8 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 9 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 11 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 12 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 13 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 14 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 15 lalis@inf.uth.gr

δεν εντοπίζεται τερματισμός Κατανεμημένα Συστήματα 16 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 17 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 18 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 19 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 2 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 21 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 22 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 23 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 24 lalis@inf.uth.gr

δεν εντοπίζεται τερματισμός Κατανεμημένα Συστήματα 25 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 26 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 27 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 28 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 29 lalis@inf.uth.gr

εντοπίζεται τερματισμός Κατανεμημένα Συστήματα 3 lalis@inf.uth.gr

Πρόβλημα ορθότητας Ο αλγόριθμος είναι σωστός μόνο αν η αποστολή μηνυμάτων είναι σύγχρονη (ο αποστολέας μπλοκάρει μέχρι το μήνυμα να φτάσει στον παραλήπτη) Μια μαύρη διεργασία μπορεί να γίνει άσπρη (και σε δεύτερη φάση να προωθήσει μια άσπρη σκυτάλη) χωρίς το μήνυμα που έστειλε προηγουμένως να έχει φτάσει στον παραλήπτη του Θα «εντοπιστεί» τερματισμός λανθασμένα το μήνυμα θα φτάσει τελικά στον παραλήπτη τον οποίο και θα ενεργοποιήσει Το πρόβλημα υφίσταται και με FIFO μεταξύ των διεργασιών γιατί; Κατανεμημένα Συστήματα 31 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 32 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 33 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 34 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 35 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 36 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 37 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 38 lalis@inf.uth.gr

δεν εντοπίζεται τερματισμός m Κατανεμημένα Συστήματα 39 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 4 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 41 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 42 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 43 lalis@inf.uth.gr

εντοπίζεται τερματισμός m Κατανεμημένα Συστήματα 44 lalis@inf.uth.gr

m Κατανεμημένα Συστήματα 45 lalis@inf.uth.gr

Λύση για ασύγχρονη μετάδοση μηνυμάτων Πρέπει να εντοπίζεται το γεγονός ότι υπάρχουν μηνύματα καθ οδόν, που δεν έχουν ληφθεί υπ όψη στο χρωματισμό των διεργασιών/σκυτάλης Χρειάζεται πληροφορία για το ισοζύγιο μηνυμάτων Κάθε διεργασία διατηρεί ένα τοπικό μετρητή αυξάνεται κατά 1 όταν η διεργασία στείλει ένα μήνυμα μειώνεται κατά 1 όταν η διεργασία λάβει ένα μήνυμα Η σκυτάλη μεταφέρει το άθροισμα των μετρητών Όταν η Pc λαμβάνει τη σκυτάλη, εκτός από τους προηγούμενους ελέγχους, ελέγχει και το άθροισμα για να υπάρχει τερματισμός, πρέπει να είναι μηδενικό Κατανεμημένα Συστήματα 46 lalis@inf.uth.gr

Init: clr = W; term = false; n = ; = true; app-sendmsg(p,msg): clr = B; n++; send(p,msg); app-done_processing(): = false; On deliver(msg): n--; = true; app-deliver(msg); checktermination /* Pc */: while () {} send(nxtproc(),<check,w,>); clr = W; On deliver(<check,tclr,tn>): if (myid==pc) { term = (!) && (clr==w) && (tclr==w) && (tn+n==); } else { while () {} if (clr==b) { tclr = B; } send(nxtproc(),<check,tclr,tn+n>); clr = W; } Κατανεμημένα Συστήματα 47 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 48 lalis@inf.uth.gr

m 1 Κατανεμημένα Συστήματα 49 lalis@inf.uth.gr

m 1 Κατανεμημένα Συστήματα 5 lalis@inf.uth.gr

m 1 Κατανεμημένα Συστήματα 51 lalis@inf.uth.gr

m 1 1 Κατανεμημένα Συστήματα 52 lalis@inf.uth.gr

m 1 1 Κατανεμημένα Συστήματα 53 lalis@inf.uth.gr

1 m 1 Κατανεμημένα Συστήματα 54 lalis@inf.uth.gr

1 δεν εντοπίζεται τερματισμός m 1 Κατανεμημένα Συστήματα 55 lalis@inf.uth.gr

m 1 Κατανεμημένα Συστήματα 56 lalis@inf.uth.gr

m 1 1 Κατανεμημένα Συστήματα 57 lalis@inf.uth.gr

m 1 1 Κατανεμημένα Συστήματα 58 lalis@inf.uth.gr

1 m 1 Κατανεμημένα Συστήματα 59 lalis@inf.uth.gr

1 δεν εντοπίζεται τερματισμός m 1 Κατανεμημένα Συστήματα 6 lalis@inf.uth.gr

-1 m 1 Κατανεμημένα Συστήματα 61 lalis@inf.uth.gr

-1 1 Κατανεμημένα Συστήματα 62 lalis@inf.uth.gr

-1 1 Κατανεμημένα Συστήματα 63 lalis@inf.uth.gr

-1 1 Κατανεμημένα Συστήματα 64 lalis@inf.uth.gr

-1 1 1 Κατανεμημένα Συστήματα 65 lalis@inf.uth.gr

-1 1 1 Κατανεμημένα Συστήματα 66 lalis@inf.uth.gr

-1 1 Κατανεμημένα Συστήματα 67 lalis@inf.uth.gr

εντοπίζεται τερματισμός -1 1 Κατανεμημένα Συστήματα 68 lalis@inf.uth.gr

Χρωματισμός διεργασιών και σκυτάλης Το ισοζύγιο μηνυμάτων μπορεί να είναι, χωρίς να είναι όλες οι διεργασίες παθητικές μια διεργασία από την οποία ήδη πέρασε η σκυτάλη μπορεί να ενεργοποιηθεί από μια διεργασία από την οποία δεν πέρασε ακόμα η σκυτάλη στη συνέχεια, η διεργασία που ενεργοποιήθηκε μπορεί να στείλει ένα ή περισσότερα μηνύματα που να ισοσκελίζουν το ισοζύγιο μηνυμάτων τόσο για τις επιμέρους διεργασίες από τις οποίες θα περάσει η σκυτάλη όσο και σε καθολικό επίπεδο ο μετρητής της σκυτάλης θα είναι Εξακολουθεί να πρέπει να καταγράφεται (μέσω του χρωματισμού) η πιθανότητα να ενεργοποιηθούν παθητικές διεργασίες από τις οποίες έχει ήδη περάσει η σκυτάλη Κατανεμημένα Συστήματα 69 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 7 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 71 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 72 lalis@inf.uth.gr

1 m Κατανεμημένα Συστήματα 73 lalis@inf.uth.gr

1-1 Κατανεμημένα Συστήματα 74 lalis@inf.uth.gr

1 m Κατανεμημένα Συστήματα 75 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 76 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 77 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 78 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 79 lalis@inf.uth.gr

δεν εντοπίζεται τερματισμός Κατανεμημένα Συστήματα 8 lalis@inf.uth.gr

Αλγόριθμος ανεστραμμένου δέντρου (Dijkstra & Scholten) Ο υπολογισμός αρχίζει από μια διεργασία Pc που είναι ενεργή και έχει ως γονιό τον εαυτό της Οι υπόλοιπες διεργασίες είναι παθητικές και ορφανές Όταν μια ορφανή διεργασία λάβει ένα μήνυμα, καταγράφει τον αποστολέα ως γονιό της τον οποίο ειδοποιεί ώστε να την καταγράψει ως παιδί του Όταν μια διεργασία γίνει παθητική και δεν έχει παιδιά, ειδοποιεί τον γονιό της (την διαγράφει από παιδί του), και μένει ορφανή Όταν η διεργασία Pc γίνει παθητική και δεν έχει παιδιά, τότε έχει τερματιστεί ο κατανεμημένος υπολογισμός Κατανεμημένα Συστήματα 81 lalis@inf.uth.gr

Init: children = ; term = false; = (myid==pc); if (myid==pc) { parent == myid) { parent = NULL; } app-sendmsg(p,msg): children++; send(p,<msg,myaddr,msg>); app-done_processing(): = false; On deliver(<msg,p,msg>): if (parent == NULL) { parent = p; } else { send(p,<dec_child_count>); } = true; app-deliver(msg); On receive(<dec_child_count>): children = children - 1; checktermination: if (!) && (children==)) { if (myid == Pc) { term = true; } else { send(parent,<dec_child_count>); parent = NULL; } } Κατανεμημένα Συστήματα 82 lalis@inf.uth.gr

c= P5 c= "link" to parent c= c= c= Κατανεμημένα Συστήματα 83 lalis@inf.uth.gr

c= c= P5 m c= c= c= Κατανεμημένα Συστήματα 84 lalis@inf.uth.gr

c=1 c= P5 c= c= c= Κατανεμημένα Συστήματα 85 lalis@inf.uth.gr

c=1 c= P5 c= c= m c= Κατανεμημένα Συστήματα 86 lalis@inf.uth.gr

c=1 c= P5 c= c= c=1 Κατανεμημένα Συστήματα 87 lalis@inf.uth.gr

c=1 c= P5 m c= c= c=1 Κατανεμημένα Συστήματα 88 lalis@inf.uth.gr

c=1 c= P5 c= c= c=1 Κατανεμημένα Συστήματα 89 lalis@inf.uth.gr

c=1 c= P5 c= c= c=1 Κατανεμημένα Συστήματα 9 lalis@inf.uth.gr

c=1 c= P5 c= c= c=1 Κατανεμημένα Συστήματα 91 lalis@inf.uth.gr

c=1 c= P5 c= c= m c=1 Κατανεμημένα Συστήματα 92 lalis@inf.uth.gr

c=1 c= P5 c= c= c=1 Κατανεμημένα Συστήματα 93 lalis@inf.uth.gr

c=1 c= P5 m c= c= c=1 Κατανεμημένα Συστήματα 94 lalis@inf.uth.gr

c=1 c= P5 c= c= c=2 Κατανεμημένα Συστήματα 95 lalis@inf.uth.gr

c=1 c= P5 c= c= c=2 Κατανεμημένα Συστήματα 96 lalis@inf.uth.gr

c=1 c= P5 c= c= c=1 Κατανεμημένα Συστήματα 97 lalis@inf.uth.gr

c=1 c= P5 m c= c= c=1 Κατανεμημένα Συστήματα 98 lalis@inf.uth.gr

c=1 c= P5 c= c=1 c=1 Κατανεμημένα Συστήματα 99 lalis@inf.uth.gr

c=1 c= P5 c= c=1 c=1 Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr

c=1 c= P5 c= c=1 c=1 Κατανεμημένα Συστήματα 11 lalis@inf.uth.gr

c=1 c= P5 c= c=1 c=1 Κατανεμημένα Συστήματα 12 lalis@inf.uth.gr

c=1 c= P5 c= c= c=1 Κατανεμημένα Συστήματα 13 lalis@inf.uth.gr

c=1 c= P5 c= c= c= Κατανεμημένα Συστήματα 14 lalis@inf.uth.gr

c= εντοπίζεται τερματισμός c= P5 c= c= c= Κατανεμημένα Συστήματα 15 lalis@inf.uth.gr

Παρατηρήσεις Μια διεργασία γίνεται ορφανή όταν γίνει παθητική και δεν έχει δικά της παιδιά Η πληροφορία «πατρότητας» αλλάζει μόνο όταν η διεργασία που λαμβάνει ένα μήνυμα είναι ορφανή Η πληροφορία τερματισμού "επιστρέφει προς τα πίσω" κατά μήκος των ακμών του κατανεμημένου δέντρου Χρειάζεται προσοχή στην διαχείριση του μετρητή των παιδιών κάθε διεργασίας, έτσι ώστε να μην υπάρχει περίπτωση ασυνέπειας λόγω ασύγχρονης επικοινωνίας Κατανεμημένα Συστήματα 16 lalis@inf.uth.gr

Αλγόριθμος ανάκτησης πίστωσης (Mattern) Υποθέτουμε ότι ο υπολογισμός αρχίζει από μια (ενεργή) διεργασία, με συνολική πίστωση Ν Όταν μια (ενεργή) διεργασία στείλει μήνυμα σε μια άλλη διεργασία (που είναι παθητική), δίνει στην άλλη διεργασία ένας μέρος της πίστωσης της (π.χ. Ν/2) Όταν μια διεργασία γίνει παθητική, επιστρέφει την πίστωση της σε μια διακεκριμένη διεργασία Pc Όταν το άθροισμα των πιστώσεων στην Pc γίνει ίσο με την αρχική πίστωση, υπάρχει τερματισμός Η ορθότητα είναι προφανής Κατανεμημένα Συστήματα 17 lalis@inf.uth.gr