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

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

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

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 7

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού

Κεφάλαιο 3. Διδακτικοί Στόχοι

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

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

Α1. Να χαρακτηρίσετε καθεμία από τις παρακάτω προτάσεις με τη λέξη Σωστή ή με τη λέξη Λάθος.

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

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

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

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο

Λιβανός Γιώργος Εξάμηνο 2017Β

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΛΥΚΕΙΟΥ-ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 09/09/2012

Α.Ε.Π.Π. Προετοιμασία Γ Λυκείου

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

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

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Το μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

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

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

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

Α. Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές (Σ) η λανθασμένες (Λ).

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε:

Λειτουργικά συστήματα πραγματικού χρόνου

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων καταστάσεων (2 ο επαναληπτικό μάθημα)

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

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. i. Η συνθήκη α > β ή α <= β α) είναι πάντα Αληθής β) είναι πάντα Ψευδής γ) δεν υπολογίζεται δ) τίποτα από τα προηγούμενα

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Προγραμματιστικό Περιβάλλον

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Μάθημα 8 ο Η εντολή ανδιαφορετικά

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

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

Κεφάλαιο 3: Λειτουργικά Συστήματα

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ροµολόγηση Επεξεργαστή

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

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

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος

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

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Η προβληματική κατάσταση Χρήστος Πανούτσος

β. Ποιοι λόγοι θα μας οδηγούσαν στο να αναθέσουμε την επίλυση προβλημάτων στον υπολογιστή; (μονάδες 4) (Μονάδες 6)

ΘΕΜΑ Α. Α1. Να γράψετε στο. 2. Τα του. τις. αριθμητικές. πρώτες. β. Να. Σελίδα 1 από 5. 2) χ 2. χ Τ_Ρ(α) ΓΡΑΨΕ. ΓΡΑΨΕ χ χ χ+2

Κεφάλαιο 3: Λειτουργικά Συστήµατα

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΣΤΗ CTL/LTL

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα

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

Σελίδα 1 από 7 ΔΙΑΓΩΝΙΣΜΑ ΕΚΠ. ΕΤΟΥΣ ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΘΕΡΙΝΑ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

2.2.3 Η εντολή Εκτύπωσε

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

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

Μονάδες 12 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Έλεγχος συγχρονικότητας Μέρος 1 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

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

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

Ανάπτυξη Εφαρμογών. (Μονάδες 8) Α2. α. να αναφέρετε ονομαστικά τα κριτήρια που πρέπει απαραίτητα να ικανοποιεί ένας αλγόριθμος.

Α Διαγώνισμα 1 ου Τριμήνου στο μάθημα της Πληροφορικής Γ Γυμνασίου Ονοματεπώνυμο:...

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

Παράλληλη Επεξεργασία

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

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

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. Α2. Να αναφέρετε ονομαστικά: i) τα αλγοριθμικά κριτήρια ii) τους τρόπους αναπαράστασης αλγορίθμου. (μονάδες 10)

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

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ: Γ ΛΥΚΕΙΟΥ HM/NIA: 21/2/2016

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

Transcript:

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

Εισαγωγή Σκοπός του μαθήματος αυτού είναι να εξηγήσει την έννοια του κρίσιμου τμήματος σε μία διεργασία και να δείξει τη λύση για ένα απλό πρόβλημα κρίσιμου τμήματος. Tι είναι κρίσιμο τμήμα μίας διεργασίας Τι είναι ο αμοιβαίος αποκλεισμός Πώς επιτυγχάνουμε αμοιβαίο αποκλεισμό σε ένα απλό πρόβλημα

Κρίσιμα τμήματα Σε ένα υπολογιστικό σύστημα, υπάρχουν μοιραζόμενοι πόροι (shared resources), που χρησιμοποιούνται από πολλές διεργασίες και για να διαβαστούν αλλά και για να γραφτούν. Ο τρόπος που γίνονται οι προσπελάσεις σε αυτά έχει πολύ μεγάλη σημασία, γιατί μια αλλαγή στα δεδομένα από τη μια διεργασία επηρεάζει και τις υπόλοιπες.

Παράδειγμα Μια τέτοια χαρακτηριστική περίπτωση διεργασιών που μοιράζονται δεδομένα είναι ένα online σύστημα τράπεζας. Η διαδικασία ανάληψης ενός ποσού Α από ένα μηχάνημα ΑΤΜ γίνεται σε 5 φάσεις: 1. Ρώτα τον πελάτη για το χρηματικό ποσό Α που θέλει 2. Διάβασε το υπόλοιπο Υ του λογαριασμού 3. Υπολόγισε το νέο υπόλοιπο Υ μετά την ανάληψη του ποσού Α, Υ :=Υ-Α 4. Αποθήκευσε το νέο υπόλοιπο 5. Δώσε τα χρήματα και την απόδειξη

