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



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

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

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

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

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

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

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

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 11: Μη Ασυμφραστικές Γλώσσες

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

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

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

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

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

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

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

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

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

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

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

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

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

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

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

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

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

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

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

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

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

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

Δομές Δεδομένων (Data Structures)

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata

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

Επαγωγή και αναδρομή για συνεκτικά γραφήματα

Σχεδίαση και Ανάλυση Αλγορίθμων

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 6: Μη Κανονικές Γλώσσες

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

Μη γράφετε στο πίσω μέρος της σελίδας

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

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

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές

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

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

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

Διατάξεις με επανάληψη: Με πόσους τρόπους μπορώ να διατάξω r από n αντικείμενα όταν επιτρέπονται επαναληπτικές εμφανίσεις των αντικειμένων; Στην αρχή

Αλγόριθμοι Ταξινόμησης Μέρος 3

Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1

Αριθμοθεωρητικοί Αλγόριθμοι

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1

Αδιέξοδα (Deadlocks)

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Transcript:

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

Τι θα δούμε σήμερα Αλγόριθμος Ψησταριάς (Bakery Algorithm) Αλγόριθμος 2- επεξεργαστών Αλγόριθμος n- επεξεργαστών (Δέντρο Ανταγωνισμού) ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 1

Το Πρόβλημα του Αμοιβαίου Αποκλεισμού Ο κώδικας κάθε επεξεργαστή χωρίζεται σε τέσσερισ τομείς: entry remainder critical exit entry: συγχρονίσου με τους άλλους για να διασφαλιστεί αποκλειστική πρόσβαση στο cri(cal: χρησιμοποίησε τον πόρο και ακολούθως exit: καθάρισε τα ίχνη σου και μπες σε κατάσταση όπου remainder: δεν σε ενδιαφέρει η χρήση του πόρου ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 2

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

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

Τύποι μεταβλητών Ανάγνωσης/Μεταβολής/Εγγραφής (Read/Modify/Write) Ελέγχου/Ενημέρωσης (Test&Set) ισχύς Ανάγνωσης/Εγγραφής (Read/Write) ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 5

Μεταβλητή Read / Write Απλές λειτουργίες Εγγραφής και Ανάγνωσης Σε ένα ατομικό βήμα ένας επεξεργαστής μπορεί να: Ανάγνωση: Επιστρέψει την τιμή της κοινόχρηστης μεταβλητής Εγγραφή: Αλλάξει την τιμή της κοινόχρηστης μεταβλητής Αλλά όχι και τα δύο ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 6

Αλγόριθμος Ψησταριάς (Bakery Algorithm) Ιδέα: Πελάτες σε Ψησταριά (στο Δημόσιο στη περίπτωση της Κύπρου) Ο κάθε πελάτης παίρνει ένα αριθμό και ο πελάτης με τον μικρότερο αριθμό είναι ο επόμενος που εξυπηρετείται Ο αλγόριθμος εγγυάται Αμοιβαίο Αποκλεισμό χωρίς Παρατεταμένη Στέρηση Χρησιμοποιεί 2 πίνακες κοινόχρηστων μεταβλητών ανάγνωσης και εγγραφής: Number: πίνακας n ακεραίων μεταβλητών Choosing: πίνακας n διαδικών μεταβλητών ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 7

Κοινόχρηστες Μεταβλητές booleans Choosing[i]: αρχικά FALSE Μεταβάλλεται από τον επεξεργαστή p i και διαβάζεται από όλους Χρησιμοποιείται για να δείξει ότι ένας επεξεργαστής είναι στην διαδικασία επιλογής αριθμού integers Number[i]: αρχικά 0 Μεταβάλλεται από τον επεξεργαστή p i και διαβάζεται από όλους Δείχνει τον αριθμό που επέλεξε ο επεξεργαστής p i Επιλογή Αριθμού: Βρες τον μεγαλύτερο επιλεγμένο αριθμό και αύξησέ τον κατά 1 Πότε ο p i μπαίνει στο κρίσιμο τμήμα: Όταν Number[i] είναι ο μικρότερος αριθμός Σύγκριση ζευγών (Number[i], i)για αποφυγή συμμετρικών τιμών ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 8

Αλγόριθμος Ψησταριάς (Bakery Algorithm) Code for entry section: Choosing[i] := true!!number[i] := max{number[0],,!!!!!! Number[n-1]} + 1!!Choosing[i] := false!!for j := 0 to n-1 (except i) do!!!wait until Choosing[j] = false!!!wait until Number[j] = 0 or!!! (Number[j],j) > (Number[i],i)!!endfor! Code for exit section: Number[i] := 0 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 9

Απόδειξη Αμοιβαίου Αποκλεισμού Λήμμα 1: Αν ένας επεξεργαστής p i μπει στο κρίσιμο τμήμα και Number[k] 0 (k i), τότε (Number[k],k) > (Number[i],i). Ο p i διαβάζει την τιμή του Number[k] πριν μπει στο ΚΤ Υπάρχουν 2 περιπτώσεις Περίπτωση 1: Number[k] = 0! Περίπτωση 2: (Number[k], k) > (Number[i], i)! ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 10

Περίπτωση 1: Number[k] =0 χρόνος Πιο πρόσφατη εγγραφή του p i στο Number[i] p i διαβάζει το Choosing[k] που επιστρέφει FALSE. Άρα ο p k δεν διαλέγει αριθµό. p i διαβάζει Number[k], και επιστρέφει 0. Άρα p k είναι στο Remainder τµήµα ή διαλέγει αριθµό. p i στο ΚΤ και Number[k] 0 p k διαλέγει αριθµό σε αυτό το διάστηµα, Σίγουρα διαλέγει ένα αριθµό µεγαλύτερο από Number[i] ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 11

Περίπτωση 2: (Number[k],k)>(Number[i],i) χρόνος Πιο πρόσφατη εγγραφή του p i στο Number[i] p i διαβάζει το Choosing[k] που επιστρέφει FALSE. Άρα ο p k δεν διαλέγει αριθµό. p i διαβάζει Number[k], και επιστρέφει (Number[k],k)> (Number[i],i). Άρα p k περιµένει να µπει στο ΚΤ αλλά πήρε αριθµό µετά από p ι. p i στο ΚΤ και Number[k] 0 p k διαλέξε ένα αριθµό µεγαλύτερο από Number[i]. Άρα πρέπει να διάλεξε σε αυτό το διάστηµα. ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 12

Απόδειξη Αμοιβαίου Αποκλεισμού Λήμμα 2: Αν ένας επεξεργαστής p i μπει στο κρίσιμο τμήμα, τότε Number[i] > 0. Μπορεί να αποδειχτεί εύκολα με επαγωγή. Αμοιβαίος Αποκλεισμός: Υποθέτουμε ότι μπορούν 2 επεξεργαστές p i και p κ να μπουν στο ΚΤ ταυτόχρονα Από Λήμμα 2 έπεται: Number[i], Number[k] > 0 Από Λήμμα 1 έπεται: (Number[k],k) > (Number[i],i) και (Number[i],i) > (Number[k],k) ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 13

Αποφυγή Παρατεταμένης Στέρησης Ας υποθέσουμε ότι υπάρχει ΠΣ Που μπορεί να συμβεί; Γραμμές 5 ή 6 όπου περιμένουμε Όχι στην επιλογή αριθμού Ας υποθέσουμε ότι ο p i δεν μπορεί να μπει στο ΚΤ (στέρηση) και έχει το μικρότερο ζεύγος (Number[i],i)! Ας υποθέσουμε ότι ο επεξεργαστής p k ήρθε μετά τον p i αλλά μπαίνει στο ΚΤ πριν από τον p i (αφού ο p i έχει ΠΣ) ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 14

Αποφυγή Παρατεταμένης Στέρησης Για να μπορεί όμως ο p k να μπεί στο ΚΤ πρέπει να περιμένει όλους τους επεξεργαστές με μικρότερο αριθμό να μπουν και να βγούν από το ΚΤ. Αφού ο p k έρχεται μετά από το p i σημαίνει ότι Number[k] > Number[i]! Επομένως για να μπει ο p k στο ΚΤ, ο p i δεν μπορεί να κολλήσει στις γραμμές 5 ή 6 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 15

Πολυπλοκότητα Αλγορίθμου Αριθμός Κοινόχρηστων Μεταβλητών: Θ(2n) Μεταβλητές Choosing είναι δυαδικές Μεταβλητές Number είναι μη φραγμένοι ακέραιοι Μπορούμε να βρούμε ένα αλγόριθμο που χρησιμοποιεί πιο λιγότερο κοινόχρηστο χώρο; ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 16

Φραγμένος αλγόριθμος 2- επεξεργαστών Ιδέα: Προσπαθούμε να πάρουμε ένα φραγμένο αλγόριθμο 2- επεξεργαστών και μετά να τον επεκτείνουμε σε αλγόριθμο που υποστηρίζει n- επεξεργαστές Χρήση 3 δυαδικών κοινόχρηστων μεταβλητών ανάγνωσησ/ εγγραφής: W[0]: αρχικά 0, μεταβάλλεται από p 0 και διαβάζεται από p 1 W[1]: αρχικά 0, μεταβάλλεται από p 1 και διαβάζεται από p 0 Priority: αρχικά 0, μεταβάλλεται και διαβάζεται από τους δυο Κάθε μεταβλητή W[] δηλώνει την επιθυμία χρήσης του ΚΤ ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 17

Αλγόριθμος επεξεργαστή p 0 Code for p 0 's entry section: 1.! 2.! 3 W[0] := 1! 4.! 5.! 6 wait until W[1] = 0 Code for p 0 's exit section: 7.! 8 W[0] := 0! ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 18

Αλγόριθμος επεξεργαστή p 1 Code for p 1 's entry section: 1 W[1] := 0! 2 wait until W[0] = 0! 3 W[1] := 1! 4.! 5 if (W[0] = 1) then goto Line 1! 6. Code for p 1 's exit section: 7.! 8 W[1] := 0 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 19

Χαρακτηριστικά αλγορίθμου Ικανοποιεί τον Αμοιβαίο Αποκλεισμό Επιτυγχάνει αποφυγή Αδιεξόδου Δεν επιτυγχάνει Παρατεταμένη Στέρηση Δίνει προτεραιότητα στον p 0 Για να επιφέρουμε δικαιοσύνη θα χρησιμοποιήσουμε την μεταβλητή Priority ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 20

Αλγόριθμος 2- επεξεργαστών Code for entry section: 1 W[i] := 0! 2 wait until W[1-i] = 0 or Priority = i! 3 W[i] := 1! 4 if (Priority = 1-i) then! 5 if (W[1-i] = 1) then goto Line 1! 6 else wait until (W[1-i] = 0) Code for exit section: 7 Priority := 1-i! 8 W[i] := 0 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 21

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

Φραγμένος Αλγόριθμος για n- επεξεργαστές Πως μπορούμε να επεκτείνουμε την ιδέα των 2- επεξεργαστών για να λύσουμε το πρόβλημα με n- επεξεργαστές; Χρησιμοποιώντας την ιδέα του Δέντρου Ανταγωνισμού (Tournament Tree) Πλήρες Δυαδικό Δέντρο Τρέχουμε τον αλγόριθμο 2- επεξεργαστών σε κάθε επίπεδο του δέντρου Κάθε επίπεδο έχει τα δικά του αντίγραφα των κοινόχρηστων μεταβλητών Ο νικητής ανταγωνίζεται στο πιο πάνω επίπεδο Αυτός που κερδίζει στην ρίζα μπαίνει στο ΚΤ ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 23

Δέντρο Ανταγωνισμού 1! 2! 3! 4! 5! 6! 7! p 0, p 1 p 2, p 3 p 4, p 5 p 6, p 7 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 24

Χαρακτηριστικά Αλγορίθμου Ορθότητα: Βασίζεται στην ορθότητα του αλγορίθμου 2- επεξεργαστών Αμοιβαίος Αποκλεισμός: έπεται από τον αμοιβαίο αποκλεισμό 2- επεξεργαστών στην ρίζα του δέντρου Μη Παρατεταμένη Στέρηση: έπεται από την μη παρατεταμένη στέρηση του αλγόριθμου 2- επεξεργαστών σε κάθε κόμβο του δέντρου. Χωρική πολυπλοκότητα: 3n δυαδικές κοινόχρηστες μεταβλητές n: ο αριθμός των κόμβων του δέντρου ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 25

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