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

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


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

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

Αδιέξοδα (Deadlocks)

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

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

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

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

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

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

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

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

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

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

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

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

ENOTHTA 4 A IEΞO O. Περιεχόµενα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Απαντήσεις. Απάντηση. Απάντηση

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

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

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

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

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

Αλγόριθµοι Εκτίµησης Καθυστέρησης και

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

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6)

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

Περιεχόμενα. Αδιέξοδο

Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει την αξιολόγηση των καταστάσεων του χώρου αναζήτησης.

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

Αλγόριθµοι CSPs Κώδικας. Μάθηµα Τεχνητής Νοηµοσύνης ΥΣ02 Χειµερινό εξάµηνο

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

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

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

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

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

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

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 3η Θεωρία Γραφηµάτων

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

m 1 min f = x ij 0 (8.4) b j (8.5) a i = 1

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

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

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

Περι-γράφοντας... βρόχους

ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ

Αλγόριθµοι Οπισθοδρόµησης

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

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Ψευδοκώδικας. November 7, 2011

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1)

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

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

ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ 11:00-14:00

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

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

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

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

Αλγόριθµοι και Πολυπλοκότητα

Άπληστοι Αλγόριθµοι. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Άπληστοι Αλγόριθµοι 1

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

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

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

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

Νήµατα. Πολύ σηµαντικό

4.4 Το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου

Εντολές της LOGO (MicroWorlds Pro)

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ Επιστήμη των Αποφάσεων, Διοικητική Επιστήμη

ΣΤΟΧΑΣΤΙΚΕΣ ΙΑ ΙΚΑΣΙΕΣ

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

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

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

Δείτε τώρα και πώς θα έπρεπε να ήταν το παραπάνω: Page 1

Ορισµός. (neighboring) καταστάσεων. ηλαδή στην περίπτωση αλυσίδας Markov. 1.2 ιαµόρφωση µοντέλου

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

ENOTHTA 8 IAXEIPIΣH KAI ΣYΣTHMATA APXEIΩN

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

Γραµµική Αλγεβρα Ι. Ενότητα: Εισαγωγικές Εννοιες. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών

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

x=l ηλαδή η ενέργεια είναι µία συνάρτηση της συνάρτησης . Στα µαθηµατικά, η συνάρτηση µίας συνάρτησης ονοµάζεται συναρτησιακό (functional).

Θεωρητικά Θέµατα. Ι. Θεωρία Οµάδων. x R y ή x R y ή x y(r) [x] R = { y X y R x } X. Μέρος Σχέσεις Ισοδυναµίας, ιαµερίσεις, και Πράξεις

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

. Μητρόπουλος Στερεό F 1 F 2 (2) (1)

ροµολόγηση πακέτων σε δίκτυα υπολογιστών

Transcript:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθηµα: Λειτουργικά Συστήµατα Ι Α ΙΕΞΟ Α ιδάσκων: Αν. Καθ. Κ. Λαµπρινουδάκης clam@unipi.gr 1 Α ΙΕΞΟ Α 2 1

ΠΟΡΟΙ Υπάρχουν δύο τύποι πόρων σε υπολογιστικά συστήµατα: Προεκτοπίσιµοι πόροι (preemptable resources): είναι οι πόροι που µπορούν να αποδεσµευτούν από τη διεργασία που τους κατέχει, χωρίς αρνητικές επιπτώσεις στο σύστηµα (π.χ. µνήµη) Μη-προεκτοπίσιµοι πόροι (non-preemptable resources): είναι οι πόροι που δε µπορούν να αποδεσµευτούν από τη διεργασία που τους κατέχει, χωρίς αρνητικές επιπτώσεις στο σύστηµα (π.χ. εκτυπωτής). Αδιέξοδα (deadlocks) συµβαίνουν µεταξύ διεργασιών µε µη προεκτοπίσιµους πόρους, αφού σε αιτήσεις για προεκτοπίσιµους πόρους το πρόβληµα επιλύεται µε ανακατανοµή των πόρων µεταξύ των διεργασιών. 3 Α ΙΕΞΟ Α Πότε έχουµε αδιέξοδο; Ένα σύνολο διεργασιών βρίσκεται σε αδιέξοδο (deadlock), αν κάθε διεργασία του συνόλου περιµένει ένα γεγονός που µόνο µια άλλη διεργασία του ίδιου συνόλου µπορεί να προκαλέσει. 4 2

