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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

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

Μοντελοποίηση Λογικών Κυκλωμάτων

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή στους Αλγορίθμους

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

Πρόβλημα συντομότερης διαδρομής - Shortest path problem. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

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

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

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

ΘΕΩΡΙΑ ΠΑΙΓΝΙΩΝ. Ενότητα 7: Τέλεια ισορροπία Nash για υποπαίγνια. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

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

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

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

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

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

Ασυμπτωτικός Συμβολισμός

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Εισαγωγή στους Αλγορίθμους

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Καθ. Γιάννης Γαροφαλάκης. ΜΔΕ Επιστήμης και Τεχνολογίας Υπολογιστών Τμήμα Μηχανικών Η/Υ & Πληροφορικής

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

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

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

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

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

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Πληροφορική. Εργαστηριακή Ενότητα 6 η : Ταξινόμηση & Ομαδοποίηση Δεδομένων

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 3

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

Σχεδίαση Δικτύων Υπολογιστών

ΜΑΘΗΜΑ: Δίκτυα Υψηλών Ταχυτήτων

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Φροντιστήριο 4: Μορφολογική Παραγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

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

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 7: Τοπικά δίκτυα

Συστήματα Αναμονής. Ενότητα 1: Εισαγωγή. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

Αλγόριθμοι και Δομές Δεδομένων(Θ) Ευάγγελος Γ. Ούτσιος

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

Θεωρία τησ Πληροφορίασ (Θ) ΔΙΔΑΚΩΝ: Δρ. Αναςτάςιοσ Πολίτησ

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

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

Συστήματα Αναμονής. Ενότητα 6: Θεωρία Ουρών. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Ενδεικτικές λύσεις ασκήσεων

Transcript:

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

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Οικονομικό Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Οι εικόνες προέρχονται από το βιβλίο «Κατανεμημένα Συστήματα με Java», Ι. Κάβουρας, Ι. Μήλης, Γ. Ξυλωμένος, Α. Ρουκουνάκη, 3 η έκδοση, 2011, Εκδόσεις Κλειδάριθμος. 3

Σκοποί ενότητας Κατανόηση του προβλήματος του αμοιβαίου αποκλεισμού στα κατανεμημένα συστήματα. Εξοικείωση με τη συγκεντρωτική προσέγγιση στον αμοιβαίο αποκλεισμό. Κατανόηση των βασικών αλγορίθμων κατανεμημένου αμοιβαίου αποκλεισμού (Lamport, Ricart-Agrawala, LeLann, Chandy και Raymond). 4

Περιεχόμενα ενότητας Πρόβλημα αμοιβαίου αποκλεισμού Συγκεντρωτική προσέγγιση Αλγόριθμος Lamport Αλγόριθμος Ricart-Agrawala Αλγόριθμος LeLann Αλγόριθμος Chandy Αλγόριθμος Raymond 5

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

Απαιτήσεις αμοιβαίου αποκλεισμού Ίδιο πρόβλημα με συγκεντρωτικά συστήματα Αλλά χωρίς κοινό ρολόι και κοινή μνήμη Ασφάλεια: το πολύ μια διεργασία στην ΚΠ Βιωσιμότητα: κάθε αίτηση θα ικανοποιηθεί Δε συμβαίνουν αδιέξοδα Δε συμβαίνει υποσιτισμός Διάταξη: εξυπηρέτηση με τη σειρά Σύμφωνα με την πρόδρομη σχέση 7

Γενικές υποθέσεις Κάθε διεργασία έχει άλλο αναγνωριστικό Μία μηχανή ανά διεργασία Επικοινωνία διεργασιών με μηνύματα Ανταγωνισμός για έναν μόνο πόρο Οι επεξεργαστές είναι πλήρως συνδεδεμένοι 8

Επίδοση συστήματος Κριτήρια επίδοσης Πλήθος μηνυμάτων μέχρι την είσοδο στην ΚΠ Πλήθος μηνυμάτων μέχρι την έξοδο από ΚΠ Επίδοση στην πράξη Εξαρτάται από τις διεργασίες Μικρές και αραιά εκτελούμενες ΚΠ Κυριαρχεί το κόστος του αλγόριθμου Μεγάλες και συχνά εκτελούμενες ΚΠ Κυριαρχεί ο χρόνος αναμονής σε ουρές 9

