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

Σχετικά έγγραφα
Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

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

The challenges of non-stable predicates

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

The Simply Typed Lambda Calculus

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

Homework 3 Solutions

EE512: Error Control Coding

Γιπλυμαηική Δπγαζία. «Ανθπυποκενηπικόρ ζσεδιαζμόρ γέθςπαρ πλοίος» Φοςζιάνηρ Αθανάζιορ. Δπιβλέπυν Καθηγηηήρ: Νηθφιανο Π. Βεληίθνο

C.S. 430 Assignment 6, Sample Solutions

2 Composition. Invertible Mappings

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education

Finite Field Problems: Solutions

Every set of first-order formulas is equivalent to an independent set

Section 8.3 Trigonometric Equations

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

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

상대론적고에너지중이온충돌에서 제트입자와관련된제동복사 박가영 인하대학교 윤진희교수님, 권민정교수님

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

Business English. Ενότητα # 9: Financial Planning. Ευαγγελία Κουτσογιάννη Τμήμα Διοίκησης Επιχειρήσεων

ST5224: Advanced Statistical Theory II

Δίκτυα Δακτυλίου. Token Ring - Polling

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

Section 1: Listening and responding. Presenter: Niki Farfara MGTAV VCE Seminar 7 August 2016

derivation of the Laplacian from rectangular to spherical coordinates

Προσομοίωση BP με το Bizagi Modeler

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

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

Section 7.6 Double and Half Angle Formulas

HY150a Φροντιστήριο 3 24/11/2017

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

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

TMA4115 Matematikk 3

Right Rear Door. Let's now finish the door hinge saga with the right rear door

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

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

Example Sheet 3 Solutions

Instruction Execution Times

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Απόκριση σε Μοναδιαία Ωστική Δύναμη (Unit Impulse) Απόκριση σε Δυνάμεις Αυθαίρετα Μεταβαλλόμενες με το Χρόνο. Απόστολος Σ.

ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: OSPF Cost

Επίλυση Προβλήματος σε Προγραμματιστικό Περιβάλλον από Παιδιά Προσχολικής Ηλικίας

Fourier Series. MATH 211, Calculus II. J. Robert Buchanan. Spring Department of Mathematics

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

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

4.6 Autoregressive Moving Average Model ARMA(1,1)

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11

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

Matrices and Determinants

Inverse trigonometric functions & General Solution of Trigonometric Equations

Section 9.2 Polar Equations and Graphs

Numerical Analysis FMN011

Locking to ensure serializability

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΒΑΛΕΝΤΙΝΑ ΠΑΠΑΔΟΠΟΥΛΟΥ Α.Μ.: 09/061. Υπεύθυνος Καθηγητής: Σάββας Μακρίδης

ΜΑΡΙΟΛΑΚΟΣ Η., ΦΟΥΝΤΟΥΛΗΣ Ι., ΣΠΥΡΙΔΩΝΟΣ Ε., ΑΝΔΡΕΑΔΑΚΗΣ Ε., ΚΑΠΟΥΡΑΝΗ, Ε.

Η ΨΥΧΙΑΤΡΙΚΗ - ΨΥΧΟΛΟΓΙΚΗ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗ ΣΤΗΝ ΠΟΙΝΙΚΗ ΔΙΚΗ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

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

Statistical Inference I Locally most powerful tests

ΕΘΝΙΚΗ ΣΧΟΛΗ ΗΜΟΣΙΑΣ ΙΟΙΚΗΣΗΣ

Galatia SIL Keyboard Information

Αδιέξοδα (Deadlocks)

ΚΕΦΑΛΑΙΟ 9. Ταυτόχρονος προγραμματισμός και νήματα. 9.1 Εισαγωγή

Partial Trace and Partial Transpose

Concrete Mathematics Exercises from 30 September 2016

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education

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

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

1) Formulation of the Problem as a Linear Programming Model

( y) Partial Differential Equations

7 Present PERFECT Simple. 8 Present PERFECT Continuous. 9 Past PERFECT Simple. 10 Past PERFECT Continuous. 11 Future PERFECT Simple

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