Α ΙΕΞΟ Α Συνθήκες Αδιεξόδου Για να οδηγηθούµε σε αδιέξοδο πρέπει να ικανοποιούνται οπωσδήποτε και οι τέσσερις ακόλουθες συνθήκες: Συνθήκη αµοιβαίου αποκλεισµού: κάθε πόρος είτε είναι δεσµευµένος από µία διεργασία, είτε είναι διαθέσιµος. Συνθήκη δέσµευσης και αναµονής: διεργασίες που δεσµεύουν πόρους που τους εκχωρήθηκαν νωρίτερα, µπορούν να ζητούν και νέους. Συνθήκη µη προεκτόπισης:πόροι που έχουν εκχωρηθεί σε µια διεργασία µπορούν να αποµακρυνθούν από τον έλεγχό της, µόνον αν τους αποδεσµεύσει αυτή. Συνθήκη κυκλικής αναµονής: πρέπει να υπάρχει µια κυκλική αλυσίδα δύο ή περισσότερων διεργασιών, καθεµία από τις οποίες περιµένει έναν πόρο που είναι δεσµευµένος από το επόµενο µέλος της αλυσίδας. 5 Α ΙΕΞΟ Α Μοντελοποίηση Αδιεξόδου Οι αναγκαίες συνθήκες για την επίτευξη αδιεξόδου µπορούν να µοντελοποιηθούν µε χρήση κατευθυνόµενων γράφων. O πόρος R έχει αποδοθεί στην διαδικασία Α ιαδικασία B περιµένει για τον πόρο S Οι διαδικασίες C και D βρίσκονται σε αδιέξοδο 6 3

Α ΙΕΞΟ Α Οι γράφοι πόρων αποτελούν εργαλείο που µας επιτρέπει να εξετάσουµε αν µια συγκεκριµένη σειρά απαιτήσεων και αποδεσµεύσεων οδηγεί σε αδιέξοδο. 7 Α ΙΕΞΟ Α 8 4

Α ΙΕΞΟ Α 9 Α ΙΕΞΟ Α Για την αντιµετώπιση του προβλήµατος του αδιεξόδου χρησιµοποιούνται οι ακόλουθες στρατηγικές: Απλή αγνόηση του προβλήµατος (ignore the problem) Ανίχνευση και επανόρθωση (detection and recovery) υναµική αποφυγή µε προσεκτική κατανοµή πόρων (dynamic avoidance) Πρόληψη, µε συστηµατική αναίρεση µιας από τις τέσσερις αναγκαίες συνθήκες (prevention). 10 5

ΑΛΓΟΡΙΘΜΟΣ ΑΓΝΟΗΣΗΣ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ Η απλούστερη προσέγγιση είναι η αγνόηση του προβλήµατος, γνωστή ως αλγόριθµος της στρουθοκαµήλου (the ostrich algorithm). Για παράδειγµα, στο σύστηµα UNIX, αν µια κλήση FORK αποτύχει επειδή ο πίνακας διεργασιών είναι πλήρης, το πρόγραµµα που καλεί τη FORK περιµένει για τυχαίο χρονικό διάστηµα και ξαναπροσπαθεί. Εκτιµάται ότι η αγνόηση του προβλήµατος και η αποδοχή περιστασιακού αδιεξόδου είναι προτιµότερη από την ύπαρξη κανόνα περιορισµού. 11 Στα πλαίσια της στρατηγικής αυτής, το σύστηµα δε δρα προληπτικά, αλλά χρησιµοποιεί µηχανισµούς ανίχνευσης (detection) και ακολούθως επανόρθωσης (recovery) του προβλήµατος. 12 6

Ανίχνευση αδιεξόδου µε έναν πόρο από κάθε είδος Θεωρούµε συστήµατα µε έναν πόρο από κάθε είδος. Παράδειγµα αντίστοιχου πολύπλοκου συστήµατος περιγράφεται στο επόµενο σχήµα µε επτά διεργασίες και έξι πόρους. 13 Τ 14 7