Προσεγγίσεις Συγκεντρωτική προσέγγιση Συντονιστής Κατανεμημένη προσέγγιση Διάταξης γεγονότων Αλγόριθμος Lamport (1978) Αλγόριθμος Ricart-Agrawala (1981) Μεταβίβασης σκυτάλης Τοπολογία δακτυλίου (LeLann, 1977) Τοπολογία δένδρου (Raymond, 1989) Οποιαδήποτε τοπολογία (Chandy, 1982) 10

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

Συγκεντρωτικός αλγόριθμος (1 από 5) Χρήση συντονιστή για έλεγχο πρόσβασης Εκλέγεται από διεργασίες συστήματος Δίνει άδεια πρόσβασης μετά από αίτηση Διατηρεί ουρά αναβληθεισών αιτήσεων Αλγόριθμος αμοιβαίου αποκλεισμού Όταν η p i θέλει πρόσβαση στην ΚΠ Στέλνει <request, i> στον συντονιστή p c 12

Συγκεντρωτικός αλγόριθμος (2 από 5) Αλγόριθμος αμοιβαίου αποκλεισμού Όταν ο συντονιστής p c λάβει <request, i> Αν η ΚΠ είναι ελεύθερη, στέλνει <reply> Αλλιώς εισάγει την αίτηση στην ουρά Όταν η p i λάβει <reply> εισέρχεται στην ΚΠ Όταν η p i βγει από την ΚΠ Στέλνει <release, i> στον συντονιστή p c Αν μη άδεια ουρά, ο p c στέλνει ένα <reply> 13

Συγκεντρωτικός αλγόριθμος (3 από 5) p 1 4 <request> 2 <reply> 5 <release> 1 <request> 3 <request> Παράδειγμα p 3 8 <reply> 9 <release> p c (α) 6 <reply> 7 <release> Συντονιστής (p c ) Τρεις διεργασίες (p 1,, p 3 ) p 3 Αρχικά Μετά το 3 Μετά το 4 Πολιτική FIFO p 3 Μετά το 6 Μετά το 8 Σειρά αιτήσεων: 1, 2, 3 (β) 14

Συγκεντρωτικός αλγόριθμος (4 από 5) Απόδοση Ανταλλαγή 3 μηνυμάτων ανά είσοδο Ανταλλαγή 2 μηνυμάτων πριν την είσοδο Η απαίτηση διάταξης δεν καλύπτεται! Εξαρτάται από καθυστερήσεις δικτύου Απλή υλοποίηση Ακόμη και στο συντονιστή 15

Συγκεντρωτικός αλγόριθμος (5 από 5) Μειονέκτημα: αποτυχία συντονιστή Ανίχνευση αποτυχίας Εκλογή νέου συντονιστή Ανακατασκευή της ουράς Καθυστέρηση <reply> Μήπως απέτυχε ο συντονιστής; Λύση: αποστολή <permission_denied> Ο συντονιστής είναι ζωντανός 16

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

Αλγόριθμος Lamport (1 από 6) Η διεργασία ρωτά τις άλλες πριν μπει στην ΚΠ Μήνυμα request Περιμένει να πάρει απαντήσεις από όλες Μήνυμα reply Όταν βγει από ΚΠ στέλνει μηνύματα σε όλες Μήνυμα release Τα μηνύματα διατηρούνται σε ουρά αιτήσεων Ταξινόμηση με βάση λογικές χρονοσφραγίδες 18

Αλγόριθμος Lamport (2 από 6) Όταν p i θέλει να εισέλθει στην ΚΠ Αποστολή <request, t i > σε όλες τις διεργασίες Εισάγει την αίτησή της στην ουρά της Λήψη <request, t i > από την p j Εισάγει την αίτηση στην ουρά με βάση το t i Αποστολή <reply> στην p i Όταν η p i βγαίνει από την ΚΠ Διαγράφει την αίτησή της από την ουρά της Στέλνει <release> σε όλες τις διεργασίες 19

Αλγόριθμος Lamport (3 από 6) Λήψη <release> από την p j Αφαιρεί αίτηση της p i από την ουρά της Η p i εισέρχεται στην ΚΠ αν και μόνο αν Έχει λάβει <reply> από όλες τις άλλες διεργασίες Η αίτησή της είναι στην κορυφή της ουράς της 20

