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

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

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

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

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

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

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

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

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

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

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

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 14. Συγχρονισμός Νημάτων (χρήση pthread_mutex_t, pthread_cond_t)

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

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

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

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

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

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1

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

Αδιέξοδα (Deadlocks)

Εικονική Μνήμη (Virtual Μemory)

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Ερωτήσεις επανάληψης

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1

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

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

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

Παράλληλη Επεξεργασία

ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT

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

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

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

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

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

DIRECT MEMORY ACCESS - DMA

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

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

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Ε-85: Ειδικά Θέµατα Λογισµικού

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

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

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

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

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

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

Δυναμική Θεώρηση και Συγχρονισμός των εξαρτήσεων των δεδομένων. Αλεξάνδρα Παπανδρεάδη (ΑΜ 362)

Υ- 07 Παράλληλα Συστήματα Transac9onal memory

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

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

ΛΟΓΙΣΜΟΣ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ, ΕΣΠΙ 1

Managing Information. Lecturer: N. Kyritsis, MBA, Ph.D. Candidate Athens University of Economics and Business.

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Προγραμματισμός Ι (ΗΥ120)

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

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

Αντικειμενοστρεφής Προγραμματισμός

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

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

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

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

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

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

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

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

Θέματα Μεταγλωττιστών

Εισαγωγικά & Βασικές Έννοιες

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

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

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

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

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

Έλεγχος Ταυτοχρονισμού

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Περιεχόμενα. Visio / White paper 1

Συγχρονισμός Μέρος Α : Κρίσιμο τμήμα και κλειδώματα

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

ΠΡΟΒΛΗΜΑ ΕΠΕΓΕΡΓΑΣΙΑ. (Είναι οι σκέψεις και οι πράξεις που κάνουμε για να λυθεί το πρόβλημα) ΕΙΣΟΔΟΥ - ΕΞΟΔΟΥ

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

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

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

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

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1

( η άσκηση μπορεί να πραγματοποιηθεί σε μία ομάδα 3-6 ατόμων σε 4 το πολύ ομάδες )

Εγκατάσταση της Unity

Transcript:

Λειτουργικά Συστήματα (ΗΥ222) Διάλεξη 5: Αδιέξοδα

Συγχρονισμός στον Πραγματικό Κόσμο Χρειάζεται οποτεδήποτε > 1 χρήστης πόρου Λίγο πολύ οι ίδιες λύσεις με τον πραγματικό κόσμο: κλείδωμα (στo WC), χρονοπρογραμματισμός (ραντεβού), χρήση πολλαπλών αντιγράφων πόρων (όλοι έχουμε υπολογιστή σπίτι μας) Παραδείγματα: Ένας δρόμος, πολλά αυτοκίνητα: φανάρια (συγχρονισμός με χρονοπρογραμματισμό), πολλές λωρίδες («ιδεατά» αντίγραφα ανταλλαγή μη βέλτιστης χρησιμοποίησης με απλούστερο συγχρονισμό) WC: Κλειδαριά πόρτα (lock), ανδρικές/γυναικείες (δημιουργία αντιγράφων) Συνεργάτες στο project: lock = πειράζω το sched.c unlock = ΟΚ, τελείωσα Παρκάρισμα: Χρήση αντικειμένου (αυτοκίνητο / τσιμεντόλιθος στη θέση), ανάθεση θέσεων parking (πάντα δεσμευμένες: όχι ταυτοχρονισμός = κακή αξιοποίηση), κάρτα μόνιμου κατοίκου ( είδος δέσμευσης που επιτρέπει ταυτοχρονισμό) 2

Αδιέξοδο (Deadlock): Η καταστροφή του Παραλληλισμού 3 Γραφικά: Κύκλος στο γράφο που δείχνει τις εξαρτήσεις μεταξύ νημάτων Το νήμα Ν1 κρατάει τον πόρο Π1 και περιμένει τον Π2, το Ν2 κρατάει τον Π2 και περιμένει τον Π3, το Ν3 κρατάει τον Π3 και περιμένει τον Π4, το Ν4 κρατάει τον Π4 και περιμένει τον Π1. Πρόβλημα: Καμία πρόοδος (όλα είναι τόσο βαρετά) Μπορεί να συμβεί εύκολα Όταν συμβεί, άντε να το καταλάβεις Ν2 Ν1 Ν3 Ν4

Παράδειγμα 4 Τι μπορεί να γίνει και να έχουμε αδιέξοδο στον κώδικα;

Παράδειγμα Είναι απαραίτητα τα locks / σηματοφόροι / monitors? Μπορούμε μια χαρά να καταφέρουμε να έχουμε αδιέξοδο και χωρίς αυτά. T1: T2: send n bytes to T2; while(receive up to 4K of data) process data; while(receive data); send 4K result to T1 display data exit; exit; Buffers 4K Αν γεμίσει ο buffer, μπλοκάρουμε στο send έως ότου ο άλλος πάρει δεδομένα Τι γίνεται για διαφορετικές τιμές του n; 5

Συνθήκες για Αδιέξοδο 6 Περιορισμένη πρόσβαση Ο πόρος μπορεί να χρησιμοποιηθεί από έναν πεπερασμένο αριθμό χρηστών Μη διακοπή Αν δοθεί ο πόρος δεν μπορούμε να τον πάρουμε πίσω Πολλαπλές ανεξάρτητες αιτήσεις (κρατάω και περιμένω) Δε ζητώ όλους τους πόρους μονομιάς, δεσμεύω όσους μπορώ και περιμένω για τους υπόλοιπους Κύκλος στο γράφο αιτήσεων Είναι απαραίτητες και οι 4 συνθήκες!!!