Ο γράφος των πόρων και διεργασιών περιέχει έναν κύκλο, στον οποίο οπτικά φαίνεται ότι υπάρχει αδιέξοδο. Απαιτείται όµως τυπικός αλγόριθµος που θα ελέγχει την ύπαρξη κύκλων σε κατευθυνόµενους γράφους. 15 Ακολούθως περιγράφεται ένας απλός αλγόριθµος που εξετάζει γράφους και τερµατίζεται: είτε όταν εντοπίσει έναν κύκλο, είτε όταν αποδείξει ότι δεν υπάρχει κανένας κύκλος. [1] Για κάθε κόµβο Κ του γράφου εκτέλεσε τα 5 ακόλουθα βήµατα µε τον Κ ως αρχικό κόµβο. [2] Αρχικοποίησε τη Λ ως κενή λίστα και όλα τα τόξα ως ασηµάδευτα. 16 8

[3] Πρόσθεσε τον τρέχοντα κόµβο στο τέλος της Λ. Αν ο κόµβος εµφανίζεται τώρα στη λίστα δύο φορές, τότε ο γράφος περιέχει έναν κύκλο που περιέχεται στη Λ και ο αλγόριθµος τερµατίζεται. [4] Από τον τρέχοντα κόµβο, έλεγξε αν υπάρχουν ασηµάδευτα τόξα. Αν υπάρχουν πήγαινε στο βήµα 5. Αν δεν υπάρχουν, πήγαινε στο βήµα 6. [5] ιάλεξε τυχαία ένα ασηµάδευτο εξερχόµενο τόξο και σηµάδεψέ το. Ακολούθησέ το στο νέο τρέχοντα κόµβο και πήγαινε στο βήµα 3. [6] Τώρα έχουµε φτάσει σε έναν κόµβο χωρίς ασηµάδευτα εξερχόµενα τόξα. Πήγαινε πίσω στον προηγούµενο κόµβο, δηλαδή σε αυτόν που ήταν τρέχων προηγουµένως, κάνε τον τρέχοντα και πήγαινε στο βήµα 3. Αν ο κόµβος αυτός είναι ο αρχικός, τότε ο γράφος δεν περιέχει κύκλους και ο αλγόριθµος τερµατίζεται. 17 Ανίχνευση αδιεξόδου µε πολλούς πόρους από κάθε είδος Υποθέτουµε ότι έχουµε: ν διεργασίες, 1 έως ν µ κατηγορίες πόρων, µε E 1 πόρους κατηγορίας 1, E 2 πόρους κατηγορίας 2 και γενικά E i πόρους κατηγορίας i (1<= i <= µ). Το E καλείται διάνυσµα υπαρχόντων πόρων (existing resource vector) και εκφράζει το συνολικό αριθµό στιγµιότυπων κάθε πόρου. π.χ. αν η κατηγορία 1 είναι οι µονάδες ταινίας, τότε αν το σύστηµα έχει δύο µονάδες ταινίας γράφουµε E 1 =2. 18 9

A i είναι ο αριθµός των στιγµιότυπων του πόρου i- που είναι διαθέσιµα την τρέχουσα χρονική στιγµή. Με A συµβολίζουµε το διάνυσµα διαθέσιµων πόρων (available resource vector). π.χ. αν και οι δύο µονάδες ταινίας έχουν εκχωρηθεί, τότε A 1 =0. C ονοµάζεται πίνακας τρέχουσας κατανοµής (current allocation matrix) και η i-γραµµή του δείχνει πόσα στιγµιότυπα κάθε κατηγορίας πόρων είναι δεσµευµένα από τη διεργασία i τη στιγµή αυτή. π.χ. C iκ είναι ο αριθµός των στιγµιότυπων του κ-πόρου που είναι δεσµευµένα από τη διεργασία i την τρέχουσα χρονική στιγµή. R ονοµάζεται πίνακας αιτήσεων (request matrix) και η i- γραµµή του δείχνει πόσα στιγµιότυπα κάθε κατηγορίας πόρων αιτείται η διεργασία i τη στιγµή αυτή. π.χ. R iκ είναι ο αριθµός των στιγµιότυπων του κ-πόρου που αιτείται η i την τρέχουσα χρονική στιγµή. 19 20 10

