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

Σχετικά έγγραφα
Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

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

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

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

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

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

Αδιέξοδα (Deadlocks)

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων ΙΙ Ενότητα 2

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

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

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

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

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

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

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

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

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

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

Εισαγωγή στην Πληροφορική

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

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

Σειρά Προβλημάτων 3 Ημερομηνία Παράδοσης: 04/04/16

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

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

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

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

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

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

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

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

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

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

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

Σκελετός Παρουσίασης

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

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

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

Ενότητα 6 (Κεφάλαιο 9) Χρονοδρομολόγηση

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 1 : Λειτουργικά συστήματα. Δρ.

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

3. Προσομοίωση ενός Συστήματος Αναμονής.

Έλεγχος Ταυτοχρονισμού

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

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

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι

Κεφάλαιο 6: Προσομοίωση ενός συστήματος αναμονής

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

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

Ι.Ε.Κ. Χαϊδαρίου ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ. Σημειώσεις Θεωρίας

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

Transcript:

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

Το Πρόβλημα του Αδιεξόδου Ένα σύνολο από διεργασίες σε αναμονή, όπου η κάθε μια κατέχει έναν αριθμό από πόρους και περιμένει να αποκτήσει και έναν άλλο πόρο που κατέχει κάποια από τις διεργασίες του συνόλου Παράδειγμα: Το σύστημα διαθέτει δύο πόρους (ο κάθε πόρος μπορεί να χρησιμοποιείται μόνο από μια διεργασία κάθε χρονική στιγμή) Οι P 1 και P 2 κατέχουν πρόσβαση καθεμία σε έναν πόρο και αναμένουν να τους δοθεί πρόσβαση και στον άλλο Αναπαράσταση με σημαφόρους A και B, με αρχική τιμή 1: P 1 P 2 wait (A); wait(b); wait (B); wait(a); Σελίδα 2

Παράδειγμα Περάσματος Γέφυρας Κίνηση μόνο προς μια κατεύθυνση Κάθε άκρη της γέφυρας μπορεί να θεωρηθεί ως ένας πόρος. Για να περάσει ένα αυτοκίνητο πρέπει να του δοθεί πρόσβαση και στους δύο πόρους Αν συμβεί αδιέξοδο, μπορεί να επιλυθεί αν οπισθοχωρήσει κάποιο αυτοκίνητο (αφήσει τους πόρους και υποχωρήσει). Μπορεί να χρειαστεί να οπισθοχωρήσουν πολλά αυτοκίνητα Η λιμοκτονία (starvation) είναι πιθανή Σελίδα 3

Αφηρημένο Μοντέλο Συστήματος Τύποι πόρων R 1, R 2,..., R m π.χ. Κύκλοι ΚΜΕ, χώρος μνήμης, συσκευές I/O Για κάθε τύπο πόρου R i υπάρχουν W i οντότητες (που για την παρακάτω μελέτη θα θεωρούνται όμοιες) Μια διεργασία αξιοποιεί κάποιον πόρο με την ακόλουθη διαδικασία: αίτηση (request) χρήση (use) αποδέσμευση (release) Σελίδα 4

Χαρακτηρισμός Αδιεξόδου (Deadlock Characterization) Ένα αδιέξοδο μπορεί να συμβεί αν ισχύουν ταυτόχρονα οι εξής συνθήκες: Αμοιβαίος αποκλεισμός (Mutual exclusion): Μόνο μια διεργασία μπορεί να χρησιμοποιεί μια οντότητα ενός πόρου κάθε χρονική στιγμή Κατοχή και αναμονή (Hold and wait): Μια διεργασία που κατέχει τουλάχιστον έναν πόρο αναμένει να αποκτήσει επιπλέον πόρους που κατέχουν άλλες διεργασίες Δεν υπάρχει διακοπή (No preemption): Ένας πόρος μπορεί να αποδεσμευτεί από τη διεργασία που τον κατέχει μόνο εθελοντικά και αφού η διεργασία έχει ολοκληρώσει την εργασία της με τον πόρο Σελίδα 5

