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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

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

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

Αδιέξοδα (Deadlocks)

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

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

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

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

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

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

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση

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

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

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

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

6. Αδιέξοδο. 1. Ορισμοί είδη πόρων. 3. Συνθήκες αδιεξόδου. 1. Πρόληψη 2. Αποφυγή 3. Ανίχνευση 5. Το πρόβλημα των συνδαιτημόνων φιλοσόφων

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

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

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

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

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

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

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

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

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

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

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

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

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

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

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

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

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

Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;

Κεφάλαιο 4: Λογισμικό Συστήματος

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

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

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

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α ΤΑΞΗ

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

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

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

Επιτεύγµατα των Λ.Σ.

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

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

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

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

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


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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις

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

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

Υλοποίηση Σηματοφόρων

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Αδιέξοδα

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

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

Εντοπισμός αδιεξόδου. Κατανεμημένα Συστήματα 1

Πληροφορική 2. Λειτουργικά Συστήματα

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

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

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

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

ΚΕΦΑΛΑΙΟ 4 ΛΟΓΙΣΜΙΚΟ ΣΥΣΤΗΜΑΤΟΣ. ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ-MSc

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

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

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

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

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

Εισαγωγή Χαρακτηριστικά του πυρήνα του Linux Ο ρόλος του λειτουργικού συστήματος...7

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

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

Ένα πρόγραμμα σε εκτέλεση, Μια ασύγχρονη δραστηριότητα,

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Παράλληλη Επεξεργασία Κεφάλαιο 5 Μοίρασμα Δεδομένων

Παραλληλισµός Εντολών (Pipelining)

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

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

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

Transcript:

Αμοιβαίος αποκλεισμός 1. Εισαγωγή 2. Κρίσιμα τμήματα (Critical Sections) 3. Υλοποίηση του αμοιβαίου αποκλεισμού I. Προσεγγίσεις λογισμικού II. Υποστήριξη εκ μέρους του υλικού III. Σηματοφορείς 4. Κλασσικά προβλήματα συγχρονισμού 1

1. Εισαγωγή Ο αμοιβαίος αποκλεισμός είναι ο αποκλεισμός μιας διεργασίας από μια ενέργεια που επιτελεί ταυτοχρόνως κάποια άλλη διεργασία. Απαιτεί μόνο μία διεργασία να πραγματοποιεί λειτουργίες σε κοινούς πόρους. Αν δύο διεργασίες προσπαθήσουν να αποκτήσουν ένα κοινό πόρο, τότε η μία θα πρέπει να αναμένει. Για την αποφυγή των παρενεργειών λόγω ανταγωνισμού είναι ζωτικής σημασίας η πρόβλεψη και η αποτροπή χρήσης διαμοιραζόμενων πόρων από περισσότερες από μια διεργασίες την ίδια χρονική στιγμή. Είναι απαραίτητος για την προστασία των κρισίμων τμημάτων των διεργασιών. 2

Η επιλογή των κατάλληλων λειτουργιών για την επίτευξη του αμοιβαίου αποκλεισμού είναι σημαντικό θέμα κατά το σχεδιασμό των Λ.Σ. Η διαχείριση του αμοιβαίου αποκλεισμού γίνεται μέσω : Προστασίας πρόσβασης σε πόρους μέσω μηχανισμών συγχρονισμού Ενδεχόμενου συγχρονισμού (σε πολλές περιπτώσεις) μέσω των κλήσεων συστήματος, χωρίς η μέθοδος αυτή να είναι πάντοτε αποτελεσματική επειδή πολλές κλήσεις συστήματος είναι επανεισαγόμενες (reentrant). Όταν δύο ή περισσότερες διεργασίες είναι πιθανό να ζητήσουν και να εκτελέσουν συγχρόνως μια κοινή διαδικασία ο κώδικας της διαδικασίας χαρακτηρίζεται ως επανεισαγόμενος. Τέτοιες διαδικασίες πρέπει να χρησιμοποιούν επανεισαγόμενο κώδικα για να αποθηκεύουν τα συγκεκριμένα δεδομένα κάθε διεργασίας σε θέσεις μνήμης που είναι τοπικές στην κάθε διεργασία. 3

Παράδειγμα - 1 Κατάθεση 100 Ανάγνωση τρέχοντος υπολοίπου = 500 Απαίτηση ανάληψης 100 Χρονική καθυστέρηση Νέο υπόλοιπο= 500 + 100 = 600 Εγγραφή νέου υπολοίπου στο δίσκο = 600 Ανάγνωση τρέχοντος υπολοίπου = 500 Νέο υπόλοιπο= 500-100 = 400 Χρονική καθυστέρηση Εγγραφή νέου υπολοίπου στο δίσκο = 400 4

Κατάθεση 100 Απαίτηση για δέσμευση του λογαριασμού Ανάγνωση υπολοίπου από το δίσκο = 500 υπόλοιπο = 500 + 100 = 600 Εγγραφή νέου υπολοίπου στο δίσκο = 600 Απελευθέρωση λογαριασμού Παράδειγμα 1 (συνέχεια) Απαίτηση ανάληψης 100 Απαίτηση για κλείδωμα του λογαριασμού Αναμονή Δέσμευση λογαριασμού Ανάγνωση υπολοίπου = 600 Νέο υπόλοιπο = 600-100 = 500 Εγγραφή νέου υπολοίπου στο δίσκο = 500 5