Προφανώς, τα στιγµιότυπα του κ-πόρου που έχουν εκχωρηθεί, αν προστεθούν στα στιγµιότυπα που είναι διαθέσιµα, το αποτέλεσµα δίνει τον αριθµό των υπαρχόντων στιγµιότυπων αυτής της κατηγορίας πόρων. Άρα: ν Σ ( C iκ + A κ ) = E κ i=1 21 Όλες οι διεργασίες θεωρούνται αρχικά ασηµάδευτες. Καθώς ο αλγόριθµος εξελίσσεται σηµαδεύονται διαδοχικά όλες οι διεργασίες που µπορούν να συνεχίσουν την εκτέλεσή τους, δηλαδή αυτές που δε βρίσκονται σε αδιέξοδο. 22 11

Ο αλγόριθµος ανίχνευσης αδιεξόδου διατυπώνεται ως εξής: [1] Ψάξε για µία ασηµάδευτη διεργασία i για την οποία η i-στή γραµµή του πίνακα R είναι µικρότερη από τον πίνακα A. [2] Αν βρεθεί τέτοια διεργασία, πρόσθεσε την i-στή γραµµή του C στον R, σηµάδεψε τη διεργασία και πήγαινε πάλι στο πρώτο βήµα 1. [3] Αν δεν υπάρχει τέτοια διεργασία, ο αλγόριθµος τερµατίζεται. Η ολοκλήρωση του αλγορίθµου αφήνει ασηµάδευτες όλες τις διεργασίες που βρίσκονται σε αδιέξοδο. 23 24 12

0 0 Μετά το τέλος της διεργασίας 3: A = (2 2 2 0) 2 2 0 0 25 Το ερώτηµα που παραµένει είναι πότε πρέπει να γίνεται η ανίχνευση του πιθανού αδιεξόδου. Η ανίχνευση θα µπορούσε να γίνεται: κάθε φορά που γίνεται αίτηση χρήσης πόρου σε τακτά χρονικά διαστήµατα όταν η αξιοποίηση της CPU ελαττωθεί κάτω από κάποια τιµή κατωφλίου. Σε αδιέξοδο η χρήση της CPU είναι µικρή 26 13

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

Επανόρθωση µέσω εξάλειψης διεργασιών Ο κλασικότερος τρόπος είναι η εξάλειψη µιας ή περισσότερων διεργασιών. Η διεργασία αυτή µπορεί να είναι είτε εκτός κύκλου, είτε διεργασία του κύκλου. Σε κάθε περίπτωση προτιµούνται διεργασίες που µπορούν να επανεκτελεστούν χωρίς παρενέργειες. 29 ΑΠΟΦΥΓΗ Α ΙΕΞΟ ΟΥ Τροχιές πόρων Μέχρι τώρα έχουµε υποθέσει ότι όταν µια διεργασία ζητάει κάποιους πόρους τους ζητάει όλους µαζί. 30 15

ΑΠΟΦΥΓΗ Α ΙΕΞΟ ΟΥ Ασφαλείς και ανασφαλείς καταστάσεις Μια κατάσταση καλείται ασφαλής, αν το σύστηµα δε βρίσκεται σε αδιέξοδο και υπάρχει τρόπος να ικανοποιηθούν όλες οι εκκρεµείς αιτήσεις µε την εκτέλεση όλων των διεργασιών µε κάποια διαδοχή. 31 ΑΠΟΦΥΓΗ Α ΙΕΞΟ ΟΥ Μια ανασφαλής κατάσταση δεν είναι κατάσταση αδιεξόδου. Η διαφορά µεταξύ ασφαλούς και ανασφαλούς κατάστασης είναι ότι από την ασφαλή κατάσταση το σύστηµα µπορεί εγγυηµένα να εκτελέσει όλες τις διεργασίες µέχρι το τέλος τους, ενώ από την ανασφαλή κατάσταση δεν µπορεί να υπάρξει τέτοια διασφάλιση. 32 16

