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

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

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

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

Αδιέξοδα (Deadlocks)

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

Μάθημα 8: Διαχείριση Μνήμης

Asset Management Software Client Module. Οδηγός χρήσης

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

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

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

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

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

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

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

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

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

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

Διαχείριση E/E (I/O management)

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

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

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

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

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

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

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

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

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

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

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

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

Σχεδίαση Γλωσσών Προγραμματισμού. Εαρινό Εξάμηνο Lec03 18/02/2019

Διάλεξη 13: Κατανεμημένη Κοινόχρηστη Μνήμη. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κεφ.11: Ευρετήρια και Κατακερματισμός

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

Transcript:

Παράδειγμα 1 Ένα σύστημα με έναν εκτυπωτή και ένα σαρωτή εγγράφων Δύο διεργασίες Ρ1 και Ρ2 Η Ρ1 δεσμεύει τον εκτυπωτή Η Ρ2 δεσμεύει το σαρωτή Η Ρ1 ζητά το σαρωτή και εμποδίζεται Η Ρ2 ζητά τον εκτυπωτή και εμποδίζεται Θανάσιμο αγκάλιασμα (deadly embrace) (Deadlocks) 1

Παράδειγμα 2 Έστω A και B δύο δυαδικοί σηματοφορείς με αρχική τιμή 1 process P1; {... wait(a); wait(b);... } process P2; {... wait(b); wait(a);... } Κάθε μία από τις διεργασίες ενός συνόλου περιμένει για ένα γεγονός ή συμβάν (event) που μπορεί να προκληθεί μόνο από μία άλλη διεργασία του συνόλου Οι διεργασίες ενός συνόλου εμποδίζουν η μία τη άλλη Γεγονός/Συμβάν = (συνήθως) απελευθέρωση πόρου 2

Ένα σύνολο διεργασιών P = {P1, P2,, Pn} Ένα σύνολο τύπων πόρων R = {R1, R2,, Rm} Κάθε τύπος πόρων Ri έχει Wi ίδιες μονάδες Διαδοχικά επαναχρησιμοποιήσιμοι ή μόνιμοι πόροι (serially reusable ή permanent resources) Wi: σταθερό, πεπερασμένο Διακρίνονται σε: Πόρους μιας χρήσης (single-use resources), π.χ. KME, συσκευές ε/ε Πόροι πολλαπλής χρήσης (multiple-use resources), π.χ. μνήμη, δίσκος Αναλώσιμοι ή προσωρινοί πόροι (consumable or temporary resources) Wi: μεταβάλλεται, όχι απαραίτητα πεπερασμένο Μία διεργασία (παραγωγός) δημιουργεί μονάδες Μία διεργασία (καταναλωτής) δεσμεύει μονάδες Οι μονάδες που δεσμεύονται δεν επιστρέφονται Υλισμικό: διακοπές ε/ε και χρονομέτρου Λογισμικό: σηματοφορείς, μηνύματα Χρήση πόρου από μία εκτελούμενη διεργασία (Απ)αίτηση (Request) Χρήση (Use) Αποδέσμευση (Release) 3

Γράφος πόρων (resource graph/wait For Graph, WFG) (a) ο πόρος R έχει εκχωρηθεί (δεσμευθεί) στη (από τη) διεργασία Α (b) Η διεργασία Β ζητά τον πόρο S (c) Αδιέξοδο (διεργασίες C και D, πόροι T και U) Καμία από τις διεργασίες δεν μπορεί να συνεχίσει να απελευθερώσει κάποιον πόρο να αφυπνίσει κάποια άλλη διεργασία 4

