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

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

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


Αδιέξοδα (Deadlocks)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

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

Κατανεμημένες δοσοληψίες

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

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

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

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

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

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

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

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

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

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

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

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

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

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

Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1

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

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

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

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

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

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

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

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

Σύστημα Διαμοιρασμού Βιβλιογραφικών Αναφορών. Κοντοτάσιου Ιωάννα ΑΜ 3125 Μπέσσας Απόστολος ΑΜ 3171

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

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

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

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

Διακριτά Μαθηματικά. Απαρίθμηση. Βασικές τεχνικές απαρίθμησης Αρχή Περιστεριώνα

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

Διακριτά Μαθηματικά. Απαρίθμηση: Εισαγωγικά στοιχεία Αρχή του Περιστεριώνα

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

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

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

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

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

Transcript:

Λειτουργικά Συστήματα (Λ/Σ) Αδιέξοδα Βασίλης Σακκάς 22/1/2014 1

Εισαγωγή Πόροι Ένα σύνολο διεργασιών βρίσκεται σε αδιέξοδο (deadlock) αν κάθε διεργασία του συνόλου περιμένει ένα γεγονός που μόνο μια άλλη διεργασία του συνόλου μπορεί να προκαλέσει. (Tanenbaum) Τα αδιέξοδα δημιουργούνται ως αποτέλεσμα της διαχείρισης των πόρων από τις διαδικασίες. Κάθε πόρος (resource) μπορεί να είναι προεκχωρήσιμος (preemptable) δηλαδή να αποδεσμευτεί από μια διεργασία που τον κατέχει χωρίς παρενέργιες ή μη προεκχωρήσιμος (nonpreemptable). Παραδείγματα της πρώτης κατηγορίας είναι ο δίσκος και η μνήμη. Παραδείγματα της δεύτερης κατηγορίας είναι ο εκτυπωτής και η μονάδα ταινίας. Τυπικά μια διεργασία χρησιμοποιεί έναν πόρο ως εξής: Ζητά τον πόρο από το λειτουργικό σύστημα (αίτηση χρήσης). Χρησιμοποιεί τον πόρο. Ενημερώνει το λειτουργικό σύστημα ότι δε χρειάζεται άλλο τον πόρο (αποδέσμευση). Η διαδικασία της αίτησης και η αντιμετώπιση αιτήσεων που δεν μπορούν να καλυφθούν εξαρτώνται από το λειτουργικό σύστημα. 2

Εισαγωγή Αναγκαίες Συνθήκες για Αδιέξοδο Οι επόμενες 4 συνθήκες πρέπει να ισχύουν για να δημιουργηθεί ένα deadlock: Οι παρακάτω συνθήκες πρέπει να ικανοποιούνται για να δημιουργηθεί αδιέξοδο: Αμοιβαίος αποκλεισμός Κάθε πόρος είναι δεσμευμένος ή διαθέσιμος. έσμευση και αναμονή ιεργασίες που δεσμεύουν πόρους μπορούν να ζητούν και νέους. Μη προεκχώρηση Μόνο η διεργασία που έχει δεσμεύσει τους πόρους μπορεί να τους αποδεσμεύσει. Κυκλική αναμονή Οι διαδικασίες που ζητούν πόρους πρέπει να σχηματίζουν κύκλο. 3

Μοντέλα Αδιεξόδων : Με βάση την τελευταία συνθήκη τα αδιέξοδα μοντελοποιούνται ως κατευθυνόμενοι γράφοι με κόμβους τις διεργασίες και τους πόρους. Ακμή από διεργασία σε πόρο σημαίνει πως η διεργασία περιμένει να ελευθερωθεί ο πόρος αυτός. Ακμή από πόρο σε διεργασία σημαίνει πως ο πόρος είναι δεσμευμένος από την αντίστοιχη διεργασία. ημιουργείται ένας κατευθυνόμενος γράφος. Κόμβοι του γράφου είναι οι διεργασίες και οι πόροι. ΗακμήP R σημαίνει ότι η διεργασία P περιμένει για τον πόρο R. ΗακμήR P σημαίνει ότι η διεργασία P κατέχει τον πόρο R. Στο σύστημα υπάρχει deadlock εάν και μόνο εάν ο κατευθυνόμενος γράφος περιέχει ένα κύκλο! Έτσι, το σύστημα μπορεί να χρησιμοποιεί ένα τέτοιο γράφο και ένα αλγόριθμο ανίχνευσης κύκλων για να ανιχνεύει deadlock. 4

Μοντέλα Αδιεξόδων Γράφοι κατανομής πόρων. (a) Η διεργασία Α κατέχει (δεσμεύει) τον πόρο R. (b) Η διεργασία B ζητά (αναμένει) τον πόρο S. (c) Αδιέξοδο: Η διεργασία C ζητά τον πόρο T που δεσμεύεται από τη διεργασία D που ζητά τον πόρο U που δεσμεύεται από τη διεργασία C. 5

Γενικές Λύσεις Υπάρχουν 4 γενικές στρατηγικές για την αντιμετώπιση του προβλήματος: Στρουθοκαμηλισμός: Κάνε τίποτα. Αποφυγή deadlock (προσέχεις πότε δίνονται οι πόροι στις διεργασίες) Ανίχνευση και ανάνηψη (χρήση του γράφου). Πρόληψη (σιγουρεύει ότι μια από τις 4 αναγκαίες συνθήκες δεν μπορεί να ισχύσει). Στρουθοκαμηλισμός: Η αντιμετώπιση του προβλήματος των αδιεξόδων «κοστίζει» ακριβά. Γι αυτό, πολλά Λ/Σ. επιλέγουν να μην αντιμετωπίζουν καθόλου το πρόβλημα - ούτε καν ανίχνευση!!! Καθιστούν έτσι υπεύθυνες τις εφαρμογές για τη λύση του προβλήματος. Το UNIX ανήκει σ' αυτή την κατηγορία. 6

