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



Σχετικά έγγραφα
Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει 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. Κάθε διεργασία µοντελοποιείται ως

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

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

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

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

Γιατί υϖάρχει τέτοια καθολική κατάσταση;

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

The challenges of non-stable predicates

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

Section 8.3 Trigonometric Equations

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

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

Finite Field Problems: Solutions

2 Composition. Invertible Mappings

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

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

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

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

Advanced Subsidiary Unit 1: Understanding and Written Response

Fractional Colorings and Zykov Products of graphs

C.S. 430 Assignment 6, Sample Solutions

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ANSWERSHEET (TOPIC = DIFFERENTIAL CALCULUS) COLLECTION #2. h 0 h h 0 h h 0 ( ) g k = g 0 + g 1 + g g 2009 =?

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

Nowhere-zero flows Let be a digraph, Abelian group. A Γ-circulation in is a mapping : such that, where, and : tail in X, head in


Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

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

derivation of the Laplacian from rectangular to spherical coordinates

Εισαγωγή στο EV3 Μέρος 2

The Simply Typed Lambda Calculus

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Ενότητα 7 Ουρές Προτεραιότητας

Homework 3 Solutions

Paper Reference. Paper Reference(s) 1776/04 Edexcel GCSE Modern Greek Paper 4 Writing. Thursday 21 May 2009 Afternoon Time: 1 hour 15 minutes

Approximation of distance between locations on earth given by latitude and longitude

Bounding Nonsplitting Enumeration Degrees

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

6.3 Forecasting ARMA processes

Γραµµικός Προγραµµατισµός (ΓΠ)

Εισαγωγή στον Προγραμματισμό

Inverse trigonometric functions & General Solution of Trigonometric Equations

Ενότητα 7 Ουρές Προτεραιότητας

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

Math221: HW# 1 solutions

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

ΒΑΣΙΚΑ ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Καταχωρητής Read/Write Αποθηκεύει µια τιµή από κάποιο σύνολο και υποστηρίζει δύο λειτουργίες: read(r): επιστρέφει την τιµή

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

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

Example Sheet 3 Solutions

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

4.6 Autoregressive Moving Average Model ARMA(1,1)

EE512: Error Control Coding

Συστήματα Διαχείρισης Βάσεων Δεδομένων

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

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

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

Αδιέξοδα (Deadlocks)

Tridiagonal matrices. Gérard MEURANT. October, 2008

Modbus basic setup notes for IO-Link AL1xxx Master Block

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

PARTIAL NOTES for 6.1 Trigonometric Identities

Elements of Information Theory

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Επικοινωνία µεταξύ ιεργασιών και Σύνδροµες ιεργασίες

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

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

Αντισταθμιστική ανάλυση

Section 7.6 Double and Half Angle Formulas

Partial Differential Equations in Biology The boundary element method. March 26, 2013

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 10η: Basics of Game Theory part 2 Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

Problem Set 3: Solutions

Exercises 10. Find a fundamental matrix of the given system of equations. Also find the fundamental matrix Φ(t) satisfying Φ(0) = I. 1.

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

Συγχρονισμός Μέρος Α : Κρίσιμο τμήμα και κλειδώματα

Ταυτόχρονος. Algorithm of Dekker. Dekker s Algorithm. Σχέδιο ιάλεξης. Πρόβληµα Αµοιβαίου Αποκλεισµού για δύο διεργασίες

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

Models for Probabilistic Programs with an Adversary

Other Test Constructions: Likelihood Ratio & Bayes Tests

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

2.3 Επικοινωνία Διεργασιών

Lecture 2. Soundness and completeness of propositional logic

Second Order RLC Filters

9.09. # 1. Area inside the oval limaçon r = cos θ. To graph, start with θ = 0 so r = 6. Compute dr

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

SOME PROPERTIES OF FUZZY REAL NUMBERS

Matrices and Determinants

Statistical Inference I Locally most powerful tests

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

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

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

Transcript:

Το Πρόβληµα του Αµοιβαίου Αϖοκλεισµού Τµήµατα Κώδικα Ο χρήστης που την τρέχουσα χρονική στιγµή προσβαίνει τον πόρο βρίσκεται στο κρίσιµο τµήµα του. Χρήστες που την τρέχουσα χρονική στιγµή δεν ενδιαφέρονται να χρησιµοποιήσουν τον πόρο βρίσκονται στο µη-κρίσιµο τµήµα τους. Χρήστες που ενδιαφέρονται να χρησιµοποιήσουν τον πόρο και προσπαθούν να αποκτήσουν πρόσβαση σε αυτόν βρίσκονται στο τµήµα εισόδου τους. Τέλος, χρήστες που µόλις τελείωσαν τη χρήση του πόρου βρίσκονται στο τµήµα εξόδου τους (εκτελούν κατάλληλες ενέργειες για να επιτρέψουν σε άλλες διεργασίες να χρησιµοποιήσουν τον πόρο). Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1

Αλγόριθµοι ϖου εϖιλύουν το ϖρόβληµα του Αµοιβαίου Αϖοκλεισµού Αµοιβαίος Αϖοκλεισµός Σε κάθε καθολική κατάσταση οποιαδήποτε εκτέλεσης, το πολύ µια διεργασία βρίσκεται στο κρίσιµο τµήµα της. Αϖοφυγή Αδιεξόδου Αν σε κάποια καθολική κατάσταση (οποιασδήποτε εκτέλεσης ενός αλγορίθµου που επιλύει το πρόβληµα) µια διεργασία βρίσκεται στο τµήµα εισόδου της τότε υπάρχει καθολική κατάσταση σε επόµενο σηµείο της εκτέλεσης στην οποία κάποια διεργασία (η ίδια ή άλλη) βρίσκεται στο κρίσιµο τµήµα της. Αϖοφυγή Παρατεταµένης Στέρησης Αν σε κάποια καθολική κατάσταση (οποιασδήποτε εκτέλεσης) µια διεργασία βρίσκεται στο τµήµα εισόδου της τότε υπάρχει καθολική κατάσταση σε επόµενο σηµείο της εκτέλεσης στην οποία η ίδια αυτή διεργασία βρίσκεται στο κρίσιµο τµήµα της. Ποια ιδιότητα αϖό τις δύο τελευταίες είναι ϖιο ισχυρή; Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 2

Αλγόριθµοι ϖου εϖιλύουν το ϖρόβληµα του Αµοιβαίου Αϖοκλεισµού Υϖοθέσεις Οι µεταβλητές (διαµοιραζόµενες ή µη) που προσπελαύνονται στο τµήµα εισόδου ή στο τµήµα εξόδου δεν προσπελαύνονται σε κανένα από τα άλλα δύο τµήµατα. Κανένας επεξεργαστής δεν µένει το κρίσιµο τµήµα για πάντα. Εϖιτρεϖτές Εκτελέσεις Το τµήµα εξόδου πρέπει να αποτελείται από πεπερασµένο αριθµό βηµάτων. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 3

Mutual Exclusion using atomic registers: Basic Topics Algorithms for Two Processes Tournament Algorithms Starvation-free Algorithms Tight Space bounds A Fast Mutual Exclusion Algorithms Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 4

Properties & complexity Time complexity Fast Adaptive Fairness FIFO,... Fault-tolerance Local spinning Space complexity Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 5

Βασικοί Ορισµοί r-bounded-waiting: A waiting process will be able to enter its critical section before each of the other processes is able to enter its critical section r+1 times. Bounded Waiting: There exists a positive integer r for which the algorithm is r-bounded waiting. That is, if a given process is in its entry code, then there is a bound on the number of times any other process is able to enter its critical section before the given process does so. Linear Waiting: 1-bounded waiting First-In-First-Out: the term is used for 0-bounded waiting -> FIFO guarantees that no beginning process can pass an already waiting process. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 6

Αµοιβαίος Αϖοκλεισµός χρησιµοϖοιώντας Read-Write Καταχωρητές Κύρια Αϖοτελέσµατα Αλγόριθµοι 1. Ένας αλγόριθµος αµοιβαίου αποκλεισµού για n διεργασίες που εγγυάται αποφυγή παρατεταµένης στέρησης και χρησιµοποιεί Ο(n) RW καταχωρητές µη-πεπερασµένης χωρητικότητας. 2. Ένας αλγόριθµος αµοιβαίου αποκλεισµού για n διεργασίες που εγγυάται αποφυγή παρατεταµένης στέρησης και χρησιµοποιεί Ο(n) RW καταχωρητές πεπερασµένης χωρητικότητας. Αρνητικά Αϖοτελέσµατα 1. Κάθε αλγόριθµος αµοιβαίου αποκλεισµού χρειάζεται n RW καταχωρητές ανεξάρτητα από το µέγεθος τους. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 7