2. Κρίσιμα τμήματα (Critical Sections) Μια ακολουθία εντολών μιας διεργασίας που πρέπει να εκτελείται αδιαίρετα, ονομάζεται κρίσιμο τμήμα. Η εκτέλεση του κρισίμου τμήματος θα πρέπει να είναι όλα ή τίποτα Δεν θα πρέπει να διακόπτεται στο μέσον Η αποτελεσματικότητα της πολυεπεξεργασίας εξαρτάται από το μήκος του κρίσιμου τμήματος κάθε ανταγωνιστικής διεργασίας και πρέπει να είναι όσο το δυνατόν μικρότερο. Το πλέον αναποτελεσματικό σενάριο Όλο το πρόγραμμα είναι ένα κρίσιμο τμήμα δεν υπάρχει πολυπρογραμματισμός! 6

Όταν μια διεργασία εκτελεί το κρίσιμο τμήμα της (ΚΤ), σε καμιά άλλη δεν μπορεί να επιτραπεί να εκτελεί το δικό της κρίσιμο τμήμα. Αν μπορούσε να διασφαλισθεί ότι ποτέ δύο ή περισσότερες διεργασίες δεν θα βρίσκονται ταυτόχρονα σε κρίσιμα τμήματα, τότε θα είχε επιτευχθεί η αποφυγή των συνθηκών ανταγωνισμού. Ωστόσο αυτό δεν είναι αρκετό για τη σωστή και αποδοτική συνεργασία δύο ή περισσοτέρων παράλληλων διεργασιών. Μια καλή λύση προϋποθέτει τις παρακάτω συνθήκες : 7

Συνθήκες για το πρόβλημα του αμοιβαίου αποκλεισμού 1. Κάθε διεργασία μπορεί να διαιρεθεί σε δύο ακολουθίες (τμήματα ή περιοχές εντολών) : το κρίσιμο τμήμα, δηλ. αυτό που προσπελάζει τον κοινό πόρο και δεν πρέπει να καταμεριστεί και το μη κρίσιμο τμήμα. 2. Δυο διεργασίες δεν μπορούν να βρίσκονται ταυτόχρονα στα κρίσιμα τμήματά τους. 3. Μια διεργασία μπορεί να σταματήσει μόνον μέσα στο μη κρίσιμο τμήμα της, χωρίς να επηρεάσει (να αναστείλει) άλλες διεργασίες. 4. Δεν επιτρέπονται υποθέσεις σε ότι αφορά την ταχύτητα ή το πλήθος των επεξεργαστών. 5. Όταν μια διεργασία δεν εκτελεί το κρίσιμο τμήμα της δεν μπορεί να αναστείλει την εκτέλεση άλλης διεργασίας. 8

6. Το πρόγραμμα δεν επιτρέπεται να καταλήξει σε αδιέξοδο. Αν περισσότερες της μιας διεργασίες προσπαθήσουν να εισέλθουν ταυτόχρονα στις κρίσιμες περιοχές τους, τότε μόνο μια πρέπει να επιτύχει. 7. Δεν επιτρέπεται η επ αόριστον αναμονή μιας διεργασίας, μέχρι να εισέλθει στο κρίσιμο τμήμα της. 8. Στην περίπτωση έλλειψης συναγωνισμού για ταυτόχρονη είσοδο σε κρίσιμες περιοχές, μια διεργασία που επιθυμεί να εισέλθει στην κρίσιμη περιοχή της θα πρέπει να το επιτύχει με την ελάχιστη δυνατή επιβάρυνση. 9. Μια διεργασία παραμένει μέσα στο κρίσιμο τμήμα της για ορισμένο χρονικό διάστημα. 9

Αμοιβαίος αποκλεισμός χρησιμοποιώντας κρίσιμα τμήματα 10

Κίνδυνοι λόγω του αμοιβαίου αποκλεισμού Οι λανθασμένες ή ελλιπείς λύσεις στο πρόβλημα του αμοιβαίου αποκλεισμού μπορούν να οδηγήσουν σε Παρατεταμένη στέρηση (starvation) Αδιέξοδο (deadlock) Ανεπάρκεια του συστήματος 11

3. Υλοποίηση του αμοιβαίου αποκλεισμού I. Προσεγγίσεις λογισμικού με παραχώρηση της ευθύνης στις διεργασίες χωρίς υποστήριξη από τη γλώσσα προγραμματισμού ή το Λ.Σ. (αλγόριθμοι Dekker και Peterson) II. Υποστήριξη εκ μέρους του υλικού με χρήση εντολών μηχανής ειδικού σκοπού (ατομικές λειτουργίες test και set) III.Παροχή κάποιου επιπέδου υποστήριξης από το Λ.Σ. ή τη γλώσσα προγραμματισμού : σηματοφορείς (semaphores), παρακολουθητές(monitors), μεταβίβαση μηνυμάτων Όλες οι λύσεις περιλαμβάνουν συνήθως κρίσιμα τμήματα 12