Αποφυγή Αδιεξόδων Η αποφυγή του αδιεξόδου βασίζεται στη συντηρητική ικανοποίηση των αιτήσεων για πόρους με στόχο το σύστημα πάντα να βρίσκεται σε μια ασφαλή κατάσταση κατά την οποία δεν μπορεί να υπάρξει αδιέξοδο. Αιτήσεις που οδηγούν σε μη ασφαλείς καταστάσεις δεν ικανοποιούνται. Ας υποθέσουμε ότι για κάθε διεργασία, όταν αυτή αρχίζει, το σύστημα γνωρίζει τον μέγιστο αριθμό και τον τύπο κάθε πόρου που θα χρειαστεί η διεργασία. Ο γνωστός «Banker's algorithm» μπορεί να χρησιμοποιηθεί τότε. Βασίζεται στην έννοια των safe states (ασφαλών καταστάσεων). Ένα σύστημα βρίσκεται σ' ένα safe state αν: δεν υπάρχει deadlock, και υπάρχει τρόπος ικανοποίησης των αιτημάτων για πόρους με το να εξυπηρετηθούν οι αιτήσεις των διεργασιών (με όποια σειρά). 7

Αποφυγή Αδιεξόδων Παράδειγμα: Έχει Max P1 3 9 P2 2 4 P3 2 7 Ελεύθεροι πόροι: 3 Αυτό αντιπροσωπεύει μια ασφαλή κατάσταση γιατί: μπορούμε να δώσουμε 2 (απ' τους 3) ελεύθερους πόρους στο P2. όταν τελειώσει θα έχουμε 5 ελεύθερα resources που τα δίνουμε στο P3 και όταν τελειώσει δίνουμε 6 resources στο P1 και έτσι όλα τελειώνουν χωρίς deadlock. Αν τώρα το P1 κατείχε 4 (αντί για 3) πόρους το σύστημα δεν θα ήταν σε ασφαλή κατάσταση. Γιατί; 8

Ο αλγόριθμος του τραπεζίτη (Banker's algorithm) Για κάθε αίτηση για έναν πόρο: Εξέτασε, αν δινόταν ο πόρος, αν το σύστημα θα είναι σ' ένα ασφαλή κατάσταση: Αν ναι, τότε δώσε τον πόρο Αν όχι, τότε δεν δίνεται Για να ελεγχθεί αν το σύστημα είναι σε ασφαλή κατάσταση: εξετάζεται το: αν δοθούν οι ελεύθεροι πόροι σε κάποιο process, τότε καλύπτονται οι ανάγκες τoυ; Αν υπάρχει κάποιo τέτοιο process, τότε αυτό το process θεωρείται ότι τελείωσε (ελευθερώνοντας πόρους). Μετά, επαναλαμβάνεται η παραπάνω διαδικασία και αν όλες οι διεργασίες θεωρηθούν τελειωμένες, τότε το σύστημα είναι σε safe state. Αλλιώς, το σύστημα είναι σε unsafe state. 9

Ανίχνευση και Ανάνηψη Η ανίχνευση των αδιεξόδων μπορεί να γίνει με έρευνα του γράφου των αδιεξόδων για κύκλους. Αφού ανιχνευθεί το αδιέξοδο η επανόρθωση μπορεί να γίνει με τους παρακάτω τρόπους: Προεκχώρηση του πόρου Οπισθοδρόμηση της διεργασίας σε προηγούμενο σημείο ελέγχου (checkpoint) Εξάλειψη κάποιων διεργασιών Η ανάνηψη μπορεί να βασισθεί (και συνήθως βασίζεται) στον τερματισμό (killing) μερικών διεργασιών. Η επιλογή της διεργασίας-θύματος: μπορεί να γίνει ανάμεσα στις διεργασίες που συμμετέχουν στο αδιέξοδο. (Τα κριτήρια που χρησιμοποιούνται συνήθως είναι, η ηλικία ή ο αριθμός πόρων που κατέχει, κ.λπ). ή μπορεί να γίνει ανάμεσα και σε άλλες διεργασίες π.χ. μπορεί να τερματισθεί μια "μεγάλη" διεργασία που κατέχει πολλά resources για τα οποία περιμένει κάποια διεργασία που είναι σε αδιέξοδο. 10

Πρόληψη Αδιεξόδων Η αναίρεση μιας τουλάχιστον από τις συνθήκες του αδιεξόδου εξασφαλίζει ότι δε θα υπάρχουν αδιέξοδα. Αμοιβαίος αποκλεισμός (Κάθε πόρος είναι δεσμευμένος ή διαθέσιμος.) Αποφεύγεται η χρήση δεσμευμένων πόρων π.χ. με τη χρήση ετεροχρονισμού. έσμευση και αναμονή ( ιεργασίες που δεσμεύουν πόρους μπορούν να ζητούν και νέους.) Κάθε διεργασία ζητά από την αρχή τους πόρους που χρειάζεται. Μη προεκχώρηση (Μόνο η διεργασία που έχει δεσμεύσει τους πόρους μπορεί να τους αποδεσμεύσει.) ύσκολο πρακτικά να αναιρεθεί. Κυκλική αναμονή (Οι διαδικασίες που ζητούν πόρους πρέπει να σχηματίζουν κύκλο.) Αίτηση για πόρους σύμφωνα με την απαρίθμησή τους. 11