Section 2.1.1 Peterson s algorithm Thread 0 1. flag[0] = true 2. turn = 1 3. while (flag[1] and turn == 1) 4. {noop} 5. critical section 6. flag[0] = false Thread 1 1. flag[1] = true 2. turn = 0 3. while (flag[0] and turn == 0) 4. {noop} 5. critical section 6. flag[1] = false 0 1 turn flag false false 0/1 Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 8

A variant of Peterson s algorithm Is it correct? Thread 0 turn = 1 flag[0] = true while (flag[1] and turn = 1) {noop} critical section flag[0] = false Thread 1 turn = 0 flag[1] = true while (flag[0] and turn = 0) {noop} critical section flag[1] = false 0 1 turn flag false true false true 0/1 1 Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 9

Ένας Αλγόριθµος Αµοιβαίου Αποκλεισµού για 2 ιεργασίες που χρησιµοποιεί πεπερασµένης χωρητικότητας καταχωρητές Μη-συµµετρική έκδοση want[0]: εγγράφεται από τη διεργασία 0 και διαβάζεται από την 1. Αρχική τιµή 0, τίθεται στην τιµή 1 αν η 0 θέλει να εισέλθει στο κρίσιµο τµήµα της want[1]: συµµετρική της want[0] Κώδικας για την p 0 : Τµήµα Εισόδου: want[0] = 1; wait until (want[1] == 0); <κρίσιµο τµήµα>; Τµήµα Εξόδου: want[0] = 0; <µη-κρίσιµο τµήµα>; Κώδικας για την p 1 : Τµήµα Εισόδου: 1: want[1] = 0; wait until (want[0] == 0); want[1] = 1; if (want[0] == 1) goto line 1; <κρίσιµο τµήµα>; Τµήµα Εξόδου: want[1] = 0; <µη-κρίσιµο τµήµα>; Ο αλγόριθµος επιτυγχάνει αµοιβαίο αποκλεισµό και αποφυγή αδιεξόδου! Ο αλγόριθµος είναι µησυµµετρικός: η p 1 εισέρχεται στο κρίσιµο τµήµα της µόνο αν η p 0 δεν ενδιαφέρεται να εισέλθει! Ένας Αλγόριθµος Αµοιβαίου Αποκλεισµού για 2 Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 10

ιεργασίες που χρησιµοποιεί πεπερασµένης χωρητικότητας καταχωρητές Συµµετρική Έκδοση Κώδικας για τη διεργασία p i : Τµήµα Εισόδου: 1: want[i] = 0; 2: wait until ((want[1-i] == 0) OR (priority == i)); 3: want[i] = 1; 4: if (priority == 1-i) then { 5: if (want[1-i] == 1) then goto line 1; } 6: else wait until (want[1-i] == 0); <κρίσιµο τµήµα>; Τµήµα Εξόδου: 7: priority = 1-i; 8: want[i] = 0; <µη-κρίσιµο τµήµα>; Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 11

Ένας Αλγόριθµος Αµοιβαίου Αποκλεισµού για 2 ιεργασίες που χρησιµοποιεί πεπερασµένης χωρητικότητας καταχωρητές Συµµετρική Έκδοση Θεώρηµα Ο αλγόριθµος επιτυγχάνει αµοιβαίο αποκλεισµό. Απόδειξη (sketch): Γιατί ισχύει αυτό; Ας υποθέσουµε, δια της µεθόδου της εις άτοπο απαγωγής, ότι και οι δύο διεργασίες βρίσκονται στο κρίσιµο τµήµα τους ταυτόχρονα want[0] = want[1] = 1. Ας υποθέσουµε, wlog, ότι η τελευταία εγγραφή της p 0 στην want[0] έπεται της τελευταίας εγγραφής της p 1 στο want[1]. ιακρίνουµε περιπτώσεις (case analysis) και σε κάθε περίπτωση καταλήγουµε σε άτοπο. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 12

