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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

Απαντήσεις. Απάντηση. Απάντηση

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

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

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

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

Συντονισμός και συμφωνία

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανοχή απέναντι σε Σφάλµατα Fault Tolerance

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

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

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

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

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

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση

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

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

«Συγχρονισμός ρολογιών υπό την παρουσία σφαλμάτων»

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

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

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

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

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

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

Ποια ιδιότητα αϖό τις δύο τελευταίες είναι ϖιο ισχυρή;

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

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

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Αδιέξοδα (Deadlocks)

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

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

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

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

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

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

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

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

Περίληψη. Ethernet Δίκτυα Δακτυλίου, (Token Ring) Άλλα Δίκτυα Σύνδεση Τοπικών Δικτύων.

Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός

Αιτιώδεις Σχέσεις και Χρονισµός. Παναγιώτα Φατούρου Αρχές Κατανεµηµένου Υπολογισµού

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

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

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

6. Αδιέξοδο. 1. Ορισμοί είδη πόρων. 3. Συνθήκες αδιεξόδου. 1. Πρόληψη 2. Αποφυγή 3. Ανίχνευση 5. Το πρόβλημα των συνδαιτημόνων φιλοσόφων

Transcript:

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

Τι θα δούμε σήμερα Αλγόριθμος Χρήση Συντονιστή Αλγόριθμος του Lamport Αλγόριθμος LeLann: τοπολογία δακτυλίου ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 1

ΑΑ με Ανταλλαγή Μηνυμάτων Συνθήκη Ασφαλείας Αμοιβαίος Αποκλεισμός: Μόνο μια διεργασία κάθε στιγμή στο κρίσιμο τμήμα Συνθήκες Ζωτικότητας Αποφυγή Αδιεξόδου Αποφυγή Παρατεταμένης Στέρησης Πολυπλοκότητα Αριθμός μηνυμάτων για χρήση (είσοδο και έξοδο) του ΚΤ ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 2

Αλγόριθμος με Συντονιστή Ιδέα: Προσομοίωση του πως επιτυγχάνουμε αμοιβαίο αποκλεισμό σε συγκεντρωτικά συστήματα Εκλέγουμε ένα επεξεργαστή συντονιστή (πρόεδρο) Ελέγχει την πρόσβαση τον άλλων επεξεργαστών στο κρίσιμο τμήμα Επεξεργαστές μη συντονιστές Απευθύνονται στον συντονιστή για να μπορέσουν να μπουν στο κρίσιμο τμήμα Μπορούν να χρησιμοποιήσουν το κρίσιμο τμήμα αφότου πάρουν την άδεια του συντονιστή ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 3

Αλγόριθμος Συντονιστή Assume that p c is the coordinator Code for entry section at non-coordinator p i : Send <request> to p c!!wait to receive <reply> from p c!!enter the critical source!!! Code for exit section at non-coordinator p i : send <release> to p c ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 4

Αλγόριθμος Συντονιστή Assume that p c is the coordinator Upon receipt of <request> at p c from p i : add p i in the queue!!if (!waiting)!!!send <reply> to p i!!!waiting = TRUE! Upon receipt of <release> at p c from p i : if (!empty(queue))!!!send <reply> to next in queue!!else!!!waiting = FALSE ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 5

Ανάλυση Αλγορίθμου Συντονιστή Συνθήκη Ασφάλειας (Αμοιβαίος Αποκλεισμός): Ισχύει Ο συντονιστής επιτρέπει μόνο σε μια διεργασία να βρίσκεται στο κρίσιμο τμήμα ανα πάσα στιγμή Συνθήκες Ζωτικότητας Αποφυγή Αδιεξόδου: διασφαλίζεται από τον συντονιστή Αποφυγή Παρατεταμένης Στέρησης: διασφαλίζεται από την πολιτική FIFO του συντονιστή ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 6

Ανάλυση Αλγορίθμου Συντονιστή Πολυπλοκότητα: 3 μηνύματα 2 μηνύματα για είσοδο στο ΚΤ <request>, <reply> 1 μήνυμα για έξοδο από το ΚΤ <release> Μειονεκτήματα: Σφάλμα συντονιστή καταρρέει το σύστημα Θεωρεί αξιόπιστη ανταλλαγή μυνημάτων ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 7

Αλγόριθμος του Lamport Ιδέα: Επικοινώνησε με τους άλλους επεξεργαστές για να τους ενημερώσεις για την επιθυμία σου να χρησιμοποιήσεις το κρίσιμο τμήμα Αν η αίτηση σου στάλθηκε «πριν» από άλλες αιτήσεις τότε μπορείς να χρησιμοποιήσεις το κρίσιμο τμήμα Αλλιώς περιμένεις την σειρά σου Πως ορίζουμε την σειρά των γεγονότων; Χρονοσφραγίδες Lamport Υποθέσεις Κάθε επεξεργαστής διαθέτει μια ουρά για να κρατά τις αιτήσεις Τα κανάλια προσφέρουν FIFO εγγυήσεις ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 8

