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

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

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

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

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

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

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

Αδιέξοδα (Deadlocks)

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Αδιέξοδα Εργαστηριακές Ασκήσεις

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

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

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

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

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

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

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

ιαµέριση - Partitioning

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

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

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

Εκλογήαρχηγού. Εισαγωγή Ισχυρά συνδεδεµένος γράφος ακτύλιος µίας κατεύθυνσης Τοπολογία δένδρου. Κατανεµηµένα Συστήµατα 06-1

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

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

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

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

Αποτίµησηκαθολικού κατηγορήµατος

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

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

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

Εικονική Μνήμη (Virtual Memory)

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

Διαδικασιακός Προγραμματισμός

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

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

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

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

Εισαγωγή στην Πληροφορική. Αντώνης Σταµατάκης

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

9. Συστολικές Συστοιχίες Επεξεργαστών

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

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

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

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

for for for for( . */

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

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

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

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης

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

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

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

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Γραμμικός Προγραμματισμός Μέθοδος Simplex

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

4.3. Γραµµικοί ταξινοµητές

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

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

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

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

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

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

Transcript:

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

Για τη δηµιουργία των διαφανειών έχει χρησιµοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, Operating Systems Concepts, 6 th Edition. Οι διαφάνειες αυτές βρίσκονται στο δικτυακό τόπο: http://www.cs.purdue.edu/homes/yau/cs503/

Εισαγωγή Μοντέλο συστήµατος Χαρακτηρισµός και ορισµός κατάστασης αδιεξόδου Μέθοδοι χειρισµού αδιεξόδων Αποτροπή αδιεξόδου (Deadlock Prevention) Αποφυγή αδιεξόδου (Deadlock Avoidance) Ανίχνευση αδιεξόδου (Deadlock Detection) Ανάκαµψη από αδιέξοδο Συνδυασµένες προσεγγίσεις Σελίδα 3

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

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

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

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

Χαρακτηρισµός Αδιεξόδου (συνέχεια) Κυκλική αναµονή (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 Σελίδα 8

Γράφος Ανάθεσης Πόρων (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 Σελίδα 9

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

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

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

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

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

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

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

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

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

Ασφαλής Κατάσταση (Safe State) Ι Το σύστηµα είναι σε ασφαλή κατάσταση αν υπάρχει µια ασφαλής ακολουθία όλων των διεργασιών Ηακολουθία<P 1, P 2,, P n > είναι ασφαλής για την τρέχουσα κατάσταση αναθέσεων, αν για κάθε P i, οι πόροι που η P i µπορεί να αιτηθεί µπορούν να ικανοποιηθούν από τους διαθέσιµους και τους πόρους που κρατούν όλες οι P j, µε j<i Σελίδα 19

Ασφαλής Κατάσταση ΙΙ Αν οι ανάγκες πόρων της P i δεν είναι άµεσα διαθέσιµες, τότε η P i µπορεί να περιµένει µέχρι να ολοκληρώσουν όλες οι P j Όταν ολοκληρωθούν όλες οι P j, η P i µπορεί να αποκτήσει τους αναγκαίους πόρους, να εκτελεστεί και να τους επιστρέψει Όταν τερµατίσει η P i, η P i+1 αποκτά τους αναγκαίους πόρους κ.ο.κ. Σελίδα 20

Βασικές Παρατηρήσεις Αν ένα σύστηµα είναι σε ασφαλή κατάσταση δεν υπάρχει αδιέξοδο Αν ένα σύστηµα είναισεµη ασφαλή κατάσταση πιθανότητα εµφάνισης αδιεξόδου Αποφυγή αδιεξόδου διασφάλιση ότι ένα σύστηµα δεν θα εισέλθει ποτέ σε µη ασφαλή κατάσταση Ισχύει όµως και ότι: το σύστηµα θα εισέλθει σε µη ασφαλή κατάσταση αδιέξοδο! Η χρήση ασφαλών καταστάσεων είναι συντηρητική λύση! Σελίδα 21

Ασφαλής, Μη ασφαλής και Κατάσταση Αδιεξόδου Σελίδα 22

Αλγόριθµος Γράφου Ανάθεσης Πόρων Ακµή διεκδίκησης (Claim edge) P i R j υποδηλώνει ότι η διεργασία P i µπορεί να ζητήσει τον πόρο R j και αναπαρίσταται από διακεκοµµένη γραµµή Μια ακµή διεκδίκησης µετατρέπεται σε ακµή αίτησης όταν µια διεργασία ζητήσει ένα πόρο Όταν µια διεργασία απελευθερώσει κάποιον πόρο, η ακµή ανάθεσης ξαναγίνεται ακµή διεκδίκησης Οι πόροι πρέπει να διεκδικούνται εκ των προτέρων από το σύστηµα Σελίδα 23

Γράφος Ανάθεσης Πόρων για Αποφυγή Αδιεξόδου Σελίδα 24

Μη Ασφαλής Κατάσταση σε ένα Γράφο Ανάθεσης Πόρων Σελίδα 25

Αλγόριθµος του Τραπεζίτη (Banker s Algorithm) Υπάρχουν περισσότερες της µιας οντότητες για κάποιους τύπους πόρων Κάθε διεργασία πρέπει εκ των προτέρων να διεκδικήσει τη µέγιστη χρήση των πόρων που χρειάζεται για την εκτέλεσή της Όταν µια διεργασία κάνει αίτηση για κάποιον πόρο, µπορεί να χρειαστεί να περιµένει Αφού µια διεργασία πάρει όλους τους πόρους που χρειάζεται πρέπει να τους επιστρέψει σε πεπερασµένο χρονικό διάστηµα Σελίδα 26

οµές εδοµένων για τον Αλγόριθµο του Τραπεζίτη n=το πλήθος των διεργασιών, m=το πλήθος των πόρων available: ιάνυσµα µεγέθους m, όπου available[j] το πλήθος των διαθέσιµων οντοτήτων του πόρου R j max: Πίνακας n x m, όπου max[i,j] το µέγιστο πλήθος των οντοτήτων του πόρου R j που µπορεί να ζητήσει η διεργασία P i allocation: Πίνακας n x m, όπου allocation[i,j] το πλήθος των οντοτήτων του πόρου R j που διαθέτει η P i την τρέχουσα στιγµή need: Πίνακας n x m, όπου need[i,j] το πλήθος των επιπλέον οντοτήτων του πόρου R j που µπορεί να χρειαστεί η P i για να ολοκληρώσει την εργασία της: need [i,j] = max[i,j] allocation [i,j] Σελίδα 27

Αλγόριθµος Ασφάλειας 1. Έστω work and finish διανύσµατα µεγέθους m και n, όπου αρχικά: work[i] = available[i] για i = 1,2,, m finish[i] = false για i = 1,2,, n 2. Βρες ένα i τέτοιο ώστε: (a) finish[i] = false και (b) need [i,k] work[k] για k = 1,2,, m Αν δεν υπάρχει τέτοιο i, πήγαινε στο βήµα 4 3. work[k] = work[k] + allocation [i,k] για k = 1,2,, m finish[i] = true πήγαινε στο βήµα 2 4. Αν finish [i] = true για i = 1,2,, n, τότε το σύστηµα βρίσκεται σε ασφαλή κατάσταση Σελίδα 28

Αλγόριθµος Αίτησης Πόρων για τη ιεργασία P i 1. Έστω request πίνακας n x m, όπου request[i,j] το πλήθος των οντοτήτων του πόρου R j που αιτείται η P i 2. Αν request[i,k] need[i,k] για k = 1,2,, m, πήγαινε στο βήµα 3. Αλλιώς, δηµιουργία συνθήκης λάθους, αφού η διεργασία ξεπέρασε τα µέγιστα επιτρεπτά όρια διεκδίκησης πόρων 3. Αν request[i,k] available[k] για k = 1,2,, m, πήγαινε στο βήµα 4. Αλλιώς η P i πρέπει να περιµένει, διότι δεν υπάρχουν διαθέσιµοι πόροι Σελίδα 29

Αλγόριθµος Αίτησης Πόρων για τη ιεργασία P i (συνέχεια) 4. Προσποιούµαστε ότι αναθέτουµε στην P i τους πόρους που ζήτησε τροποποιώντας την τρέχουσα κατάσταση ως ακολούθως: available[k] = available[k] - request[i,k] για k = 1,2,, m; allocation[i,k] = allocation[i,k] + request[i,k] για k = 1,2,, m; need[i,k] = need[i,k] request [i,k] για k = 1,2,, m; Αν η κατάσταση είναι ασφαλής οιπόροιανατίθενταιστηνp i Αν η κατάσταση είναι µη ασφαλής η P i πρέπει να περιµένει, και ανακτάται η προηγούµενη κατάσταση ανάθεσης πόρων Σελίδα 30

Παράδειγµα Αλγόριθµου του Τραπεζίτη Έστω 5 διεργασίες P 0 έως P 4 και 3 είδη πόρων: A (10 οντότητες), B (5 οντότητες), και C (7 οντότητες). Στιγµιότυπο τη χρονική στιγµή T 0 : allocation max need available A B C A B C A B C A B C P 0 0 1 0 7 5 3 7 4 3 3 3 2 P 1 2 0 0 3 2 2 1 2 2 P 2 3 0 2 9 0 2 6 0 0 P 3 2 1 1 2 2 2 0 1 1 P 4 0 0 2 4 3 3 4 3 1 Το σύστηµα είναι σε ασφαλή κατάσταση µιας και η ακολουθία {P 1, P 3, P 4, P 2, P 0 } ικανοποιεί τα κριτήρια ασφάλειας Σελίδα 31

Παράδειγµα Αλγόριθµου του Τραπεζίτη: Αίτηση Ρ 1 (1,0,2) Έλεγχος request[1,k] need[1,k], δηλ. (1,0,2) (1,2,2) αληθές Έλεγχος request[1,k] available[k], δηλ. (1,0,2) (3,3,2) αληθές allocation max need available A B C A B C A B C A B C P 0 0 1 0 7 5 3 7 4 3 2 3 0 P 1 3 0 2 3 2 2 0 2 0 P 2 3 0 2 9 0 2 6 0 0 P 3 2 1 1 2 2 2 0 1 1 P 4 0 0 2 4 3 3 4 3 1 Η εκτέλεση του αλγόριθµου ασφάλειας δείχνει ότι η ακολουθία {P 1, P 3, P 4, P 0, P 2 } ικανοποιεί τις απαιτήσεις ασφάλειας Μπορεί να ικανοποιηθεί η αίτηση (3,3,0) της P 4 ; Η (0,2,0) της P 0 ; Σελίδα 32

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

Μια Οντότητα για Κάθε Πόρο Τήρηση γράφου αναµονής (wait-for) που προκύπτει από το γράφο ανάθεσης πόρων, αφαιρώντας τους κόµβους που αναπαριστούν πόρους Οι κόµβοι είναι µόνο διεργασίες P i P j αν η P i περιµένει την P j Περιοδικά, εκτελείται αλγόριθµος που ψάχνει για κύκλο στο γράφο Αυτό απαιτεί πλήθος πράξεων/λειτουργιών τάξης µεγέθους n 2, όπου n ο αριθµός των κόµβων του γράφου! Σελίδα 34

Γράφος Ανάθεσης Πόρων και Γράφος Αναµονής Γράφος ανάθεσης πόρων Γράφος αναµονής Σελίδα 35

Πολλαπλές Οντότητες Πόρων available: ιάνυσµα µήκους m, όπου available[j] το πλήθος των διαθέσιµων οντοτήτων του πόρου R j allocation: Πίνακας n x m, όπου allocation[i,j] το πλήθος των οντοτήτων κάθε τύπου που την τρέχουσα στιγµή κατέχειµια διεργασία request: Πίνακας n x m, όπου request[i,j] το πλήθος των επιπλέον οντοτήτων του πόρου R j που ζητά η διεργασία P i µε την τρέχουσα αίτησή της Σελίδα 36

Αλγόριθµος Ανίχνευσης 1. Έστω work και finish διανύσµατα µεγέθους m και n, όπου αρχικά: (α) work[i] = available[i] για i = 1,2,, m (β) finish[i] = false αν allocation[i,k] <> 0 για κάποιο k = 1,2,, m, αλλιώς finish[i] = true 2. Βρες ένα δείκτη i τέτοιο ώστε: (α) finish[i] = false και (β) request[i,k] work[k] για k = 1,2,, m Αν δεν υπάρχει τέτοιο i, πήγαινε στο βήµα 4 Σελίδα 37

Αλγόριθµος Ανίχνευσης (συνέχεια) 3. work[k] = work[k] + allocation[i,k] για k = 1,2,, m finish[i] = true πήγαινε στο βήµα 2 4. Αν finish[i] = false, για κάποιο i, 1 i n, τότε το σύστηµα είναι σε κατάσταση αδιεξόδου. Επιπρόσθετα, αν finish[i] = false, τότε η P i βρίσκεται σε αδιέξοδο Απαιτείται πλήθος πράξεων/λειτουργιών τάξης µεγέθους O(m x n 2 ) γιαναανιχνεύσειαντοσύστηµα είναισε κατάσταση αδιεξόδου! Σελίδα 38

Παράδειγµα Ανίχνευσης Αδιεξόδου Έστω 5 διεργασίες P 0 έως P 4, 3 πόροι A (7 οντότητες), B (2 οντότητες) και C (6 οντότητες). Στιγµιότυπο τη χρονική στιγµή T 0 : allocation request available A B C A B C A B C P 0 0 1 0 0 0 0 0 0 0 P 1 2 0 0 2 0 2 P 2 3 0 3 0 0 0 P 3 2 1 1 1 0 0 P 4 0 0 2 0 0 2 Η ακολουθία {P 0, P 2, P 3, P 1, P 4 } οδηγεί σε finish[i] = true για κάθε i Σελίδα 39

Παράδειγµα Ανίχνευσης Αδιεξόδου (συνέχεια) Η P 2 κάνει αίτηση για µια ακόµα οντότητα του πόρου C: allocation request available A B C A B C A B C P 0 0 1 0 0 0 0 0 0 0 P 1 2 0 0 2 0 2 P 2 3 0 3 0 0 1 P 3 2 1 1 1 0 0 P 4 0 0 2 0 0 2 Κατάσταση του συστήµατος; Μπορεί να επανακτήσει τους πόρους που κρατούνται από την P 0, αλλά δεν επαρκούν για τις αιτήσεις των άλλων διεργασιών Υπάρχει αδιέξοδο, που αποτελείται από τις P 1, P 2, P 3, και P 4 Σελίδα 40

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

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

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

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