Συνθήκες Coffman Αναγκαίες συνθήκες για να συμβεί αδιέξοδο Αμοιβαίος αποκλεισμός (mutual exclusion) Οι πόροι δεν είναι (κατά)μεριζόμενοι Ένας πόρος μπορεί σε κάποια χρονική στιγμή να αποκτηθεί από μια διεργασία Ένας πόρος είτε είναι διαθέσιμος είτε είναι δεσμευμένος Μη διακοπτόμενη χρήση πόρων (non-preemption) Ένας πόρος δεν μπορεί να αποσπαστεί από τη διεργασία που τον κατέχει Μόνο η διεργασία αυτή μπορεί να τον ελευθερώσει Μερική καταχώριση ή δέσμευση και αναμονή (partial allocation or Hold and wait) Όλες οι διεργασίες μπορούν να ζητήσουν πόρους Οι διεργασίες που έχουν αποκτήσει πόρους μπορούν να ζητήσουν νέους πόρους Οι διεργασίες αποκτούν/ζητούν τους πόρους σταδιακά Κυκλική αναμονή (circular waiting) Οι διεργασίες περιμένουν η μία τη άλλη να ελευθερώσει τους πόρους που χρειάζονται 5

ΑΝΤΙΜΕΤΩΠΙΣΗ ΑΔΙΕΞΟΔΩΝ Έγκριση αδιεξόδων (deadlock allowance) - Αγνοούμε το πρόβλημα Ανακάλυψη και επανόρθωση αδιεξόδων (deadlock detection and recovery) - To σύστημα επιτρέπεται να φθάσει σε αδιέξοδο - Αλγόριθμος ανακάλυψης - Μηχανισμός επανόρθωσης - Χρήση γράφου πόρων Αποφυγή αδιεξόδων (deadlock avoidance) - Για να παραχωρηθεί ένας πόρος ένας αλγόριθμος ελέγχει αν η παραχώρηση αυτή μπορεί να οδηγήσει σε αδιέξοδο Μόνιμοι πόροι Ελεγχόμενη καταχώριση (controlled allocation) Αναλώσιμοι πόροι Ιεραρχικά συστήματα (Hierarchical systems) Πρόληψη αδιεξόδων (deadlock prevention) ΔΕΝ ισχύει μία από τις τέσσερις συνθήκες του Coffman 6

Έγκριση αδιεξόδων (deadlock allowance) Αγνοούμε το πρόβλημα Ο χρήστης/χειριστής τα διαπιστώνει και τα επανορθώνει Διαγραφή διεργασιών Επανεκκίνηση του συστήματος (reboot) Συμβιβασμός ανάμεσα στη συχνότητα εμφάνισης και στο κόστος αντιμετώπισης Λογική επιλογή αν τα αδιέξοδα συμβαίνουν σπάνια το κόστος αντιμετώπισης τους δεν είναι μεγάλο UNIX και WINDOWS ακολουθούν την προσέγγιση αυτή Συμβιβασμός ανάμεσα στην ευκολία υλοποίησης και στην ορθότητα του Λ.Σ. 7

Ανακάλυψη και επανόρθωση αδιεξόδων (deadlock detection and recovery) Πόροι Διακοπτόμενοι (preemptive), π.χ. μνήμη Μη διακοπτόμενοι (non-preemptive), π.χ. εκτυπωτής Μια μονάδα κάθε τύπου πόρου Χρήση του γράφου πόρων Κύκλος = αδιέξοδο Αλγόριθμος ανακάλυψης κύκλου σε γράφο n κόμβων n = αριθμός διεργασιών Πολυπλοκότητα O(n 2 ) Περιοδική εκτέλεση Πολλές μονάδες κάθε τύπου πόρου Χρήση του γράφου πόρων Κύκλος υποδεικνύει πιθανό αδιέξοδο 8

Ανακάλυψη και επανόρθωση αδιεξόδων (deadlock detection and recovery) Επανόρθωση (Recovery) Διαγραφή (killing) διεργασιών Όλων των διεργασιών που εμπλέκονται στο αδιέξοδο (στον κύκλο) Σταδιακή διαγραφή διεργασιών διαγραφή μιας τυχαίας διεργασίας στον κύκλο επιλογή μιας διεργασίας του κύκλου με κριτήρια απελευθέρωση πόρων ώστε κάποια άλλη/ες διεργασίες να συνεχίσει/ουν την εκτέλεσή της/τους ελαχιστοποίηση χρήσης πόρων από τη διεργασία μέχρι τη διαγραφή της Οπισθοδρόμηση (Rollback) Περιοδική αποθήκευση σε αρχεία (κατάσταση διεργασίας + πόροι) σε κάθε σημείο ελέγχου (checkpoint) Αριθμός σημείων ελέγχου Επιλογή διεργασίας που κατέχει κάποιον πόρο Οπισθοδρόμησή της σ' ένα σημείο ελέγχου προτού αποκτήσει τον πόρο Ο πόρος μπορεί τώρα να δοθεί σε άλλη διεργασία 9

