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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Λειτουργικό Σύστημα (Operating System) 1o μέρος
Advertisements

ΜΑΘΗΜΑΤΙΚΑ ΚΑΤΕΥΘΥΝΣΗΣ
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Η επιστήμη των υπολογιστών
Λειτουργικά Συστήματα
Λειτουργικό Σύστημα 2ο μέρος.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ζητήματα Σελιδοποίησης
Λογισμικο συστηματοσ Κεφάλαιο 4ο
Κλασσικά Προβλήματα Επικοινωνίας Σύνδρομων Διεργασιών
Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA.
Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου:
Αδιέξοδα (Deadlocks).
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
6. Αδιέξοδο Ορισμοί – είδη πόρων Γράφοι εκχώρησης πόρων
Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 Παράλληλος Προγραμματισμός.
Λειτουργικά Συστήματα ΑΔΙΕΞΟΔΑ. 3.1 Εισαγωγή  Αδιέξοδο = ένα σύνολο από διεργασίες που δημιουργούν μια κυκλική αλυσίδα όπου κάθε process στην αλυσίδα.
Ενότητα Η Δομή Επανάληψης
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Αδιέξοδο Μόνιμο μπλοκάρισμα ενός συνόλου διεργασιών που είτε συναγωνίζονται για πόρους του συστήματος είτε επικοινωνούν μεταξύ τους Δεν υπάρχει αποδοτική.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΝΟΙΑ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης
Κατανεμημένα Συστήματα με Java Ενότητα # 3: Καθολικά κατηγορήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής.
Κατανεμημένα Συστήματα με Java Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής.
Κατανεμημένα Συστήματα με Java Ενότητα # 5: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής.
Βάσεις Δεδομένων II Ενότητα 7: Ταυτοχρονισμός Γεωργία Γκαράνη
Πρωτόκολλο αμοιβαίου αποκλεισμού (mutual exclusion) για δύο διεργασίες-CPN Tools Νάνος Λέανδρος 156 Τζιαλαμάνη Βιργινία 166.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 4 Δ ΕΝΔΡΑ Σταύρος Δ. Νικολόπουλος 1.
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
Θεωρία Υπολογισμού Κλάσεις P και NP.
 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον:  Τεχνικές Διδασκαλίας.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
1 1 Slide Προσομοίωση. 2 2 Προσομοίωση n Τι είναι η Προσομοίωση πως/που χρησιμοποιείται; n Πλεονεκτήματα και μειονεκτήματα της Προσομοίωσης n Μοντέλα.
1 Αδιέξοδα Μοντέλο συστήματος Χαρακτηρισμός αδιεξόδου Μέθοδοι διαχείρισης αδιεξόδων Πρόληψη Αποφυγή Ανίχνευση.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
Λειτουργικά Συστήματα Ενότητα # 6: Αδιέξοδα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής.
1 Λειτουργικά Συστήματα Ενότητα 7 : Αδιέξοδο 2/2 Δημήτριος Λιαροκάπης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο.
ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ ΟΣΟ ΣΥΝΘΗΚΗ ΕΠΑΝΑΛΑΒΕ ΕΝΤΟΛΕΣ ΕΝΤΟΛΕΣΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ.
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ Άπληστη Αναζήτηση και Αναζήτηση Α* ΣΠΥΡΟΣ ΛΥΚΟΘΑΝΑΣΗΣ, ΚΑΘΗΓΗΤΗΣ.
ΜΑΘΗΜΑ: ΣΥΓΧΡΟΝΟ ΛΟΓΙΣΜΙΚΟ ΟΡΓΑΝΩΣΗ ΓΡΑΦΕΙΟΥ 5 ο ΕΡΓΑΣΤΗΡΙΟ: ΕΓΚΑΤΑΣΤΑΣΗ ΕΚΤΥΠΩΤΩΝ ΚΑΘΗΓΗΤΗΣ: ΓΡΗΓΟΡΙΟΣ Ν. ΚΑΡΑΤΑΣΙΟΣ.
1 Αδιέξοδο 1.Ορισμοί – είδη πόρων 2.Γράφοι εκχώρησης πόρων 3.Συνθήκες αδιεξόδου 4.Προσεγγίσεις αδιεξόδου 1.Πρόληψη 2.Αποφυγή 3.Ανίχνευση 5.Το πρόβλημα.
1 Λειτουργικά Συστήματα Ενότητα 6 : Αδιέξοδο 1/2 Δημήτριος Λιαροκάπης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
Δυναμικός Κατακερματισμός
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Προβλήματα Ικανοποίησης Περιορισμών
ΙΕΚ Γαλατσίου Στατιστική Ι
Κατανεμημένα Συστήματα
Βασικά Μοντέλα και Έννοιες Διεργασιών
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Χρονοπρογραμματισμός CPU - SCHEDULING
Ανάπτυξη Μοντέλων Διακριτών Συστημάτων Μέρος Β
Λειτουργικά Συστήματα και Ασφάλεια Πληροφοριακών Συστημάτων ΔΙΕΡΓΑΣΙΕΣ
Αµοιβαίος αποκλεισµός
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Η ΕΝΝΟΙΑ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ
Προβλήματα Ικανοποίησης Περιορισμών (Επιπλέον Διαφάνειες) Μανόλης Κουμπαράκης Τεχνητή Νοημοσύνη.
Επιστήμη των Υπολογιστών
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
Από τη Δομή Ακολουθίας στις Δομές Επανάληψης
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

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