Αλγόριθμος Lamport (4 από 6) p1 p 1 p1 p2 10 8 <reply> <reply> 8 <reply> p2 10 p3 p2 <reply> p3 (α) p1 p2 (β) p1 p2 p1 p1 p2 p1 p2 Παράδειγμα p 1 : χρονοσφραγίδα 8 : χρονοσφραγίδα 10 <release> <release> p2 p 3 <release> p2 <release> p3 p1 p2 p1 p2 p2 p2 (γ) (δ) 21

Αλγόριθμος Lamport (5 από 6) t i p i <request> <request> <reply> p j Βελτίωση του αλγορίθμου t j Η p i στέλνει μήνυμα με TS t i Η p j στέλνει μήνυμα με TS t j H p j δεν χρειάζεται να στείλει reply αν t i < t j Η p i ξέρει ότι η p j ακολουθεί Έστω ότι η p i έλαβε m αιτήσεις με πιο πρόσφατο TS Αρκεί να λάβει reply από τις άλλες n-m-1 διεργασίες 22

Αλγόριθμος Lamport (6 από 6) Ασφάλεια: όλοι έχουν ίδια σειρά στις ουρές Εκεί χρησιμεύουν τα reply Βιωσιμότητα: κάθε αίτηση εξυπηρετείται Η τρέχουσα διεργασία εξέρχεται από ΚΠ Η επόμενη στην ουρά εισέρχεται στην ΚΠ Διάταξη: εξυπηρέτηση με τη σειρά Χρήση των χρονοσφραγίδων Lamport Πολυπλοκότητα: 3(n-1) ανά είσοδο Καθυστέρηση 2(n-1) πριν την είσοδο 23

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

Αλγόριθμος Ricart-Agrawala (1 από 6) Παραλλαγή αλγόριθμου Lamport Απάντηση και αποδέσμευση με μήνυμα <OK> Αντί για <reply> και <release> Κάθε διεργασία διατηρεί μία ουρά Ταξινομημένη με βάση λογικές χρονοσφραγίδες Αποστολή αιτήσεων σε όλους πριν από ΚΠ Όποιος δεν ενδιαφέρεται απαντά άμεσα Όποιος ενδιαφέρεται απαντά ανάλογα με διάταξη 25

Αλγόριθμος Ricart-Agrawala (2 από 6) Όταν η p i θέλει να εισέλθει στην ΚΠ Αποστολή <request, t i > σε όλες τις διεργασίες Όταν η p j λαμβάνει <request, t i > από την p i Αν είναι στην ΚΠ εισάγει την αίτηση στην ουρά της Διαφορετικά Αν δεν ενδιαφέρεται για την ΚΠ στέλνει <OK> Αν έχει εκδώσει αίτηση με t j Αν t i < t j στέλνει <OK> Αλλιώς εισάγει αίτηση στην ουρά της 26

Αλγόριθμος Ricart-Agrawala (3 από 6) Όταν η p i λάβει <OK> από όλες τρις διεργασίες Εισέρχεται στην ΚΠ Όταν η pi βγει από την ΚΠ Στέλνει <OK> στις διεργασίες στην ουρά της Διαγράφει όλες τις διεργασίες από την ουρά της 27

Αλγόριθμος Ricart-Agrawala (4 από 6) p 1 p 1 4 6 p 1 <ΟΚ> 6 4 <ΟΚ> 4 6 <ΟΚ> p 3 p 3 p 1 (α) (β) Παράδειγμα : είναι στην ΚΠ p 1 : χρονοσφραγίδα 6 : χρονοσφραγίδα 4 p 1 p 1 <OK> <OK> p 3 (γ) p 1 p 1 <ΟΚ> p 1 p 3 (δ) 28

Αλγόριθμος Ricart-Agrawala (5 από 6) Ισχύουν οι απαιτήσεις; Ασφάλεια: η διεργασία με min TS έχει τα <OK> Βιωσιμότητα: αλυσίδα αναμονής με βάση τα TS Διάταξη: η είσοδος στην ΚΠ γίνεται με βάση τα TS Κόστος αλγορίθμου 2(n-1) μηνύματα για κάθε είσοδο στην ΚΠ Ίδιο ακριβώς πλήθος πριν την είσοδο στην ΚΠ 29

