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

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

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

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

Διάλεξη 13: Κατανεμημένη Κοινόχρηστη Μνήμη. ΕΠΛ 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. Κάθε διεργασία µοντελοποιείται ως

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

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

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

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

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

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

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

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

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

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 9: Αυτόματα Στοίβας (Pushdown Automata - PDA)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Αδιέξοδα (Deadlocks)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

Βασικές Δομές Δεδομένων

Διάλεξη 21: Γράφοι II - Τοπολογική Ταξινόμηση

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

ΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ

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

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

Βασικές οµές εδοµένων

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

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

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

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

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

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

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

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

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

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

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

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών

Στοίβες με Δυναμική Δέσμευση Μνήμης

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 3: Ντετερμινιστικά Πεπερασμένα Αυτόματα (DFA)

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

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

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Αρχιτεκτονική Υπολογιστών

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

Προγραμματισμός Ι (HY120)

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

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

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

Υ- 07 Παράλληλα Συστήματα Transac9onal memory

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

Διάλεξη 9: Αφηρημένοι Τύποι Δεδομένων. Διδάσκων: Παναγιώτης Ανδρέου

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

ΕΡΓΑΣΙΑ 1 Ημερομηνία Ανάρτησης: 02/02/2017 Ημερομηνία Παράδοσης: 16/02/2017, 09:00 π.μ. Στόχος Ορισμός

Πανεπιστήμιο Θεσσαλίας- Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΗΥ430- Εργαστήριο Ψηφιακών Κυκλωμάτων

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

Σελίδα Φορτώθηκε Προσπελάστηκε Συχνότητα R Μ (dirty)

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

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

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Οι δομές δεδομένων στοίβα και ουρά

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση

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

Υπολογιστικό Πρόβληµα

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

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

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

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

σας φύλλο τον αριθμό της ερώτησης ακολουθούμενη από το γράμμα Σ (Σωστή) ή το γράμμα Λ (Λάθος).

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσμία: 17/1/14, 22:00

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

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

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

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

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

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

Transcript:

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

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

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

Σύστημα: {p1, p2, R0,, R5} Παράδειγμα Τύπος Μεταβλητών: Ανάγνωσης/Εγγραφής Αλλαγή τιμής κατά την εγγραφή Επιστροφή τιμής κατά την ανάγνωση Παράδειγμα: ο p1 στέλνει την τιμή x στον p2 p1 p2 write(x) read() x R0 R1 R2 R3 R4 R5 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 3

Διατάξεις Μια διάταξη στο μοντέλο κοινόχρηστης μνήμης είναι ένα διάνυσμα της μορφής: C = { 0,..., n 1,r 0,...,r m 1 } σ i : η κατάσταση του επεξεργαστή p i Δεν περιλαμβάνει εισερχόμενα, εξερχόμενα μηνύματα όπως το μοντέλο μηνυμάτων r i : η τιμή της κοινόχρηστης μεταβλητής R i Αρχική Διάταξη Όλοι οι επεξεργαστές βρίσκονται στην αρχική τους κατάσταση Όλες οι μεταβλητές περιέχουν την αρχική τους τιμή ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 4

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

Τμήμα Εκτέλεσης Μια ακολουθία της μορφής Εκτελέσεις 0, 1, 1, 2, 2, 3,... όπου Δ κ διατάξεις και γ κ γεγονότα Νόμιμη Εκτέλεση είναι ένα τμήμα εκτέλεσης το οποίο Ξεκινά με την αρχική διάταξη Εκτελεί ένα άπειρο αριθμό υπολογιστικών βημάτων ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 6

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

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

Μεταβλητή Read/Modify/Write Η πράξη read/modify/write επιτρέπει στον επεξεργαστή να κάνει τα ακόλουθα βήματα ατομικά Διαβάζει την τιμή κάποιας κοινόχρηστης μεταβλητής Υπολογίζει μια νέα τιμή συναρτήση της τιμής που διάβασε Γράφει τη νέα τιμή στη κοινόχρηστη μεταβλητή Υποστηρίζει την ακόλουθη πράξη (ατομικά): rmw(v,f ), where f is any function temp := V! V := f(v)! return temp! ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 9

Μεταβλητή Test & Set Ειδική περίπτωση της read/modify/write όπου f(v) = 1. Διαβάζει την τιμή κάποιας κοινόχρηστης μεταβλητής Γράφει την τιμή 1 στη κοινόχρηστη μεταβλητή Υποστηρίζει δύο ατομικές πράξεις test&set(v): temp := V!!V := 1!!return temp reset(v): V := 0 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 10

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

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

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

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