Προσοχή όμως Τι θα συμβεί αν πραγματοποιηθούν αναλήψεις από δύο διαφορετικά μηχανήματα συγχρόνως για τον ίδιο λογαριασμό; Ας φανταστούμε ότι σε έναν κοινό λογαριασμό το αρχικό υπόλοιπο του λογαριασμού είναι 200, ο ένας πελάτης (π.χ. η σύζυγος) ζητά 50, ενώ ο άλλος (ο σύζυγος) ζητά 20. Επίσης υποθέτουμε ότι η εναλλαγή των διεργασιών γίνεται με τέτοιο ρυθμό ώστε σε κάθε κβάντο χρόνου, το οποίο έχει διάρκεια 1, μια διεργασία εκτελεί μια από τις τέσσερις παραπάνω φάσεις. Το υπόλοιπο του λογαριασμού μετά από τις δυο αναλήψεις θα πρέπει να είναι βέβαια 130.

Πιο αναλυτικά

Τι συνέβη Βλέπουμε λοιπόν ότι το τελικό υπόλοιπο του λογαριασμού δεν είναι σωστό, και μάλιστα εξαρτάται από το ποια διεργασία ξεκίνησε πρώτη: Αν είχε ξεκινήσει πρώτη η Β, το υπόλοιπο θα ήταν 150. Αν όμως η διεργασία Α ξεκινήσει πρώτη, ο πελάτης που αντιστοιχεί σε αυτή θα λάβει απόδειξη με το σωστό υπόλοιπο για τη συναλλαγή του, ενώ ο πελάτης της διεργασίας Β θα λάβει απόδειξη με λανθασμένο υπόλοιπο.

Γιατί συνέβη Επειδή το ΑΤΜ ελέγχει και αποθηκεύει ανεξέλεγκτα τα ποσά κατά την εξυπηρέτηση πελατών την ίδια χρονική περίοδο. Αν πολλές διεργασίες διαβάζουν και γράφουν ανεξέλεγκτα στα δεδομένα που μοιράζονται, τότε αυτά δεν παίρνουν τις σωστές τιμές. Το πρόβλημα ονομάζεται πρόβλημα κρίσιμου τμήματος (critical section), όπου πρέπει να εξασφαλισθεί η ακεραιότητα των δεδομένων (data integrity).

Δύο πιθανές λύσεις 1 1. Μέχρι να ολοκληρωθεί η συναλλαγή του πρώτου πελάτη δεν ξεκινά αυτή του δεύτερου. Υλοποίηση: Αδρανοποιείται το σύστημα διακοπών του χρονιστή (ο οποίος είναι υπεύθυνος να ενημερώνει την ΚΜΕ κάθε φορά που πρέπει να διακοπεί μια διεργασία για να εκτελεστεί άλλη) μέχρι η πρώτη συναλλαγή να ολοκληρωθεί, οπότε δεν είναι δυνατόν να διακοπεί αυτή για να εκτελεστεί κάποια άλλη.

Δύο πιθανές λύσεις 2 2. Το ΛΣ «σημειώνει» ότι ο λογαριασμός χρησιμοποιείται από την πρώτη διεργασία, και η δεύτερη περιμένει έως ότου ο λογαριασμός «αποσημειωθεί», ελευθερωθεί δηλαδή. Υλοποίηση: Με ειδικούς μηχανισμούς, όπως οι σηματοφορείς, που θα εξεταστούν σε επόμενο μάθημα.

Κρίσιμο Τμήμα Και στις δυο περιπτώσεις, το πρόβλημα της ακεραιότητας των δεδομένων δεν αφορά την πρώτη φάση της διαδικασίας, δηλαδή την εισαγωγή από τον πελάτη του χρηματικού ποσού που επιθυμεί, γιατί τότε τα δεδομένα του λογαριασμού δεν έχουν διαβαστεί ή αλλάξει ακόμα. Αν διακοπεί η διεργασία αμέσως μόλις ρωτήσει τον πελάτη για το ύψος του ποσού, ότι αλλαγές γίνουν στο λογαριασμό από κάποια άλλη συναλλαγή δε θα επηρεάσουν αυτήν. Βλέπουμε λοιπόν ότι μόνο σε ένα τμήμα της κάθε διεργασίας εμφανίζεται κίνδυνος για την ακεραιότητα των δεδομένων. Το τμήμα αυτό του κώδικα ονομάζεται κρίσιμο τμήμα.

Αμοιβαίος Αποκλεισμός Όταν μια διεργασία εκτελεί τον κώδικα του κρίσιμου τμήματός της, καμία άλλη δεν μπορεί να εκτελεί το δικό της κρίσιμο τμήμα, έχουμε δηλαδή το φαινόμενο του αμοιβαίου αποκλεισμού (mutual exclusion).

Περιορισμοί O Dijkstra (1965) έθεσε μερικούς περιορισμούς για το κρίσιμο τμήμα: 1) Όταν μια διεργασία εκτελεί κώδικα εκτός του κρίσιμου τμήματός της, δεν μπορεί να αποτρέψει άλλες διεργασίες να εκτελέσουν το δικό τους κρίσιμο τμήμα. 2) Όταν δυο ή περισσότερες διεργασίες είναι ταυτόχρονα έτοιμες να εισέλθουν στο κρίσιμο τμήμα τους, η λήψη απόφασης δεν πρέπει να αναβάλλεται επ άπειρο. 3) Πρέπει να υπάρχει δικαιοσύνη (fairness) στον τρόπο επιλογής της διεργασίας που θα εισέλθει στο κρίσιμο τμήμα.