Ανακάλυψη και επανόρθωση αδιεξόδων Διακοπή χρήσης πόρων (Preemption) Απόσπαση ενός πόρου από μια διεργασία και παραχώρηση του σε κάποια άλλη ΠΡΟΒΛΗΜΑΤΑ Χρόνος Ανακάλυψη αδιεξόδου Επανόρθωση αδιεξόδου Οι πόροι που θα ζητηθούν δεν είναι γενικά γνωστοί Οι πόροι δε ζητούνται όλοι μαζί Πιθανότητα υποσιτισμού (starvation) 10

Αποφυγή αδιεξόδων (deadlock avoidance) Ανακάλυψη αδιεξόδων: υποθέσαμε ότι μια διεργασία ζητά όλους τους πόρους μαζί ΑΛΛΑ οι πόροι μπορεί να ζητούνται σταδιακά ΙΔΕΑ ΑΠΟΦΥΓΗΣ: ένας πόρος παραχωρείται μόνο αν η παραχώρησή του είναι ασφαλής (δεν πρόκειται να οδηγήσει σε αδιέξοδο) ΑΣΦΑΛΗΣ ΚΑΤΑΣΤΑΣΗ Δεν υπάρχει αδιέξοδο Υπάρχει τρόπος να ικανοποιηθούν όλες οι εκκρεμείς απαιτήσεις χωρίς να οδηγηθούμε σε αδιέξοδο 11

Αποφυγή αδιεξόδων Πρόβλημα του τραπεζίτη (banker's problem) [Dijkstra] Τραπεζίτης = Λ.Σ. Πελάτες = Διεργασίες Χρήματα = Πόροι Δάνεια = Απαιτήσεις (η συνολική απαίτηση ικανοποιείται σταδιακά) Ασφαλής κατάσταση = ο τραπεζίτης μπορεί να εξυπηρετήσει τη συνολική απαίτηση ενός τουλάχιστον πελάτη Αλγόριθμος τραπεζίτη (γενικά) εξέτασε κάθε (απ)αίτηση όταν αυτή συμβαίνει; εξέτασε αν η ικανοποίησή της οδηγεί σε ασφαλή κατάσταση; αν ναι τότε ικανοποίησε την (απ)αίτηση αλλιώς ανάβαλε την ικανοποίησή της; 12

Αποφυγή αδιεξόδων ΠΡΟΒΛΗΜΑΤΑ Αλγόριθμοι μεγίστης απαίτησης (maximum claim algorithms) Συντηρητικοί (conservative) αλγόριθμοι Σε μια συγκεκριμένη κατάσταση ελέγχουνε τη χειρότερη περίπτωση, δηλαδή ότι Κάποια στιγμή μπορεί όλες οι διεργασίες να ζητήσουν ταυτόχρονα όλες τις μονάδες που χρειάζονται ακόμη Καμιά μονάδα ενός δεσμευμένου πόρου δε θα έχει απελευθερωθεί μέχρι τότε Δέσμευση πόρων χωρίς λόγο Χρονοβόρα εκτέλεση Οι απαιτήσεις των διεργασιών δεν είναι προκαταβολικά γνωστές 13

Πρόληψη αδιεξόδων (deadlock prevention) Mία από τις τέσσερις συνθήκες Coffman ΔΕΝ ισχύει 1. ΟΧΙ Αμοιβαίος αποκλεισμός Παράδειγμα : αρχεία ανάγνωσης μόνο (read only files) Πολλές διεργασίες μπορούν αποκτήσουν ταυτόχρονη πρόσβαση σ' αυτά ΑΛΛΑ γενικά Δεν είναι δυνατό όλοι οι πόροι να καταμερίζονται π.χ. εκτυπωτής αρχείο που ενημερώνεται Ένας διαχειριστής/παρακολουθητής ανά πόρο Πιθανότητα αυτοί να εμποδίσουν ο ένας τον άλλον 2. Διακοπτόμενη χρήση πόρων Ένας πόρος αποσπάται από τη διεργασία που τον κατέχει Διακοπτόμενοι (preemptive) πόροι KME: εύκολα Μνήμη: σχετικά δύσκολα, πρόβλημα αλωνίσματος (thrashing) ΑΛΛΑ Οι περισσότεροι πόροι είναι ΜΗ διακοπτόμενοι π.χ. εκτυπωτής, αρχείο που ενημερώνεται Σπατάλη χρόνου (διακοπή - επαναφορά) 14

Πρόληψη αδιεξόδων Mία από τις τέσσερις συνθήκες Coffman ΔΕΝ ισχύει 3. ΟΧΙ Μερική καταχώριση πόρων 1) Μία ΜΟΝΟ διεργασία αποκτά πόρους όχι ταυτόχρονες διεργασίες! 2) Προκαταβολική δέσμευση ΟΛΩΝ των πόρων που πιθανόν θα χρειαστεί μια διεργασία κατά την ενεργοποίησή της αν οι πόροι είναι διαθέσιμοι η διεργασία τους αποκτά και συνεχίζει, αλλιώς περιμένει μια διεργασία ΕΙΤΕ κατέχει πόρους ΕΙΤΕ περιμένει π.χ. συσκευές ε/ε στο σύστημα ΙΒΜ ΟS/360 ΑΛΛΑ Οι πόροι που θα ζητηθούν ΔΕΝ είναι γνωστοί προκαταβολικά Οι διεργασίες περιμένουν μέχρις είναι ότου είναι διαθέσιμοι όλοι οι πόροι που πιθανώς θα χρησιμοποιήσουν χαμηλή χρήση πόρων (resource utilization) πιθανός υποσιτισμός 15