Χρονοσφραγίδες Lamport Λογικός συγχρονισμός ρολογιών Μερική ταξινόμηση γεγονότων Προσπαθεί να εξηγήσει την σχέση «πριν από» Χρονοσφραγίδα: ένας ακέραιος αριθμός για κάθε επεξεργαστή στο σύστημα. Αλγόριθμος Χρονοσφραγίδας στον p i : Πριν από κάθε υπολογιστικό βήμα αύξησε την χρονοσφραγίδα Συμπεριέλαβε την χρονοσφραγίδα σου σε κάθε μήνυμα που στέλνεις Αν λάβεις μήνυμα με μεγαλύτερη χρονοσφραγίδα ανανέωσε θέσε την χρονοσφραγίδα σου σε μεγαλύτερη τιμή από αυτή του μηνύματος πριν επεξεργαστείς το μήνυμα ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 9

Αλγόριθμος Lamport Entry code at process p i :!!send <request, (t i, i)> to all!!add <p i, (t i, i)> in your local request_queue i!!!!! according to (t i, i)!!wait for <reply, (t j, j)> from all!!!!s.t. (t j, j) > (t i, i)!!wait for <p i, (t i, i)> to be head of request_queue i!!enter CS!!! Exit code at p i :!!remove <p i, (t i, i)> from request_queue i!!send <release, (t i, i)> to all! ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 10

Αλγόριθμος Lamport Upon receiving <request, (t i, i)> at p j :!!add <p i, (t i, i)> in your local request_queue j!!!!! according to (t i, i)!!send <reply, (t j, j)> to p i!!!!! Upon receiving <release, (t i, i)> at p j :!!remove <p i, (t i, i)> from request_queue j!!! ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 11

Παράδειγμα Εκτέλεσης p 1 p 2 p 3 Έστω οι επεξεργαστές p 1 και p 2 θέλουν να εισέλθουν στο ΚΤ... ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 12

Παράδειγμα Εκτέλεσης 10, p 1 p 1 <request, (8,p 2 )> <request, (10,p 1 )> p 2 <request, (8,p 2 )> p 3 8, p 2 Βάζουν την αίτηση τους στην ουρά και στέλνουν μήνυμα σε όλους με την χρονοσφραγίδα τους... ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 13

Παράδειγμα Εκτέλεσης 10, p 1 p 1 <request, (8,p 2 )> <reply, (11,p 3 )> p 2 <request, (8,p 2 )> p 3 10, p 1 8, p 2 Ο p 3 λαμβάνει πρώτα την αίτηση από τον p 1 και απαντά. Ο p 1 δεν μπορεί ακόμα να μπεί στο ΚΤ αφού δεν έλαβε απάντηση από τον p 2 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 14

Παράδειγμα Εκτέλεσης 8, p 2 10, p 1 p 1 <reply, (11,p 2 )> <reply, (12,p 1 )> p 2 <reply, (11,p 3 )> p 3 8, p 2 10, p 1 8, p 2 10, p 1 Τα μηνύματα του p 2 λαμβάνονται από τους p 1 και p 3... Οι p 1 και p 3 τοποθετούν την αίτηση του p 2 πρώτη αφού έχει μικρότερη χρονοσφραγίδα ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 15

Παράδειγμα Εκτέλεσης 8, p 2 10, p 1 p 1 <release, (13,p 2 )> p 2 <release, (13,p 2 )> p 3 8, p 2 10, p 1 10, p 1 Όταν ο p 2 τελειώσει από το ΚΤ ειδοποιεί τους υπόλοιπους... ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 16

Παράδειγμα Εκτέλεσης 10, p 1 p 1 p 2 <release, (13,p 2 )> p 3 8, p 2 10, p 1 10, p 1 Όταν ο p 1 λάβει το μήνυμα του p2, τον αφαιρεί από την ουρά του και έρχεται η αίτηση του πρώτη... Τότε σταματά να περιμένει και μπαίνει στο ΚΤ... ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 17

Παράδειγμα Εκτέλεσης p 1 <release, (14,p 1 )> <release, (14,p 1 )> p 2 <release, (13,p 2 )> p 3 8, p 2 10, p 1 10, p 1 Όταν ο p 1 τελειώσει από το ΚΤ ειδοποιεί τους υπόλοιπους... ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 18

Ορθότητα Αλγορίθμου Θεώρημα: Ο αλγόριθμος του Lamport επιτυγχάνει Αμοιβαίο Αποκλεισμό Απόδειξη: Με αντίφαση Έστω ότι μπορούν δύο επεξεργαστές p i και p j να μπουν στο ΚΤ ταυτόχρονα Συνεπάγεται ότι για τους δυο επεξεργαστές ισχύουν τα ακόλουθα Έλαβαν απάντηση από όλους με χρονοσφραγίδα μεγαλύτερη από την δική τους, και Η αίτησή τους είναι στην κορυφή της ουράς Έστω χ.α.τ.γ ότι η χρονοσφραγίδα που βάζει ο p i στην αίτησή του είναι μικρότερη από αυτή του p j Επομένως ο p i έστειλε την αίτησή του πριν παραλάβει την αίτηση του p j Και επίσης σημαίνει ότι ο p i δεν απάντησε ακόμα στον p j ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 19