Αδιέξοδο Οι δυο πρώτοι περιορισμοί προφυλάσσουν το σύστημα από το αδιέξοδο (deadlock) ή το αμοιβαίο μπλοκάρισμα (mutual blocking), όπου όλες οι διεργασίες εμποδίζονται να εκτελέσουν το κρίσιμο τμήμα τους, ενώ τουλάχιστον μία θα μπορούσε να το κάνει.

Η λύση του Peterson Τη λύση στο πρόβλημα της ταυτόχρονης πρόσβασης δύο διεργασιών σε μοιραζόμενους πόρους έδωσε το 1981 ο Gary L. Peterson. Η αρχική προσέγγιση αφορούσε μόνο δύο διεργασίες, αλλά ο αλγόριθμος μπορεί να γενικευτεί και για περισσότερες. Σύμφωνα, λοιπόν, με τη λύση του Peterson, όλες οι διεργασίες χρησιμοποιούν δύο μεταβλητές: Μία η οποία δείχνει ποια διεργασία έχει σειρά να εκτελέσει το κρίσιμο τμήμα της (κοινή για όλες τις διεργασίες). Μία η οποία δείχνει αν η διεργασία έχει εισέλθει στο κρίσιμο τμήμα της ή όχι (κάθε διεργασία έχει από μία).

Για να καταλάβουμε τι ακριβώς εννοούμε, ας εξετάσουμε ξανά το παράδειγμα με το ΑΤΜ. Αν ο κώδικας των διεργασιών ήταν γραμμένος σε Pascal, τότε η λύση του Peterson θα μπορούσε να εφαρμοστεί όπως παρακάτω.

Ερμηνεία Στις παραπάνω δύο διεργασίες υπάρχει μια μεταβλητή με το όνομα seira. Αν η μεταβλητή έχει την τιμή 1, τότε είναι σειρά της πρώτης διεργασίας, ενώ αν έχει την τιμή 2 είναι σειρά της δεύτερης. Η μεταβλητή eisodos1 έχει την τιμή true όταν η διεργασία 1 είναι έτοιμη να εκτελέσει ή εκτελεί το κρίσιμο τμήμα της, ενώ σε όλες τις άλλες φάσεις εκτέλεσής της έχει τιμή false. Αντίστοιχες τιμές παίρνει και η μεταβλητή eisodos2, για τη διεργασία 2.

Ερμηνεία Κάθε διεργασία περιμένει για την άλλη, εφόσον είναι η σειρά της άλλης και εκείνη έχει δηλώσει πρόθεση να εκτελέσει το κρίσιμο τμήμα της. Αν π.χ. είναι η σειρά της διεργασίας 2, αλλά εκείνη δεν είναι έτοιμη να εκτελέσει το κρίσιμο τμήμα της (δηλαδή eisodos2=false), τότε η διεργασία 1 μπαίνει στο δικό της κρίσιμο τμήμα, εμποδίζοντας τη 2 με τη βοήθεια της eisodos1. Αν και οι δυο διεργασίες θέλουν ταυτόχρονα να εκτελέσουν το κρίσιμο τμήμα τους, το εκτελεί πρώτα εκείνη που υποδεικνύεται από τη μεταβλητή seira. Γενικότερα, το πρόβλημα λύνεται πολύ πιο απλά με τη βοήθεια των σηματοφορέων (semaphores) που περιγράφονται στο επόμενο μάθημα.

Ανακεφαλαίωση Στα ταυτόχρονα προγράμματα η ύπαρξη δεδομένων που χρησιμοποιούν από κοινού πολλές διεργασίες (και τουλάχιστον μια από αυτές γράφει στα δεδομένα), εισάγει το ζήτημα της ακεραιότητας των δεδομένων αυτών. Το τμήμα κώδικα μιας διεργασίας το οποίο διαβάζει ή γράφει από κοινού χρησιμοποιούμενα δεδομένα ονομάζεται κρίσιμο τμήμα. Από μια ομάδα διεργασιών που χρησιμοποιούν από κοινού δεδομένα μόνο μια μπορεί να εκτελεί ανά πάσα στιγμή το κρίσιμο τμήμα της. Αν για κάποιο λόγο όλες οι διεργασίες της ομάδας εμποδίζονται να εκτελέσουν το κρίσιμο τμήμα τους, τότε έχουμε μια περίπτωση αδιεξόδου.

Ερωτήσεις Τι είναι το κρίσιμο τμήμα; Πότε έχουμε αμοιβαίο αποκλεισμό μεταξύ δύο διεργασιών; Ποιους περιορισμούς έθεσε ο Dijkstra για τα κρίσιμα τμήματα;