Ένας Αλγόριθµος Αµοιβαίου Αποκλεισµού για 2 ιεργασίες που χρησιµοποιεί πεπερασµένης χωρητικότητας καταχωρητές Συµµετρική Έκδοση Θεώρηµα Ο αλγόριθµος εγγυάται αποφυγή αδιεξόδου. Απόδειξη (sketch) Ας υποθέσουµε ότι και κάποια/ες διεργασίες εκτελούν το τµήµα εισόδου τους, αλλά καµιά δεν εισέρχεται στο κρίσιµο τµήµα. Περίπτωση 1: έστω ότι οι δύο διεργασίες είναι για πάντα στο τµήµα εισόδου. Έστω, wlog, ότι priority == 0. Περίπτωση 2: µόνο µια από τις διεργασίες είναι στο τµήµα εισόδου. Αν κάποια διεργασία βρίσκεται στο κρίσιµο τµήµα δεν µπορεί να παραµείνει εκεί για πάντα. Θεώρηµα Ο αλγόριθµος εγγυάται αποφυγή παρατεταµένης στέρησης. Απόδειξη (sketch) Ας υποθέσουµε ότι κάποια διεργασία π.χ., η 0, υφίσταται παρατεταµένη στέρηση. Περίπτωση 1: η διεργασία 1 εκτελεί την εντολή 7 κάποια στιγµή αργότερα. Από τότε και µετά ισχύει ότι priority == 0. Περίπτωση 2: η διεργασία 1 δεν εκτελεί την εντολή 7. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 13

Solutions for Many Processes How can we use a two-process algorithm to construct an algorithm for many processes? Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 14

Section 2.2 Tournament Algorithms 1 2 3 4 5 6 7 8 Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 15

Ο Αλγόριθµος Tournament για n διεργασίες Οι διεργασίες συναγωνίζονται σε ζευγάρια, χρησιµοποιώντας το συµµετρικό αλγόριθµο για 2 διεργασίες. Οι διεργασίες σχηµατίζουν ένα δένδρο tournament (δηλαδή ένα πλήρες, δυαδικό δένδρο µε n φύλλα, ένα για κάθε διεργασία). Κάθε διεργασία ξεκινά από κάποιο συγκεκριµένο φύλλο (εκείνο που της αναλογεί) του δένδρου. Σε κάθε επίπεδο του δένδρου, δύο διεργασίες συναγωνίζονται σε κάθε κόµβο. Μόνο οι νικητές συνεχίζουν στο επόµενο επίπεδο. Ο νικητής στον κόµβο ρίζα εισέρχεται στο κρίσιµο τµήµα του. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 16

Ο Αλγόριθµος Tournament για n διεργασίες procedure Node(v: integer, side: 0..1) { } 1: want v [side] = 0; 2: wait until ((want v [1-side] == 0) OR (priority v == side)); 3: want v [side] = 1; 4: if (priority v == 1-side) then { 5: if (want v [1-side] == 1) then goto line 1; } 6: else wait until (want v [1-side] == 0); 8: if (v == 1) then 9: <κρίσιµο τµήµα>; 10: else Node(\lfloor v/2 \rfloor, v mod 2) 11: priority v = 1-side; 12: want v [side] = 0; Η ρίζα αριθµείται µε το 1. Τ αριστερό παιδί ενός κόµβου µε αριθµό v αριθµείται µε τον αριθµό 2v και το δεξιό παιδί µε τον 2v+1 wantv[0], wantv[1], priorityv: µεταβλητές που έχουν συσχετισθεί µε τον κόµβο µε αριθµό v. Ο κόµβος i ξεκινά εκτελώντας την Node(2k+\lfloor i/2 \lceil, i mod 2), όπου k = \ceil{logn} -1. Ο αµοιβαίος αποκλεισµός εξασφαλίζεται από το γεγονός ότι ο συµµετρικός αλγόριθµος για 2 διεργασίες τον εγγυάται. Το ίδιο ισχύει και για την ιδιότητα αποφυγής παρατεταµένης στέρησης. Χωρική Πολυπλοκότητα: 3n καταχωρητές Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 17

Starvation-free Algorithms 4.1 Basic Definitions (i.e., FIFO) 4.2 The Bakery Algorithm 4.3 The Black-White Bakery Algorithm Algorithm Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 18