Χαρακτηρισμός Αδιεξόδου (συνέχεια) Κυκλική αναμονή (Circular wait): Υπάρχει ένα σύνολο {P 0, P 1,, P n-1 } από διεργασίες εν αναμονή, έτσι ώστε η P 0 να περιμένει για ένα πόρο που έχει δεσμεύσει η P 1, η P 1 να περιμένει για ένα πόρο που έχει δεσμεύσει η P 2,, η P n 2 να περιμένει για ένα πόρο που έχει δεσμεύσει η P n-1, και η P n-1 να περιμένει για ένα πόρο που έχει δεσμεύσει η P 0 P 0 P 1, P 1 P 2,, P n 1 P 0 Σελίδα 6

Γράφος Ανάθεσης Πόρων (Resource- Allocation Graph) Ορίζεται γράφος με σύνολο κόμβων V και σύνολο ακμών Ε Το σύνολο κόμβων V χωρίζεται σε δύο τύπους: P = {P 1, P 2,, P n }, οι διεργασίες του συστήματος R = {R 1, R 2,, R m }, οι τύποι των πόρων του συστήματος Το σύνολο ακμών Ε χωρίζεται σε δύο τύπους: Ακμή αίτησης κατευθυνόμενη ακμή P i R j Ακμή ανάθεσης κατευθυνόμενη ακμή R j P i Σελίδα 7

Γράφος Ανάθεσης Πόρων (συνέχεια) Διεργασία Πόρος με 4 ίδιες οντότητες Η P i κάνει αίτηση για μια οντότητα του R j P i R j Η P i κατέχει μια οντότητα του πόρου R j P i R j Σελίδα 8

Παράδειγμα Γράφου Ανάθεσης Πόρων Σελίδα 9

Γράφος Ανάθεσης Πόρων με Αδιέξοδο Σελίδα 10

Γράφος Ανάθεσης Πόρων με Κύκλο αλλά όχι και Αδιέξοδο Σελίδα 11

Βασικές Παρατηρήσεις Αν ένας γράφος δεν περιέχει κύκλους δεν υπάρχει αδιέξοδο Αν ένας γράφος περιέχει κύκλο Αν υπάρχει μόνο μια οντότητα για τον κάθε πόρο αδιέξοδο Αν υπάρχουν αρκετές οντότητες ανά τύπο πόρου πιθανότητα εμφάνισης αδιεξόδου (αλλά όχι σίγουρα αδιέξοδο) Σελίδα 12

Μέθοδοι Χειρισμού Αδιεξόδου Διασφάλιση ότι το σύστημα δεν θα εισέλθει ποτέ σε κατάσταση αδιεξόδου (deadlock state) Ανοχή προς το σύστημα, ώστε να μπορεί να εισέλθει σε κατάσταση αδιεξόδου και στη συνέχεια ανάκαμψη από το αδιέξοδο Αγνόηση του προβλήματος και προσποίηση ότι τα αδιέξοδα δε συμβαίνουν ποτέ σε ένα σύστημα, προσέγγιση που χρησιμοποιείται στα περισσότερα ΛΣ, συμπεριλαμβανομένου και του UNIX Σελίδα 13

Αποτροπή Αδιεξόδου (Deadlock Prevention) Περιορισμός του τρόπου με τον οποίο μπορούν να γίνονται αιτήσεις Ελαχιστοποίηση αμοιβαίου αποκλεισμού δεν απαιτείται για τους κοινούς πόρους, πρέπει να ισχύει για τους μη κοινούς πόρους Απαγόρευση κράτησης εν αναμονή πρέπει να υπάρχει εγγύηση ότι, όταν μια διεργασία κάνει αίτηση για έναν πόρο, δεν κατέχει άλλο Απαιτεί από τη διεργασία να αιτηθεί και να της ανατεθούν όλοι οι πόροι πριν την έναρξη της εκτέλεσης, ή επιτρέπει στις διεργασίες να κάνουν αιτήσεις μόνο όταν δεν κατέχουν πόρους Χαμηλή χρησιμοποίηση πόρων, πιθανότητα λιμοκτονίας Σελίδα 14

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