Αλγόριθμος Ricart-Agrawala (6 από 6) Κατανεμημένοι ή συγκεντρωτικοί αλγόριθμοι; Ο κατανεμημένος είναι χειρότερος! Έχει πολλά σημεία αποτυχίας (κάθε διεργασία) Όλοι έχουν τόσο φόρτο όσο ο συντονιστής Κάθε διεργασία πρέπει να γνωρίζει όλες τις άλλες Γιατί ασχολούμαστε λοιπόν; Υπάρχει κατανεμημένος αλγόριθμος Υπάρχουν και πιο γρήγορες λύσεις 30

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

Αλγόριθμος LeLann (1 από 4) Χρήση ειδικού μηνύματος: σκυτάλη (token) Είσοδος στην ΚΠ μόνο αν έχουμε τη σκυτάλη Αλγόριθμος LeLann Λογική διάταξη διεργασιών σε δακτύλιο Η σκυτάλη μεταδίδεται στο δακτύλιο Μετάδοση πάντα στην επόμενη στο δακτύλιο Όταν η p i λαμβάνει τη σκυτάλη Αν θέλει να μπει στην ΚΠ δεσμεύει τη σκυτάλη Μόλις βγει από την ΚΠ μεταβιβάζει τη σκυτάλη Αλλιώς τη μεταβιβάζει άμεσα στην επόμενη 32

Αλγόριθμος LeLann (2 από 4) Απαιτήσεις αμοιβαίου αποκλεισμού Ασφάλεια: μόνο ο κάτοχος μπαίνει στην ΚΠ Βιωσιμότητα: όλοι παίρνουν τη σκυτάλη Σε κάθε λήψη η διεργασία μπαίνει μία φορά στην ΚΠ Διάταξη: με όποια σειρά επιβάλλει ο δακτύλιος Απόδοση 1- μηνύματα ανά είσοδο στην ΚΠ 0-(n-1) μηνύματα καθυστέρηση μέχρι την είσοδο 33

Αλγόριθμος LeLann (3 από 4) Αποτυχία διεργασίας Αποτυχία ολόκληρου του συστήματος Χρήση μηνύματος <acknowledgement> Στέλνεται σε προηγούμενη στη λήψη της σκυτάλης Αν δεν λάβει επιβεβαίωση Στέλνει τη σκυτάλη παραπέρα Πρέπει να γνωρίζει μερικές επόμενες 34

Αλγόριθμος LeLann (4 από 4) Απώλεια σκυτάλης Εκλογή αρχηγού για παρακολούθηση σκυτάλης Στέλνει περιοδικά μήνυμα <who has the token> Όποιος την έχει θέτει ένα πεδίο στη μήνυμα Αν επιστρέψει χωρίς απάντηση Δημιουργία νέας σκυτάλης Αποστολή σκυτάλης σε επόμενο 35

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

Αλγόριθμος Chandy (1 από 3) Δεν εξαρτάται από τοπολογία Υποθέτει ότι γνωρίζουμε όλες τις διεργασίες! Η σκυτάλη μεταβιβάζεται μόνο όταν πρέπει Μορφή σκυτάλης Η σκυτάλη είναι ένα διάνυσμα (f 1, f 2,, f N ) f i = πόσες φορές η p i μπήκε στην ΚΠ Κάθε διεργασία διατηρεί ουρά αιτήσεων 37

Αλγόριθμος Chandy (2 από 3) Όταν η p i θέλει να μπει στην ΚΠ Στέλνει <request p i, m i > στις άλλες διεργασίες Περιμένει μέχρι να λάβει τη σκυτάλη Όταν η p j λαμβάνει <request p i, m i > Αν δεν έχει τη σκυτάλη Εισάγει την αίτηση στην ουρά της Αν έχει τη σκυτάλη Αν δεν είναι σε ΚΠ στέλνει τη σκυτάλη στην p i Αν είναι σε ΚΠ εισάγει την αίτηση στην ουρά 38