Ο Aλγόριθµος Bakery for each i, 0 i n-1: Choosing[i]: έχει τιµή TRUE όσο η p i προσπαθεί να επιλέξει αριθµό Number[i]: ο αριθµός (εισιτήριο) που επιλέγεται από την p i Κώδικας για την p i, 0 i n-1 Αρχικά, Number[i] = 0, και Choosing[i] = FALSE, για κάθε i, 0 i n-1 Τµήµα Εισόδου: Choosing[i] = TRUE; Number[i] = max{number[0],, Number[n-1]}+1; Choosing[i] = FALSE; for j = 0 to n-1, j i, do wait until Choosing[j] == FALSE; wait until ((Number[j] == 0) OR ((Number[j], j) > (Number[i], i))); <κρίσιµο τµήµα>; Τµήµα Εξόδου: Number[i] = 0; <µη-κρίσιµο τµήµα>; Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 19

Ο Aλγόριθµος Bakery Λήµµα Σε κάθε καθολική κατάσταση C οποιασδήποτε εκτέλεσης a του αλγορίθµου, αν η pi βρίσκεται στο κρίσιµο τµήµα της και για κάθε k i, Number[k] 0, τότε (Number[k],k) > (Number[i],i). Απόδειξη (σύντοµη περιγραφή) Number[i] > 0 η p i έχει τελειώσει την εκτέλεση της for Περίπτωση 1: η p i βλέπει Number[k] == 0 Περίπτωση 2: η p i βλέπει (Number[k],k) > (Number[i],i) Θεώρηµα Ο αλγόριθµος Bakery παρέχει αµοιβαίο αποκλεισµό. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 20

Ο Aλγόριθµος Bakery Αποφυγή Παρατεταµένης Στέρησης Θεώρηµα: Ο αλγόριθµος Bakery επιτυγχάνει αποφυγή από παρατεταµένη στέρηση. Απόδειξη (σύντοµη περιγραφή): Ας υποθέσουµε ότι υπάρχει τουλάχιστον µια διεργασία που υφίσταται παρατεταµένη στέρηση. Όλες οι διεργασίες που επιθυµούν να εισέλθουν στο κρίσιµο τµήµα τους θα τελειώσουν την επιλογή αριθµού. Έστω ότι p j είναι διεργασία µε το µικρότερο ζεύγος (number[j],j) που υφίσταται παρατεταµένη στέρηση. Αν οποιαδήποτε διεργασία p k εισέλθει στο κρίσιµο τµήµα της µετά την j, τότε Number[k] > Number[j]. Οποιαδήποτε διεργασία p k µε Number[k] < Number[j] θα εισέλθει στο κρίσιµο τµήµα της και θα εξέλθει αυτού. Χωρική Πολυπλοκότητα Ο αριθµός των διαµοιραζόµενων καταχωρητών είναι 2n. Οι n µεταβλητές Choosing είναι δυαδικές, ενώ οι Number αποθηκεύουν µη-πεπερασµένο αριθµό τιµών. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 21

Properties of the Bakery Algorithm Satisfies mutex & FIFO. The size of number[i] is unbounded. Safe registers: reads which are concurrent with writes may return arbitrary value. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 22

Properties of the Bakery Algorithm Satisfies mutex & FIFO. The size of number[i] is unbounded. Safe registers: reads which are concurrent with writes may return arbitrary value. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 23

The Black-White Bakery Algorithm code of process i, i {1,..., n} 1. choosing[i] = true 2. mycolor[i] = color 3. number[i] = 1 + max{number[j] (1 j n) (mycolor[j] = mycolor[i])} 4. choosing[i] = false 5. for j = 0 to n do 6. await choosing[j] = false 7. if mycolor[j] = mycolor[i] 8. then await (number[j] = 0) (number[j],j) (number[i],i) (mycolor[j] mycolor[i]) 9. else await (number[j] = 0) (mycolor[i] color) (mycolor[j] = mycolor[i]) fi od 10. critical section 11. if mycolor[i] = black then color = white else color = black fi 12. number[i] = 0 Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 24

Tight space bounds for mutual exclusion using atomic registers A lower bound (Section 2.5.1) An Upper Bound (Section 2.5.2) Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 25