Αποφυγή Αδιεξόδου (Deadlock Avoidance) Απαιτούνται επιπρόσθετες πληροφορίες διαθέσιμες εκ των προτέρων: Το απλούστερο και πιο χρήσιμο μοντέλο απαιτεί από κάθε διεργασία να δηλώνει, εκ των προτέρων, το μέγιστο πλήθος των πόρων κάθε τύπου που θα χρειαστεί Ο αλγόριθμος αποφυγής αδιεξόδου εξετάζει δυναμικά την κατάσταση της ανάθεσης πόρων για να διασφαλίσει ότι δεν μπορεί με κανέναν τρόπο να δημιουργηθεί συνθήκη κυκλικής αναμονής Όταν μια διεργασία αιτείται ένα διαθέσιμο πόρο, το σύστημα πρέπει να αποφασίσει κατά πόσο η άμεση ανάθεση του πόρου αυτού στην διεργασία αφήνει το σύστημα σε ασφαλή κατάσταση (safe state) Σελίδα 16

Ανίχνευση Αδιεξόδου (Deadlock Detection) Επιτρέπουμε στο σύστημα να εισέλθει σε κατάσταση αδιεξόδου Απαιτείται να υπάρχει (πότε εκτελείται;) αλγόριθμος ανίχνευσης αδιεξόδου Σχήμα ανάκαμψης ΥΣ από το αδιέξοδο (recovery scheme) Σελίδα 17

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

Ανάκαμψη από το Αδιέξοδο: Τερματισμός Διεργασιών Παύση όλων των διαδικασιών που εμπλέκονται στο αδιέξοδο Παύση μιας διεργασίας τη φορά μέχρι να εξαλειφθεί ο κύκλος του αδιεξόδου Με ποια σειρά πρέπει να διαλέγουμε τις διεργασίες για παύση; Προτεραιότητα της διεργασίας Πόση ώρα εκτελείται η διεργασία και πόσο υπολείπεται μέχρι την ολοκλήρωσή της Πόροι που έχουν χρησιμοποιηθεί από τη διεργασία Πόροι που χρειάζεται για να ολοκληρωθεί η διεργασία Πόσες διεργασίες θα χρειαστεί να τερματιστούν; Είναι αλληλεπιδραστική ή μαζικής επεξεργασίας (batch); Σελίδα 19

Ανάκαμψη από το Αδιέξοδο: Αφαίρεση Πόρων (Resource Preemption) Επιλογή ενός «θύματος» (victim) ελαχιστοποίηση κόστους Πισωγύρισμα (Rollback) επιστροφή σε κάποια ασφαλή κατάσταση, επανεκκίνηση της διεργασίας από αυτή την κατάσταση Λιμοκτονία η ίδια διεργασία μπορεί να επιλέγεται συνέχεια ως θύμα, το πλήθος των πισωγυρισμάτων πρέπει να υπολογίζεται στο κόστος Σελίδα 20

Συνδυασμένη Προσέγγιση στο Χειρισμό Αδιεξόδων Συνδυασμός των τριών βασικών προσεγγίσεων αποτροπή αποφυγή ανίχνευση επιτρέποντας τη χρήση της βέλτιστης προσέγγισης για κάθε έναν από τους πόρους του συστήματος Διαμερισμός των πόρων σε ιεραρχικά διατεταγμένες κλάσεις και εφαρμογή της πιο κατάλληλης τεχνικής για το χειρισμό αδιεξόδων μέσα στην κάθε κλάση Σελίδα 21