Αλγόριθμος Chandy (3 από 3) Όταν η p i λάβει τη σκυτάλη Θέτει f i = m i στη σκυτάλη και μπαίνει στην ΚΠ Όταν η p i βγει από την ΚΠ Αν η ουρά αιτήσεων είναι κενή Κρατάει τη σκυτάλη μέχρι να λάβει αίτηση Αν η ουρά αιτήσεων δεν είναι κενή Εξάγει την πρώτη αίτηση <request p j, m j > Εάν m j > f j στέλνει τη σκυτάλη στην p j Αλλιώς αγνοεί την αίτηση και επαναλαμβάνει 39

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

Αλγόριθμος Raymond (1 από 8) Υποθέτει διεργασίες οργανωμένες σε δένδρο Μπορεί να είναι επικαλυπτικό δένδρο Δεν συμμετέχουν όλες οι διεργασίες Ορισμένες εκπροσωπούνται από άλλες Η σκυτάλη βρίσκεται πάντα στη ρίζα Οι ακμές δείχνουν πάντα προς τη ρίζα Η σκυτάλη αντιστρέφει ακμές όταν κινείται Κάθε διεργασία διατηρεί ουρά αιτήσεων 41

Αλγόριθμος Raymond (2 από 8) Όταν η p i θέλει να μπει στη ΚΠ Εισάγει την αίτησή της στην ουρά της Αν ήταν κενή στέλνει <request p i > σε γονέα Όταν η p j λάβει <request p i > και δεν είναι ρίζα Εισάγει την αίτηση στην ουρά Αν ήταν κενή στέλνει <request p j > σε γονέα 42

Αλγόριθμος Raymond (3 από 8) Όταν η p j λάβει <request p i > και είναι ρίζα Αν είναι σε ΚΠ εισάγει το μήνυμα στην ουρά Αν δεν είναι σε ΚΠ Αντιστρέφει την ακμή λήψης Στέλνει τη σκυτάλη στην ακμή 43

Αλγόριθμος Raymond (4 από 8) Όταν η p j λαμβάνει τη σκυτάλη Εξάγει αίτηση p k από την κεφαλή της ουράς Αν η p k είναι η p j εισέρχεται στην ΚΠ Αν η p k είναι άλλη διεργασία Αντιστρέφει την ακμή προς την p k Στέλνει τη σκυτάλη στην ακμή Αν η ουρά της δεν είναι άδεια, στέλνει <request p j > στην p k 44

Αλγόριθμος Raymond (5 από 8) Όταν η p j βγαίνει από την ΚΠ Aν η ουρά της δεν είναι άδεια Εξάγει την p k από την κεφαλή της ουράς Αντιστρέφει την ακμή προς την p k Στέλνει τη σκυτάλη στην ακμή Αν η ουρά της δεν είναι άδεια, στέλνει <request p j > στην p k 45

Αλγόριθμος Raymond (6 από 8) p 1 p 1 p 3 p 5 p 3 p 5 p 6 p 7 p 5 p 6 p 7 p 5 Παράδειγμα (α) p 1 (β) p 1 p p p p 5 3 5 p Αρχικά 4 σκυτάλη στην 1 p 5 p 6 p 7 p Η p 5 4 θέλει να μπει στην ΚΠ p 5 p 5 (γ) Η p 5 θέλει να μπει στην ΚΠ Η τις εκπροσωπεί p 1 (δ) p 1 p 3 p 6 p 7 p 5 p 3 p 3 p 5 p 6 p 7 p 5 p 6 p 7 46

p 5 p 6 p 7 p 5 p 6 p 7 Αλγόριθμος Raymond (7 από 8) (α) p 5 (β) p 1 p 1 p 5 p 3 p 5 p 3 p 5 p 6 p 7 p 5 p 6 p 7 p 5 p 5 (γ) (δ) p 1 p 1 p 5 p 3 p 3 p 5 p 6 p 7 p 5 p 6 p 7 p 5 p 5 Παράδειγμα: συνεχίζει η και μετά η p 5 (ε) (στ) 47

Αλγόριθμος Raymond (8 από 8) Απαιτήσεις αμοιβαίου αποκλεισμού Ασφάλεια: το κουπόνι βρίσκεται στην ρίζα Βιωσιμότητα: ακυκλική δομή δένδρου Διάταξη: επιβάλλεται από δομή δένδρου Πολυπλοκότητα: ανάλογη του logn Υποθέτουμε τυχαία κατασκευή δένδρου Τόση είναι η μέση απόσταση δύο κόμβων 48

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