Αλγόριθμος για μεταβλητή Test & Set Code for entry sec-on: wait until test&set(v) = 0! Code for exit sec-on: reset(v) ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 15

Ορθότητα Αλγορίθμου Αμοιβαίος Αποκλεισμός: Ισχύει Σκεφτείτε τι θα έπρεπε να ισχύει αν δυο επεξεργαστές βρίσκονταν στο κρίσιμο τμήμα Αποφυγή Αδιεξόδου: Ισχύει V=0 εαν και μόνο εαν κανένας επεξεργαστής δεν βρίσκεται μέσα στο κρίσιμο τμήμα Αποφυγή Παρατεταμένης Στέρησης: Δεν Ισχύει Κάποιος επεξεργαστής μπορεί να μην καταφέρει να μπει στο κρίσιμο τμήμα έστο κι αν περιμένει στο τμήμα εισόδου. ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 16

Αλγόριθμος για μεταβλητή RMW Διαισθητικά: Βάλε τους επεξεργαστές που θέλουν να μπουν στο κρίσιμο τμήμα σε μια κυκλική λίστα. Η κοινόχρηστη μεταβλητή έχει δύο πεδία Κορυφή (first): δείχνει τον αριθμό του επόμενου κόμβου που θα μπει στο ΚΤ Ουρά (last): δείχνει τον επόμενο διαθέσιμο αριθμό που δεν δεσμεύτηκε από κάποιο κόμβο ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 17

Διαισθητηκή Δομή Πεδία της κοινόχρηστης µεταβλητής. ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 18

Αλγόριθμος για μεταβλητή RMW Code for entry sec-on: // increment last to enqueue self! position := rmw(v,(v.first,v.last+1))! // wait until first equals this value! repeat! queue := rmw(v,v)! until (queue.first = position.last) Code for exit sec-on: // dequeue self! rmw(v,(v.first+1,v.last)) ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 19

Παράδειγμα Εκτέλεσης Ας υποθέσουμε ότι ο επεξεργαστής p1 θέλει να μπει στο ΚΤ Η κατάσταση της μεταβλητής: V.first = 1 V.last = 3 Εκτέλεση: position := rmw(v,(v.first,v.last+1))! posion.last = 4 V.first = 1 V.last = 4 0 1 2 3 4 5 0 1 2 3 4 5 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 20

Παράδειγμα Εκτέλεσης Η τοπική μεταβλητή queue αλλάζει ως εξής: queue := rmw(v,v) queue.first = 1 V.first = 1 V.last = 3 Τελειώνει ο πρώτος επεξεργαστής στη σειρά! posion.last = 4 Queue.first = 2 V.first = 2 V.last = 4 0 1 2 3 4 5 0 1 2 3 4 5 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 21

Παράδειγμα Εκτέλεσης Τελειώνει ο δεύτερος επεξεργαστής στη σειρά! posion.last = 4 queue.first = 3 V.first = 3 V.last = 4 Τελειώνει ο τρίτος επεξεργαστής στη σειρά! posion.last = 4 queue.first = 4 V.first = 4 V.last = 4 0 1 2 3 4 5 0 1 2 3 4 5 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 22

Παράδειγμα Εκτέλεσης Τώρα ισχύει: queue.first = position.last! O p1 μπαίνει στο ΚΤ Μόλις τελειώσει εκτελεί: rmw(v,(v.first+1,v.last))! V.first = 5 V.last = 4 0 1 2 3 4 5 ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 23

Ορθότητα Αλγορίθμου Αμοιβαίος Αποκλεισμός: Ισχύει Μόνο ένας επεξεργαστής μπαίνει στο κρίσιμο τμήμα Αποφυγή Αδιεξόδου: Ισχύει Πάντα κάποιος θα μπαίνει στο κρίσιμο τμήμα αφού η διαφορά του V.last και του V.first είναι το πολύ 1 και V.last V. First όταν δεν υπάρχει κανένας στο ΚΤ. Αποφυγή Παρατεταμένης Στέρησης: Ισχύει Ακολουθούμε σειρά τύπου FIFO ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 24

Πολυπλοκότητα Η μεταβλητή κρατά δύο πεδία [0...n- 1] Η μεταβλητή μπορεί να βρεθεί σε n 2 διαφορετικές τιμές Το μέγεθος της μεταβλητής είναι 2logn bits ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 25

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