Πρόληψη αδιεξόδων Mία από τις τέσσερις συνθήκες Coffman ΔΕΝ ισχύει 4. OXI Κυκλική αναμονή Διατεταγμένη καταχώρηση πόρων (ordered resource allocation) Οι τύποι των πόρων διατάσσονται σε τάξεις R1, R2, R3,, Rm Mία διεργασία μπορεί να απαιτήσει πόρους μόνο σε αύξουσα σειρά της διάταξης αν έχει δεσμεύσει πόρους τάξης Ri μπορεί να απαιτήσει μόνο πόρους τάξεων Rj > Ri Όλες οι μονάδες ίδιου τύπου πόρου ζητούνται μαζί Έστω π ο "μεγαλύτερος" δεσμευμένος πόρος και έστω δ η διεργασία η οποία τον δεσμεύει Η διεργασία δεν μπορεί να ζητήσει κάποιο πόρο π' π Η διεργασία είτε θα τελειώσει και θα ελευθερώσει τον π, είτε θα δεσμεύσει κάποιο πόρο π'' > π Η διεργασία (κάποτε) θα τελειώσει και θα ελευθερώσει τους πόρους που έχει δεσμεύσει κ.ο.κ. ΘΕΩΡΗΜΑ Δεν μπορεί να συμβεί αδιέξοδο σ' ένα σύστημα που χρησιμοποιεί διατεταγμένη καταχώρηση πόρων (τυπική απόδειξη με επαγωγή στη σειρά διάταξης). 16

ΣΥΜΠΕΡΑΣΜΑΤΑ Αντιμετώπιση αδιεξόδων Έγκριση αδιεξόδων Ανακάλυψη και επανόρθωση αδιεξόδων Αποφυγή αδιεξόδων Πρόληψη αδιεξόδων Προβλήματα σε όλες τις περιπτώσεις UNIX, Windows Έγκριση αδιεξόδων Πρόληψη αδιεξόδων διακοπτόμενη χρήση ΚΜΕ και μνήμης 17