ΑΠΟΦΥΓΗ Α ΙΕΞΟ ΟΥ Ο Αλγόριθµος του Τραπεζίτη για πόρους ενός είδους Ο αλγόριθµος χρονοδροµολόγησης για την αποφυγή αδιεξόδων, είναι γνωστός ως αλγόριθµος του Dijkstra ή αλγόριθµος του τραπεζίτη. Ο αλγόριθµος του τραπεζίτη εξετάζει κάθε αίτηση όταν εµφανίζεται και ελέγχει αν η ικανοποίησή της οδηγεί σε ασφαλή κατάσταση. Αν ναι, τότε ικανοποιείται. Αν όχι αναβάλλεται γι' αργότερα. 33 ΑΠΟΦΥΓΗ Α ΙΕΞΟ ΟΥ Ασφαλής Ασφαλής Ανασφαλής 34 17

ΑΠΟΦΥΓΗ Α ΙΕΞΟ ΟΥ Ο Αλγόριθµος του Τραπεζίτη για πόρους πολλών ειδών 35 ΑΠΟΦΥΓΗ Α ΙΕΞΟ ΟΥ Για να αποφασίσει αν µια κατάσταση είναι ασφαλής, ο τραπεζίτης ελέγχει αν υπάρχουν αρκετοί πόροι για την ικανοποίηση κάποιου πελάτη. Αν συµβαίνει αυτό συνεχίζει για τον έλεγχο όλων των υπόλοιπων πελατών. Αν όλα τα δάνεια µπορούν να επιστραφούν, τότε η κατάσταση είναι ασφαλής και η αρχική αίτηση ικανοποιείται. 36 18

ΑΠΟΦΥΓΗ Α ΙΕΞΟ ΟΥ Ο αλγόριθµος που ελέγχει αν µια κατάσταση είναι ασφαλής είναι ο ακόλουθος: [1] Ψάξε για µια γραµµή, R, της οποίας οι επιπλέον απαιτήσεις σε πόρους είναι µικρότερες ή ίσες από A. Αν δεν υπάρχει τέτοια γραµµή, τότε το σύστηµα θα οδηγηθεί σε αδιέξοδο αφού δεν υπάρχει διεργασία που να µπορεί να εκτελεστεί µέχρι το τέλος της. [2] Θεώρησε ότι η διεργασία της γραµµής που βρέθηκε, ζητά όλους τους πόρους που χρειάζεται και εκτελείται µέχρι το τέλος της. Σηµάδεψε αυτή τη διεργασία ως τερµατισµένη και πρόσθεσε όλους τους πόρους της στο διάνυσµα Α. [3] Επανάλαβε τα βήµατα 1 και 2 µέχρι να σηµαδευτούν όλες οι διεργασίες ως τερµατισµένες, περίπτωση κατά την οποία η αρχική κατάσταση θεωρείται ασφαλής, ή µέχρι να εµφανιστεί αδιέξοδο, οπότε η αρχική κατάσταση θεωρείται ανασφαλής. 37 ΑΠΟΦΥΓΗ Α ΙΕΞΟ ΟΥ Στο προηγούµενο παράδειγµα η κατάσταση είναι??? Αποδεχόµαστε αίτηση του Β για έναν σαρωτή... Καταλήγουµε σε ασφαλή κατάσταση?? Αποδεχόµαστε επιπλέον αίτηση του Ε για ένα σαρωτή...καταλήγουµε σε ασφαλή κατάσταση??? Ο αλγόριθµος του τραπεζίτη είναι επαρκέστατος θεωρητικά για την αποφυγή αδιεξόδου. Στην πραγµατικότητα δε χρησιµοποιείται, αφού: οι διεργασίες σπανίως γνωρίζουν από πριν τις ανάγκες τους σε πόρους ο αριθµός των διεργασιών είναι µεταβαλλόµενος πόροι που θεωρούνται διαθέσιµοι µπορεί ξαφνικά να εξαλειφθούν. 38 19