3.1 Εισαγωγή Αδιέξοδο = ένα σύνολο από διεργασίες που δημιουργούν μια κυκλική αλυσίδα όπου κάθε process στην αλυσίδα δεν μπορεί να προχωρήσει και περιμένει για κάποιο γεγονός που μπορεί να προκληθεί μόνο από κάποιο άλλο μέλος της αλυσίδας. Τα γεγονότα για τα οποία περιμένουν οι διεργασίες είναι η απελευθέρωση κάποιου πόρου. Για να χρησιμοποιήσουν κάποιο πόρο οι διεργασίες πρέπει πρώτα να: ζητήσουν τους πόρους: Αν δεν είναι διαθέσιμοι (δηλ. κάποια άλλη διαδικασία τους χρησιμοποιεί) τότε η διεργασία που το ζητάει μπλοκάρει. Χρησιμοποιούν τον πόρο, αν είναι ελεύθερος Απελευθερώνουν τον πόρο.

3.1 Εισαγωγή Αναγκαίες Συνθήκες για Αδιέξοδο Οι επόμενες 4 συνθήκες πρέπει να ισχύουν για να δημιουργηθεί ένα deadlock: mutual exclusion (αμοιβαίος αποκλεισμός): Μόνο μια διεργασία μπορεί να χρησιμοποιεί έναν πόρο. Κατοχή και αναμονή (hold & wait): Οι διεργασίες που συμμετέχουν στο αδιέξοδο πρέπει και να κατέχουν κάποιο πόρο αλλά και να περιμένουν για κάποιο πόρο. Μη προεκτοπισμός (No preemption): Μόνο η κατέχουσα διεργασία μπορεί ν' απελευθερώσει τον πόρο - δηλ. ο πόρος δεν μπορεί ν' αφαιρεθεί από τη διεργασία. κυκλική αναμονή (circular wait):  Ν διεργασιών, όπου κάθε διεργασία περιμένει για έναν πόρο που τον κατέχει η επόμενη διεργασία στην αλυσίδα. Να σημειωθεί, ότι οι «πόροι» μπορεί να είναι λογισμικό και υλικό (π.χ. mutex, κλειδιά για αρχεία, ή δίσκοι, εκτυπωτές, κ.λπ).

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

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

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

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

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

Ο αλγόριθμος του τραπεζίτη (Banker's algorithm) Ο παραπάνω αλγόριθμος χρησιμοποιείται για συστήματα μ' ένα μόνο τύπο πόρων. Ο αλγόριθμος μπορεί εύκολα να τροποποιηθεί για πολλούς τύπους. Αντί για μια ακέραια μεταβλητή για τους πόρους, υπάρχουν οι εξής πίνακες: Has[N] όπου Ν είναι ο αριθμός τύπων πόρων (δηλ. Has[i], i<=Ν για το process P δείχνει πόσους πόρους τύπου i το P κατέχει). Wants[N] που ορίζεται όμοια και εκφράζει πόσους πόρους κάθε τύπου χρειάζεται κάθε process. Free[N]: δηλώνει πόσους πόρους κάθε τύπου είναι ελεύθερα. Το μεγαλύτερο πρόβλημα του Banker's αλγόριθμου είναι η υπόθεσή του: Είναι πολύ σπάνιο να ξέρουμε από πριν τις αιτήσεις για πόρους που πρόκειται να εκδοθούν αργότερα από κάθε process!

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

3.4 Πρόληψη Αδιεξόδων Εγγυώνται, αυτές οι στρατηγικές, ότι μια από τις 4 αναγκαίες συνθήκες δεν μπορεί να συμβεί/ισχύσει. Mutual Exclusion: πολλά resources απαιτούν mutual exclusion (π.χ. ταινίες, εκτυπωτές, mutex)  δεν μπορούμε σε γενικές γραμμές ν' αποφύγουμε mutual exclusion. Hold & Wait: αποφεύγεται αν στη αρχή των process γίνουν όλες οι αιτήσεις για όλα τα resources του process. Αλλά, όπως προείπαμε, αυτή η πληροφορία δεν υπάρχει. Επίσης ο προεκτοπισμός σε πολλούς τύπους πόρων (π.χ. εκτυπωτές) είναι αδύνατος. Circular Wait: Μπορεί ν' αποφευχθεί με τον εξής τρόπο: σ' όλα τους πόρους δίνεται ένας αύξοντας αριθμός. Όλες οι διεργασίες αναγκάζονται να ζητούν πόρους με την σειρά που αντιστοιχεί στους αριθμούς τους  έτσι δεν μπορεί να προκύψει κυκλική αλυσίδα.