Αδιέξοδα Ανάθεση Πόρων (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Β

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ιαµέριση - Partitioning

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βασικές Δομές μοντέλων Petri Nets. C.A. Petri

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

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

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

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

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

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

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

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

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

Transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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