Assalamu `alaikum wr. wb.

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

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

On a four-dimensional hyperbolic manifold with finite volume

Διάρκεια μιας Ομολογίας (Duration) Ανοσοποίηση (Immunization)

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Test Data Management in Practice

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική»

Areas and Lengths in Polar Coordinates

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 6ο: Αδιέξοδα

ΠΑΡΑΜΕΤΡΟΙ ΕΠΗΡΕΑΣΜΟΥ ΤΗΣ ΑΝΑΓΝΩΣΗΣ- ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗΣ ΤΗΣ BRAILLE ΑΠΟ ΑΤΟΜΑ ΜΕ ΤΥΦΛΩΣΗ

6.3 Forecasting ARMA processes

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

Κατανοώντας και στηρίζοντας τα παιδιά που πενθούν στο σχολικό πλαίσιο

Αναερόβια Φυσική Κατάσταση

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

VBA ΣΤΟ WORD. 1. Συχνά, όταν ήθελα να δώσω ένα φυλλάδιο εργασίας με ασκήσεις στους μαθητές έκανα το εξής: Version ΗΜΙΤΕΛΗΣ!!!!

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΠΟΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία

EU-Profiler: User Profiles in the 2009 European Elections

Second Order Partial Differential Equations

ΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ ΣΤΗ ΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ. ιπλωµατική Εργασία. της ΘΕΟ ΟΣΟΠΟΥΛΟΥ ΕΛΕΝΗΣ ΜΣ:5411

Αρχεία και Βάσεις Δεδομένων

Transcript:

Προηγµένες Τεχνικές Προγραµµατισµού Ταυτόχρονος Προγραµµατισµός Αλγόριθµος του Dekker Πρόβληµα Αµοιβαίου Αποκλεισµού για δύο διεργασίες Algorithm of Dekker ιασφάλισε τον Αµοιβαίο Αποκλεισµό ιδάσκων: Κλεάνθης Θραµπουλίδης Dekker s Algorithm Αλγόριθµος Dekker - ψευδοκώδικας is the first known correct solution to the mutual exclusion problem in concurrent programming. The solution is attributed to Dutch mathematician Th. J. Dekker by Edsger W. Dijkstra in his manuscript on cooperating sequential processes. [1] allows two threads to share a single-use resource without conflict, using only shared memory for communication. [1] E.W. Dijkstra, Cooperating Sequential Processes, manuscript, 1965. Retrieved 13. May, 2009. Source: Wikipedia () while(true) () while(true) while() if( = = 2) while( = = 2); = 2; Σχέδιο ιάλεξης Πρόβληµα Αµοιβαίου Αποκλεισµού για δύο διεργασίες Το πρόβληµα του Αµοιβαίου Αποκλεισµού 4 λύσεις στο πρόβληµα του Αµοιβαίου Αποκλεισµού Αλγόριθµος του Dekker Συµπεράσµατα Nick serves the client requests that include at least one croissant. We assume that there is no client request including both croissant and cup of coffee. Helen has been assigned the task of performing the process required to serve the client requests that include at least one cup of coffee. 1

To πρόβληµα abstract descriptions of the processes executed by Helen and Nick Since the MWO is a resource that must be acquired for exclusive use by Helen or Nick, resource management is required to ensure the system s good operation. There is a need for a specific set of actions to ensure the exclusive use of the MWO. ιασφάλισε τον Αµοιβαίο Αποκλεισµό Croissant-order processing get the order from the client select croissant warm the croissant prepare the rest order deliver the order Coffee-order processing get the order from the client warm the water make the coffee prepare the rest order deliver the order Interleaving 1η προσπάθεια επίλυσης (χρήση Arbiter) In which level of granularity? Detail description of the activity warm <something> put the thing in the microwave oven set the timer start the microwave oven wait until the timer expires put the thing out δείχνει πια διεργασία είναι ή µπορεί να µπειστον Λύση Νο 1 - σενάριο Λύση Νο 1 - ψευδοκώδικας ώσε τον C ψευδοκώδικα int ; = 1; concurrent (); (); () while(true) while( = = 2); = 2; () while(true) while( = = 1); = 1; 2

Λύση 1 - Αποδεκτή; Λύση Νο 1 - Αποδεκτή; ικανοποιεί την απαίτηση του αµοιβαίου αποκλεισµού; είναι το σύστηµα βιώσιµο δηλαδή αποκλείεται να οδηγηθεί σε αδιέξοδο; Ικανοποιεί Αµοιβαίο Αποκλεισµό Αποκλείει αδιέξοδο Είναι αδύνατο οι δύο διεργασίες να είναι καθηλωµένες στους βρόχους while αλλά. Λύση Νο 1 Αξιολόγηση Θεώρηση ρυθµών δουλειάς...οι διεργασίες δεν έχουν χαλαρή σύνδεση Σενάριο 2: abnormal termination µιας διεργασίας Λύση Νο 1 Αξιολόγηση Μειονεκτήµατα οι διεργασίες δουλεύουν µε τον ίδιο ρυθµό σενάριο Η µπαίνει 100 φορές και η 10 abnormal termination της µιας διεργασίας οδηγεί σε αδιέξοδο το σύστηµα σενάριο η περιµένει την να εκτελέσει τον και να της παραχωρήσει το δικαίωµα εισόδου» «η τερµατίζει abnormal» 3

Λύση Νο 1 Busy waiting Solution 1 (Java pseudocode) έλεγχος prepareorder( ) while(commoncub. = = this.otherempl); this.usemwo(); //critical section commoncub. = this.otherempl; this.prepareremorder(); //remaining section 2η προσπάθεια επίλυσης Λύση Νο 2 3. χρήση 4. ενηµέρωση 2. ενηµέρωση = True : δείχνει πως η βρίσκεται στον = True : δείχνει πως η βρίσκεται στον Λύση Νο 2 - ψευδοκώδικας Λύση 2 - Αποδεκτή; int,; = = False; concurrent (), () Ικανοποιεί Αµοιβαίο Αποκλεισµό? () while(true) while(); () while(true) while(); ικανοποιεί την απαίτηση του αµοιβαίου αποκλεισµού; είναι το σύστηµα βιώσιµο δηλαδή αποκλείεται να οδηγηθεί σε αδιέξοδο; 4

Λύση Νο 2 Πιθανό σενάριο Solution 2 (Java pseudocode) Α/Α Ενέργεια 1 Έναρξη προγράµµατος FALSE FALSE 2 H ελέγχει την FALSE FALSE 3 H ελέγχει την FALSE FALSE 4 H κάνει set την TRUE FALSE 5 H κάνει set την TRUE TRUE 6 H εισέρχεται στον TRUE TRUE 7 H εισέρχεται στον TRUE TRUE prepareorder( ) while(this.otherempl.cub.cs); this.cub.cs = true; this.usemwo(); //critical section this.cub.cs = false; this.prepareremorder(); //remaining section 3η προσπάθεια επίλυσης Λύση Νο 3 - ψευδοκώδικας = True : δείχνει πως η βρίσκεται στον 3. χρήση 4. ενηµέρωση 1. ενηµέρωση 2. έλεγχος int,; = = False; concurrent (), () () while(true) while(); () while(true) while(); Λύση 3 - Αποδεκτή; Λύση Νο 3 Αµοιβαίος Αποκλεισµός ικανοποιεί την απαίτηση του αµοιβαίου αποκλεισµού; είναι το σύστηµα βιώσιµο δηλαδή αποκλείεται να οδηγηθεί σε αδιέξοδο; Για να ικανοποιεί την ιδιότητα του ΑΑ αρκεί να δείξουµε ότι (η p1 είναι στην crit1) -> (η p2 δε βρίσκεται στην crit2) 1. (όταν η p1 µπήκε στην crit1) τότε (η δεν ήταν True) 2. (η δεν είναι True) -> (η p2 δεν βρίσκεται στην crit2) 3. (1)&(2) -> όταν (η p1 µπήκε στην crit1) τότε (η p2 δεν βρισκόταν στην crit2) 4. (η p1 βρίσκεται στην crit1) -> (η είναι True) 5. (η είναι True) -> (η δεν εισέρχεται στην crit2) 6. (4)&(5) (η p1 βρίσκεται στην crit1) -> (η p2 δεν εισέρχεται στην crit2) 7. όση ώρα (η p1 βρίσκεται στην crit1), (η p2 δεν θα εισέλθει ποτέ στην crit2) (3)&(7) -> (η p1 είναι στην crit1) -> (η p2 δε βρίσκεται στην crit2) 5

Λύση Νο 3 Πιθανό σενάριο 4η προσπάθεια επίλυσης Α/ Α Ενέργεια 1 Έναρξη προγράµµατος FALSE FALSE 2 H κάνει set την TRUE FALSE 5. χρήση 4. ενηµέρωση 3. Υποχώρηση 1. ενηµέρωση 3 H κάνει set την TRUE TRUE 4 H ελέγχει την TRUE TRUE 5 H ελέγχει την TRUE TRUE 6 H ελέγχει την TRUE TRUE 7 H ελέγχει την TRUE TRUE = True : δείχνει πως η βρίσκεται στον 2. έλεγχος Λύση Νο 4 - ψευδοκώδικας Λύση 4 - Αποδεκτή; int,; = = False; concurrent (), () () while(true) while() /* µην κάνεις τίποτε για λίγο */ () while(true) while() /* µην κάνεις τίποτε για λίγο */ ικανοποιεί την απαίτηση του αµοιβαίου αποκλεισµού; Ναι.ίδιααπόδειξηµετηνλύσηΝο 3. είναι το σύστηµα βιώσιµο δηλαδή αποκλείεται να οδηγηθεί σε αδιέξοδο; Ναι Σενάριο υπερβολικού ιπποτισµού Α/Α Ενέργεια 1 Έναρξη προγράµµατος FALSE FALSE 2 H κάνει set την TRUE FALSE 3 H κάνει set την TRUE TRUE 4 H ελέγχει την TRUE TRUE 5 H ελέγχει την TRUE TRUE 6 H κάνει reset την FALSE TRUE 7 H κάνει reset την FALSE FALSE 8 H κάνει set την TRUE FALSE 9 H κάνει set την TRUE TRUE Λύση Νο 4 - Μειονέκτηµα Σενάριο υπερβολικού ιπποτισµού παρότι πολύ απίθανο οδηγεί σε απόρριψη της λύσης εν µπορούµε να δώσουµε εκ των προτέρων ένα όριο στον αριθµό των επαναλήψεων το σφάλµα είναι γνωστό σαν παραγκωνισµός συνοµωσία που όµως κάποια στιγµή θα τερµατιστεί Θέλουµε να είµαστε σε θέση να εγγυηθούµε για την συµπεριφορά του συστήµατος ακόµη και στην πιο δυσµενή περίπτωση If something can go wrong, it will go wrong. 6

Fast Predictable Rather than being fast (which is a relative term anyway), the most important property of a real-time system should be predictability; that is, its functional and timing behavior should be as deterministic as necessary to satisfy system specifications. Fast computing is helpful in meeting stringent timing specifications, but fast computing alone does not guarantee predictability. J. Stankovic Αλγόριθµος Dekker = 1 η πρέπει να επιµείνει και ελέγχει περιοδικά την = True : δείχνει πως η βρίσκεται στον 7 Συνδυασµός λύσεων 1 & 4 5 4 1 3 2 6 Αλγόριθµος Dekker - ψευδοκώδικας Dekker s Algor. (Java pseudocode) int ; int,; = = False; Turn = 1; concurrent (), () () while(true) while() if( = = 2) while( = = 2); = 2; () while(true) while() if( = = 1) while( = = 1); = 1; prepareorder( ) this.cub.cs = true; while(this.otherempl.cub.cs) if(commoncub. = = otherempl) this.cub.cs = False; while(commoncub. = = otherempl); this.cub.cs = True; this.usemwo(); //critical section commoncub. = otherempl; this.cub.cs = False; this.prepareremorder(); //remaining section Αλγόριθµος Dekker - Έλεγχος () while(true) while() if( = = 2) while( = = 2); = 2; Αµοιβαίος Αποκλεισµός ίδια απόδειξη µε την Νο 3 καθώς η δεν έχει καµία επίδραση στην απόφαση για είσοδο στον κρίσιµο τοµέα. Βιωσιµότητα είναι αρκετό να δείξουµε (λόγω συµµετρίας) ότι αν η εκτελέσει την = TRUE, δηλώνοντας την πρόθεση της να µπει στον κρίσιµο τοµέα, τελικά θα µπει Αλγόριθµος Dekker Απόδειξη βιωσιµότητας Crit_sec1 Turn = 2 = False rem_sec1 F = True Cs2 = = True () while(true) while() if( = = 1) while( = = 1); = 1; T = = 2 T = False Turn = = 2 F F T 7

The Dentist problem Αλγόριθµος Dekker Προβλήµατα includes one dentist and 12 weaklings. each weakling is very busy with a lot of activities. However, there is a need from time to time to visit the dentist. The dentist may serve only one weakling at a time. provide a solution to the dentist problem Σύνθετος δυσκολία δηµιουργίας λύσης για τον ΑΑ που είναι ένα από τα απλά προβλήµατα του ΤΠ Λύση ΑΑ για n διεργασίες; έχει µόνο Ακαδηµαϊκό ενδιαφέρον εν αποφεύγεται το busy waiting ώστε µια πρόταση για αποφυγή του busy waiting Συµπεράσµατα χρειάζονται πιο ισχυρές προγραµµατιστικές δοµές από τον διαιτητή µνήµης Εισάγονται νέα πρωτογενή στοιχεία αναστέλλουν την εκτέλεση των διεργασιών που µπλοκάρονται µε µόνη επιβάρυνση µια µικρή λίστα και λίγους υπολογισµούς διαχείρισης ουράς 8