ΠΡΟΛΗΨΗ Α ΙΕΞΟ ΟΥ Συνθήκη αµοιβαίου αποκλεισµού: κάθε πόρος είτε είναι δεσµευµένος από µία διεργασία, είτε είναι διαθέσιµος Αναίρεση της συνθήκης αµοιβαίου αποκλεισµού Προφανώς δε θα έχουµε ποτέ αδιέξοδο, αν κανένας πόρος δεν εκχωρηθεί αποκλειστικά σε µία µόνο διεργασία Το παράδειγµα όµως, του ετεροχρονιστή εκτύπωσης, µε τη µόνη διεργασία που ζητά το φυσικό εκτυπωτή να είναι ο δαίµονας του εκτυπωτή (printer daemon), δεν είναι εύκολο να ακολουθηθεί και αλλού. 39 ΠΡΟΛΗΨΗ Α ΙΕΞΟ ΟΥ Συνθήκη δέσµευσης και αναµονής: διεργασίες που δεσµεύουν πόρους που τους εκχωρήθηκαν νωρίτερα, µπορούν να ζητούν και νέους Αναίρεση της συνθήκης δέσµευσης και αναµονής Για να αποτρέψουµε τις διεργασίες από τη δέσµευση των πόρων που κατέχουν όσο περιµένουν άλλους, θα µπορούσαµε να υποχρεώνουµε τις διεργασίες να ζητούν προκαταβολικά όλους τους πόρους που θα θελήσουν. Οι διεργασίες όµως δε γνωρίζουν πόσους πόρους θα χρειασθούν πριν την έναρξη της εκτέλεσής τους. Θα µπορούσαµε, βεβαίως, να υποχρεώνουµε τη διεργασία που ζητά έναν πόρο να απελευθερώνει προσωρινά όλους τους πόρους που κατέχει και να προσπαθεί να τους ξαναπάρει όλους µαζί πίσω. 40 20

ΠΡΟΛΗΨΗ Α ΙΕΞΟ ΟΥ Συνθήκη µη προεκχώρησης: πόροι που έχουν εκχωρηθεί σε µια διεργασία µπορούν να αποµακρυνθούν από τον έλεγχό της, µόνον αν τους αποδεσµεύσει αυτή. Αναίρεση της συνθήκης µη προεκχώρησης Είναι περίπτωση συνήθως αδύνατη να υλοποιηθεί. Θεωρείστε µια διεργασία που έχει δεσµεύσει τον εκτυπωτή Είναι στο ενδιάµεσο της εκτύπωσης Τι θα προκαλέσει η αποδέσµευση του εκτυπωτή; 41 ΠΡΟΛΗΨΗ Α ΙΕΞΟ ΟΥ Συνθήκη κυκλικής αναµονής: πρέπει να υπάρχει µια κυκλική αλυσίδα δύο ή περισσότερων διεργασιών, καθεµία από τις οποίες περιµένει έναν πόρο που είναι δεσµευµένος από το επόµενο µέλος της αλυσίδας. Αναίρεση της συνθήκης κυκλικής αναµονής Θα µπορούσαµε να πετύχουµε αναίρεση της κυκλικής αναµονής µε τους εξής τρόπους: Με την ύπαρξη κανόνα που να υποχρεώνει τις διεργασίες στη δέσµευση ενός µόνον πόρου κάθε χρονική στιγµή, οπότε αν χρειασθεί και δεύτερο θα πρέπει να αποδεσµεύει τον πρώτο (δεν είναι πάντα εφικτό) Με τη γενική απαρίθµηση όλων των πόρων. Στην περίπτωση αυτή ο κανόνας είναι: οι διεργασίες µπορούν να ζητούν πόρους όποτε επιθυµούν, αλλά όλες οι αιτήσεις πρέπει να γίνονται µε συγκεκριµένη αριθµητική σειρά. 42 21

ΠΡΟΛΗΨΗ Α ΙΕΞΟ ΟΥ Συνοπτικά, οι προσεγγίσεις πρόληψης αδιεξόδων περιγράφεται στο ακόλουθο σχήµα Συνθήκη Αµοιβαίος Αποκλεισµός έσµευση & Αναµονή Μη προεκχώρηση Κυκλική Αναµονή Προσέγγιση Ετεροχρονισµός Αρχική ζήτηση όλων των πόρων Αποµάκρυνση των πόρων Απαρίθµηση των πόρων 43 22