Κάτω Φράγµα στον Αριθµό των Read/Write Καταχωρητών Όλοι οι αλγόριθµοι που επιλύουν το πρόβληµα του αµοιβαίου αποκλεισµού χρησιµοποιώντας µόνο read/write καταχωρητές απαιτούν n τέτοιους καταχωρητές. Αυτό δεν συµβαίνει κατά τύχη!!! Μπορεί να αποδειχθεί ότι το πρόβληµα δεν επιλύεται µε λιγότερους από n καταχωρητές. Αυτό ισχύει ακόµη και αν: 1. απαιτείται να ισχύουν µόνο οι ιδιότητες του αµοιβαίου αποκλεισµού και της αποφυγής αδιεξόδου 2. οι καταχωρητές έχουν µη-πεπερασµένο µέγεθος. Χρήσιµοι Ορισµοί Μια καθολική κατάσταση λέγεται ανενεργή αν όλες οι διεργασίες βρίσκονται στη µηκρίσιµο τµήµα τους. Λέµε ότι µια διεργασία j καλύπτει µια µεταβλητή x σε µια καθολική κατάσταση C αν στο πρώτο βήµα που θα εκτελέσει η j µετά τη C θα γράψει στη µεταβλητή x. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 26

Κάτω Φράγµα στον Αριθµό των Read/Write Καταχωρητών Χρήσιµοι Ορισµοί Για κάθε k, 0 k n, µια καθολική κατάσταση είναι k-προσβάσιµη από κάποια άλλη καθολική κατάσταση C αν υπάρχει τµήµα εκτέλεσης που να ξεκινά από τη C και να καταλήγει στη C το οποίο περιλαµβάνει βήµατα µόνο των διεργασιών p 0,, p k-1. Ένα τµήµα εκτέλεσης a είναι p-only αν µόνο η διεργασία p εκτελεί βήµατα στο a. Το a είναι S-only (όπου S είναι ένα σύνολο διεργασιών) αν µόνο οι διεργασίες που ανήκουν στο S εκτελούν βήµατα στο a. Το χρονοδιάγραµµα µιας εκτέλεσης a είναι η ακολουθία από δείκτες διεργασιών που εκτελούν βήµατα στην a (µε τη σειρά που τα βήµατα αυτά συναντώνται στην a). Ένα χρονοδιάγραµµα καθορίζει µια ακολουθία γεγονότων. Μια καθολική κατάσταση C και ένα χρονοδιάγραµµα σ καθορίζουν µε µοναδικό τρόπο ένα τµήµα εκτέλεσης το οποίο συµβολίζουµε µε exec(c,σ). Συµβολίζουµε µε mem(c) = (r 0,, r m-1 ): διάνυσµα τιµών των καταχωρητών στη C Μια καθολική κατάσταση C είναι παρόµοια (similar ή indistinguishable) µε µια άλλη καθολική κατάσταση C ως προς κάποιο σύνολο διεργασιών S αν κάθε διεργασία του S είναι στην ίδια κατάσταση στη C και τη C και mem(c) = mem(c ). Το γεγονός αυτό το συµβολίσουµε C S C. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 27

Κάτω Φράγµα στον Αριθµό των Read/Write Καταχωρητών Χρήσιµοι Ορισµοί Προφανείς Ισχυρισµοί Μια διεργασία που εκτελείται µόνη ξεκινώντας από µια ανενεργή καθολική κατάσταση εισέρχεται στο κρίσιµο τµήµα της. Μια διεργασία που εκτελείται µόνη ξεκινώντας από µια καθολική κατάσταση που είναι παρόµοια µιας ανενεργής εισέρχεται στο κρίσιµο τµήµα της. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 28

Κάτω Φράγµα στον Αριθµό των Read/Write Καταχωρητών Λήµµα 1: Έστω µια καθολική κατάσταση C που είναι παρόµοια µιας ανενεργής καθολικής κατάστασης για κάποια διεργασία j. Έστω ότι a 1 είναι ένα j-only τµήµα εκτέλεσης που ξεκινά από τη C στο οποίο η j εισέρχεται στο κρίσιµο τµήµα της. Τότε, στο a 1, η j πρέπει να εκτελέσει τουλάχιστον µια write εντολή σε κάποιο καταχωρητή. Απόδειξη: C : η τελική καθολική κατάσταση του a 1. Τότε: αν C = (q 0,, q j,, q n-1, mem(c)) C = (q 0,, q j,, q n-1, mem(c)) Αν mem(c) = mem(c ) C k C, k j. Υπάρχει ένα τµήµα εκτέλεσης a 2 (µε χρονοδιάγραµµα s 2 ) που ξεκινά από τη C στο οποίο η διεργασία k εισέρχεται στο κρίσιµο τµήµα της. Ωστόσο, C k C. C : η τελική καθολική κατάσταση της εκτέλεσης a 1 a 2. και ο p j και ο p k είναι στο κρίσιµο τµήµα στη C. Άτοπο!!! Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 29