Ορθότητα Αλγορίθμου Απόδειξη Συνέχεια... Έστω ότι ο p i παρέλαβε την αίτηση του p j και απάντησε σε αυτή Από την υπόθεση ότι έχουμε FIFO κανάλια έπεται ότι ο p j θα παραλάβει την απάντηση του p i αφότου παραλάβει την αίτηση του p i. Άρα τα γεγονότα συμβαίνουν με την εξής σειρά: Παραλαβή αίτησης p i Παραλαβή απάντησης p i Αφού σύμφωνα με την υπόθεσή μας ο p j μπαίνει στο ΚΤ σημαίνει ότι η αίτησή του είναι στην αρχή της ουράς Αυτό συμβαίνει μόνο αν τοποθετήσει την αίτηση του p i μετά από την δική του Αυτό όμως δεν είναι νόμιμο σύμφωνα με τον αλγόριθμο αφού η αίτηση του p i έχει μικρότερη χρονοσφραγίδα από την αίτηση του p j ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 20

Αποφυγή Παρατεταμένης Στέρησης Θεώρημα: Ο αλγόριθμος του Lamport αποφεύγει την παρατεταμένη στέρηση Απόδειξη: Με αντίφαση Έστω ότι ο p j μπαίνει στο ΚΤ πριν από τον p i και η αίτηση του p j είχε μεγαλύτερη χρονοσφραγίδα από την αίτηση του p i Αυτό καθιστά μια αίτηση να μην ικανοποιείται και να περιμένει επ άπειρον Έπεται ότι ο p j Έλαβε απάντηση από όλους με χρονοσφραγίδα μεγαλύτερη από την δική του, και Η αίτησή του είναι στην κορυφή της ουράς Αφού έλαβε απάντηση από όλους σημαίνει ότι έλαβε απάντηση και από τον p i ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 21

Αποφυγή Παρατεταμένης Στέρησης Απόδειξη συνέχεια... Αφού τα κανάλια είναι FIFO έπεται ότι πριν παραλάβει την απάντηση του p i, ο p j παρέλαβε την αίτηση του p i Σύμφωνα όμως με τον αλγόριθμο οι αιτήσεις ταξινομούντε στην ουρά σύμφωνα με την χρονοσφραγίδα τους Αφού η χρονοσφραγίδα της αίτησης του p i ήταν μικρότερη από την χρονοσφραγίδα της αίτησης του p j τότε η αίτηση του p i θα έπρεπε να μπει μπροστά από την αίτηση του p j στην ουρά Επομένως ο p i θα έπρεπε να μπει στο ΚΤ πριν από το p j ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 22

Πολυπλοκότητα Αλγορίθμου Για κάθε αίτηση και χρήση του ΚΤ χρειαζόμαστε Ν- 1 μηνύματα <request> Ν- 1 μηνύματα <reply> Ν- 1 μηνύματα <release> Άρα ο αλγόριθμος χρειάζεται συνολικά 3(Ν- 1) μηνύματα ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 23

Αλγόριθμος LeLann: Δακτύλιος Ιδέα: Πέρνα μια σκυτάλη από τους επεξεργαστές. Όποιος κρατά την σκυτάλη μπορεί να μπει στο ΚΤ. Αν θες να μπεισ στο ΚΤ Κράτα την σκυτάλη μέχρι να τελειώσεις και μετά προώθησε την Αν δεν θες να μπεις στο ΚΤ Απλά προώθησε την σκυτάλη ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 24

Αλγόριθμος LeLann: Δακτύλιος Entry code at process p i :!!wait until receive <token>!!enter CS!!! Exit/No-Entry code at p i :!!send <token> to right neighbor!!! ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 25

Ανάλυση Αλγορίθμου Συνθήκη Ασφάλειας: Ικανοποιεί τον Αμοιβαίο Αποκλεισμό αφού μόνο μια διεργασία έχει την σκυτάλη και μπαίνει στο ΚΤ Συνθήκη Ζωτικότητας: Ικανοποιεί την αποφυγή παρατεταμένης στέρησης όσο η σκυτάλη μεταφέρετε από ένα κόμβο σε άλλο ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 26

Μειονεκτήματα Αποτυχία Διεργασίας Πρέπει να εντοπιστεί η εσφαλμένη διεργασία Πρέπει να ξαναδημιουργηθεί ο δακτύλιος Απώλεια Σκυτάλης Απαιτείται να υπάρχει πάντα μια σκυτάλη Υπεύθυνη διεργασία (πρόεδρος) για να ελέγχει που βρίσκετε η σκυτάλη. ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 27

Ερωτήσεις; ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 28