Αντιμετώπιση Αδιεξόδου 7 Δύο βασικές στρατηγικές Των φρονίμων τα παιδιά Πρόληψη Όποιος δεν έχει μυαλό Αναγνώριση και διορθωτική δράση

Αποτροπή Αδιεξόδου: Εξαφάνισε 1 από τις 4 συνθήκες Περιορισμένη πρόσβαση: Αγόρασε κι άλλους πόρους, κομμάτιασε τους πόρους όσο μπορείς, φτιάξε «ιδεατούς» πόρους ώστε να έχεις άπειρα αντίγραφα Μη διακοπή: Φτιάξε αντίγραφα ή ιδεατούς πόρους Νήματα: έχουν καθένα ένα δικό του αντίγραφο των καταχωρητών => δε χρειάζεται lock Φυσική μνήμη: «Ιδεατός» κόσμος με την ιδεατή μνήμη: Μπορούμε να πάρουμε ένα τμήμα της φυσικής μνήμης από μια διεργασία και να το δώσουμε σε άλλη! 8

Αποτροπή Αδιεξόδου: Εξαφάνισε 1 από τις 4 συνθήκες Κρατάω και περιμένω: 9 Πάρε όλους τους πόρους μονομιάς (όταν είναι διαθέσιμοι) Πρέπει να ξέρεις εξ αρχής πόσους / ποιους χρειάζεσαι Κύκλοι Ένα lock για όλο το σύστημα Κανένα πρόβλημα; Διάταξη των πόρων (please wait )

Διάταξη Πόρων Αρίθμησε (διέταξε τους πόρους): lock#1, lock#2, Δέσμευσέ τους με συγκεκριμένη σειρά 10 Αύξουσα ή φθίνουσα, αλλά παντού και πάντα την ίδια. Γιατί δουλεύει; Αριθμήστε όλους τους κόμβους στο γράφο εξαρτήσεων Αν υπάρχει κύκλος δε θα υπάρχει ακμή από μεγαλύτερο σε μικρότερο αριθμό; Ή στον ίδιο κόμβο 1 2 4 1 2 1 3

Δέσμευση σε 2 φάσεις Δέσμευσε όλους τους πόρους, Αν κολλήσεις σε κάποιον αποδέσμευσε όλους και προσπάθησε ξανά Πλεονεκτήματα: Δυναμικό, απλό, ευέλικτο Μειονεκτήματα: Κόστος σε σχέση με τον αριθμό των πόρων; Μήκος της προστατευμένης περιόχής; Μπορώ να ξέρω τι θα χρειαστώ εκ των προτέρων; 11

Διάγνωση + Δράση Τερμάτισε ένα νήμα και απελευθέρωσε τους πόρους. Συνέχισε έως ότου εξαφανιστεί το αδιέξοδο Μειονέκτημα: Σε τι κατάσταση μένει το σύστημα αν σκοτώνω νήματα όπου και όποτε λάχει; Μάλλον δε μπορεί να είναι καλό 12 Χρήση με στυλ: Πάρε όλους τους πόρους πριν κάνεις οποιαδήποτε αλλαγή στην κατάσταση. Ουδείς αναντικατάστατος (πριν κάνω αλλαγές στην κατάσταση) Σαν τη δέσμευση σε 2 φάσεις, απλά δε χρειάζεται να ασχοληθούμε με την αποδέσμευση των πόρων

Διάγνωση + Δράση Πιο sexy λύση Αν συμβεί αδιέξοδο, «ακύρωσε» τις ενέργειες που σε οδήγησαν στο αδιέξοδο Η μηχανή του χρόνου Δεσμεύουμε κανονικά πόρους Κάνουμε αλλαγές στην κατάσταση του προγράμματος χρησιμοποιώντας μόνο αντιστρέψιμες πράξεις Αν τα πράγματα πάνε στραβά σκοτώνουμε το «κακό» νήμα και απελευθερώνουμε τους πόρους του Αλλά ταυτόχρονα αντιστρέφουμε τις αλλαγές που είχε κάνει στην κατάσταση Συναλλαγές (transactions) Εύκολες για τον προγραμματιστή Σχετικά δύσκολες στην υλοποίηση: Πώς κρατάω ημερολόγιο των αλλαγών; Πώς φτιάχνω τις αντίστροφες πράξεις; Στο software ή στο hardware; 13

Πιο Τυπικά: Γράφος Ανάθεσης Πόρων 14 Διεργασία Πόρος με 4 ίδιες οντότητες Η P i κάνει αίτηση για μια οντότητα του R j P i R j Η P i κατέχει μια οντότητα του πόρου R j P i Rj

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

Ανάθεση Πόρων με Αδιέξοδο 16

Ανάθεση Πόρων Χωρίς Αδιέξοδο 17

Ασφαλής Κατάσταση 18 Ασφαλής κατάσταση => υπάρχει μια ασφαλής ακολουθία όλων των διεργασιών Ασφαλής ακολουθία <P 1, P 2,, P n >: Για κάθε P i, οι πόροι που η P i μπορεί να αιτηθεί μπορούν να ικανοποιηθούν από τους διαθέσιμους πόρους και τους πόρους που κρατούν όλες οι P j, με j<i

Ασφαλής, Μη ασφαλής, Αδιέξοδο 19

Εντελώς μεταξύ μας 20 Οι πιο συχνές λύσεις: Εντατικός έλεγχος + Όλοι μπορούν να το κάνουν - Πόσο εντατικός; «Άπειρες» περιπτώσεις ΛΣ: o δολοφόνος με το signal Παρακολούθησε το σύστημα: αν γίνει πολύ ήσυχο ενώ δε θα έπρεπε ξέρεις τι να κάνεις + Μπορεί να γίνει σε κάποιες εφαρμογές! - Μπορεί να γίνει σε όλες τις εφαρμογές; πριν μετά