Κάτω Φράγµα στον Αριθµό των Read/Write Καταχωρητών Single-Writer Read/Write Καταχωρητές Θεώρηµα Έστω ότι ο Α είναι αλγόριθµος που επιλύει το πρόβληµα του αµοιβαίου αποκλεισµού για n 2 διεργασίες, χρησιµοποιώντας µόνο single-writer/multe-reader καταχωρητές ανάγνωσης/εγγραφής. Τότε, ο Α χρησιµοποιεί τουλάχιστον n τέτοιους καταχωρητές. Γενικευµένο Λήµµα (Λήµµα 2) Έστω µια καθολική κατάσταση C που είναι παρόµοια µιας ανενεργής καθολικής κατάστασης για κάποια διεργασία j. Έστω ότι a 1 είναι ένα j-only τµήµα εκτέλεσης που ξεκινά από τη C στο οποίο η j εισέρχεται στο κρίσιµο τµήµα της. Τότε, στο a 1, η j πρέπει να εκτελέσει τουλάχιστον µια write εντολή σε κάποιο καταχωρητή που δεν καλύπτεται από καµία (άλλη) διεργασία στη C. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 30

Κάτω όριο: 2 διεργασίες και 1 MW καταχωρητής Θεώρηµα 1 εν υπάρχει αλγόριθµος που να επιλύει το πρόβληµα του αµοιβαίου αποκλεισµού για δύο διεργασίες χρησιµοποιώντας µόνο έναν διαµοιραζόµενο RW καταχωρητή. Απόδειξη Με εις άτοπο απαγωγή. Α: αλγόριθµος x: ο διαµοιραζόµενος καταχωρητής που χρησιµοποιεί C 0 : αρχική κατάσταση Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 31

Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 32

Κάτω όριο: 3 διεργασίες και 2 MW καταχωρητές Θεώρηµα 2: εν υπάρχει αλγόριθµος που να επιλύει το πρόβληµα του αµοιβαίου αποκλεισµού για τρεις διεργασίες χρησιµοποιώντας µόνο δύο διαµοιραζόµενες RW καταχωρητές. Απόδειξη: Με εις άτοπο απαγωγή. Α: αλγόριθµος x,y: διαµοιραζόµενοι καταχωρητές Στρατηγική 1. ηµιουργούµε σενάριο στο οποίο οι διεργασίες p 0 και p 1 εκτελούνται µέχρι που η κάθε µια καλύπτει έναν διαφορετικό καταχωρητή και η καθολική κατάσταση C που προκύπτει είναι παρόµοια µε µια προσβάσιµη ανενεργή καθολική κατάσταση για την p 2. Στη C και οι δύο καταχωρητές x και y καλύπτονται. 2. Επιτρέπουµε στη p 2 να τρέξει µόνη από τη C µέχρι να εισέλθει στο κρίσιµο τµήµα. 3. Βάζουµε τις p 0 και p 1 να κάνουν από ένα βήµα ώστε να πανωγράψουν τους καταχωρητές x και y. Αυτό καταστρέφει κάθε ίχνος της εκτέλεσης της p 2. 4. Επιτρέπουµε στις p 0 και p 1 να συνεχίσουν να κάνουν βήµατα µέχρι κάποια από αυτές να εισέλθει στο κρίσιµο τµήµα. 5. Τότε, δύο διεργασίες βρίσκονται ταυτόχρονα στο κρίσιµο τµήµα. Άτοπο!!!! Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 33

Κάτω όριο: 3 διεργασίες και 2 MW καταχωρητές Απόδειξη (συνέχεια): Πως µπορούµε να εξαναγκάσουµε τις διεργασίες p 0 και p 1 να καλύπτουν τους καταχωρητές x και y ενώ η διεργασία p 2 νοµίζει ότι βρίσκονται στο µη-κρίσιµο τµήµα τους? Απάντηση Σε 2 από τις 3 καθολικές καταστάσεις S 1, S 2, S 3, η p 0 καλύπτει τον ίδιο καταχωρητή, π.χ., τον x. S 1 = C 0, S 2 και S 3 : ανενεργές καταστάσεις Έστω ότι C 1 = S 2, C 1 = S 2, C 2 = S 3, C 2 = S 3. Αν εκτελέσουµε την p 1 µόνη ξεκινώντας από την S 2 θα εισέλθει στο κρίσιµο τµήµα αφού S 2 1 S 2. Στην εκτέλεση αυτή η p 1 γράφει στον y. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 34

Κάτω όριο: 3 διεργασίες και 2 MW καταχωρητές Από την C η p 2 µπορεί να εκτελεστεί µόνη µέχρι να εισέλθει στο κρίσιµο τµήµα. Τότε, οι p 0 και p 1 εκτελούν ένα βήµα η κάθε µια και όλα τα ίχνη της εκτέλεσης της p 2 χάνονται. Οι p 0, p 1 στη συνέχεια συνεχίζουν µέχρι µια από τις δυο να εισέλθει στο κρίσιµο τµήµα. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 35

Κάτω όριο: Γενική Περίϖτωση Φυσική επέκταση των αποδείξεων των δύο ειδικών περιπτώσεων που µελετήθηκαν παραπάνω. Θεώρηµα 3: εν υπάρχει αλγόριθµος που να επιλύει το πρόβληµα του αµοιβαίου αποκλεισµού για n 2 διεργασίες χρησιµοποιώντας n-1 ή λιγότερους διαµοιραζόµενες RW καταχωρητές. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 36

Tight Space Bounds Section 2.5.2 An Upper Bound Theorem: There is a deadlock-free mutual exclusion algorithm for n processes that uses n shared bits. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 37

The One-Bit Algorithm code of process i, i {1,..., n} 1. repeat 2. b[i] = true; j = 1; 3. while (b[i] = true) and (j < i) do 4. if b[j] = true then b[i] = false; await b[j] =false fi 5. j = j+1 od 6. until b[i] = true 7. for j = i+1 to n do await b[j] = false od 8. critical section 9. b[i] = false 1 2 3 4 n b false fals e false false fals e fals e bit s Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 38

Properties of the One-Bit Algorithm Satisfies mutual exclusion and deadlock-freedom Starvation is possible It is not fast It is not symmetric It uses only n shared bits and hence it is space optimal Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 39

Ένας γρήγορος αλγόριθµος για αµοιβαίο αϖοκλεισµό Ανιχνευτής Συµφόρησης Αρχικά, door = open, race = -1; race = id; if (door == closed) then return lose; else { door = closed; if (race == id) then return win; else return lose; } Θεώρηµα Σε κάθε επιτρεπτή εκτέλεση του αλγορίθµου: 1. Το πολύ µια διεργασία επιστρέφει win από τον ανιχνευτή συµφόρησης. 2. Αν µια διεργασία p i εκτελέσει τον ανιχνευτή συµφόρησης µόνη της, δηλαδή καµιά άλλη διεργασία δεν ξεκινά την εκτέλεση του ανιχνευτή συµφόρησης πριν η p i τερµατίσει τη δική της εκτέλεση, τότε η p i επιστρέφει win. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 40

Section 2.3 Fast Mutual exclusion Algorithm Mutual exclusion and deadlock-freedom Starvation of individual processes is possible fast access in the absence of contention, only 7 accesses to shared memory are needed With contention Even if only 2 processes contend, the winner may need to check all the 0(n) shared registers System response time is of order n time units n+2 shared registers are used Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 41

Splitter At most n-1 can move right At most n-1 can move down At most 1 can win In solo run 1 win win n 1 n-1 right n-1 down Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 42

The code of the splitter x = i if y = 1 then go right fi y = 1 if x i then go down fi win x win n 1 n-1 n-1 right y 0 down Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 43

Fast Mutual exclusion Algorithm code of process i, i {1,..., n} 1 2 n x y 0 b fals e fals e fals e false 1. start: b[i] = true 2. x = i 3. if y 0 then b[i] = false 4. await y = 0 5. goto start fi 6. y = i 7. if x i then b[i] = false 8. for j = 1 to n do await b[j] = false od 9. if y i then await y = 0 10. goto start fi fi 11. critical section 12. y = 0 13. b[i] = false Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 44

Schematic for the fast algorithm Indicate contending b[i] := true Contention? y = 0? no Barrier turn := i yes Wait until CS is released The last to cross the barrier! Contention? x i? no critical section exit code yes yes Continue only after it is guaranteed that no one can cross the barrier Last to cross the barrier? no y = i? Wait until CS is released Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 45