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

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

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

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

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

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ιδιοκτησία Αντικειµένου

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

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

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος

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

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

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

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

ΚΕΦΑΛΑΙΟ 9. Ταυτόχρονος προγραμματισμός και νήματα. 9.1 Εισαγωγή


Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

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

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

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

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

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

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

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

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

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

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

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

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

ΕΥΧΑΡΙΣΤΙΕΣ. της εφαρµογής που υλοποιήσαµε, αλλά και προτάσεις για µελλοντικές εφαρµογές µε βάση την τεχνογνωσία που αποκτήσαµε.

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙI

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

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

Αμοιβαίος αποκλεισμός με κοινή μνήμη. Ταυτόχρονος Προγραμματισμός 1

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

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

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

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

Βασικές Δομές μοντέλων Petri Nets. C.A. Petri

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

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

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

Προγραμματισμός Η/Υ. Δομές Δεδομένων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

Αδιέξοδα (Deadlocks)

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

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

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

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

Χρονοδρομολογητής Κυκλικής Επαναφοράς

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

Ένα πρόγραμμα σε εκτέλεση, Μια ασύγχρονη δραστηριότητα,

Εγγυημένη ποιότητα υπηρεσίας

Οργάνωση Υπολογιστών (IΙI)

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

Επιµέλεια Θοδωρής Πιερράτος

Δομές Δεδομένων (Data Structures)

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Transcript:

Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού Μ.Στεφανιδάκης

Κοινοί πόροι Κοινοί (διαμοιραζόμενοι) πόροι με μία η περισσότερες μονάδες (units) Αποκλειστική προσπέλαση Αμοιβαίος αποκλεισμός (mutual exclusion) κρίσιμες περιοχές μη προεκτοπισμός! funca( ) { lock(r); <use R> R> unlock(r); } Μηχανισμός lock - unlock απόκτηση - απελευθέρωση πόρου μέσω δομών όπως semaphores - blocking Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 2

Προσπέλαση πολλαπλών πόρων Εμπεριεχόμενες κρίσιμες περιοχές nested critical regions διάταξη LIFO funcb( ) { lock(r 1 ); 1 ); lock(r 2 ); 2 ); <use R 1,R 1,R 2 > 2 Χρήση πολλαπλών πόρων Πιθανότητα deadlock } unlock(r 2 ); 2 ); unlock(r 1 ); 1 ); Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 3

Deadlock Πιθανότητα εμφάνισης ταυτόχρονη χρήση πολλαπλών πόρων χρήση κρίσιμων περιοχών που εμπεριέχονται η μία μέσα στην άλλη (nested) προεκτοπιστικό σύστημα Παράδειγμα: όταν δύο διεργασίες προσπαθούν να αποκτήσουν η μία τον πόρο που κατέχει η άλλη Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 4

Deadlock Παράδειγμα taska( ) { lock(r 1 ); 1 ); lock(r 2 ); 2 ); <use R 1,R 1,R 2 > 2 taskb( ) { lock(r 2 ); 2 ); lock(r 1 ); 1 ); <use R 1,R 1,R 2 > 2 } unlock(r 2 ); 2 ); unlock(r 1 ); 1 ); } unlock(r 1 ); 1 ); unlock(r 2 ); 2 ); Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 5

Αποφυγή deadlock Απόκτηση συνόλου πόρων πριν τη συνέχιση Απόκτηση των πόρων στην ίδια σειρά Ειδικά πρωτόκολλα αποφυγής deadlock taska( ) { taskb( ) { lock(r 1 ); 1 ); lock(r 1 ); 1 ); lock(r 2 ); 2 ); lock(r 2 ); 2 ); <use R 1,R 1,R 2 > 2 <use R 1,R 1,R 2 > 2 } unlock(r 2 ); 2 ); unlock(r 1 ); 1 ); } unlock(r 2 ); 2 ); unlock(r 1 ); 1 ); Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 6

Προσπέλαση πόρων και ουρές διεργασιών create release READY RUNNING run terminate preempt block BLOCKED Αίτηση απόκτησης αποκλειστικής χρήσης πόρου Γίνεται δεκτή (grant) Δεν γίνεται δεκτή η διεργασία απενεργοποιείται (block) Απελευθέρωση πόρου (release) Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 7

Σύγκρουση προσπέλασης πόρων (r 1 =6, d 1 =14) (r 2 =2, d 2 =17) (r 3 =0, d 3 =18) Τ1 L(R) U(R) Τ2 L(R) U(R) Τ3 L(R) U(R) 0 2 4 6 8 10 12 14 16 Χρονοδρομολόγηση EDF Χρόνοι εκτέλεσης: (5, 7, 6) Χρόνοι σε κρίσιμη περιοχή: (2, 4, 4) Ένας κοινός πόρος (R) 18 t Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 8

Χρονικές ανωμαλίες αύξηση συνολικού χρόνου ολοκλήρωσης με μείωση επιμέρους χρόνων εκτέλεσης! (r 1 =6, d 1 =14) (r 2 =2, d 2 =17) (r 3 =0, d 3 =18) Τ1 Τ2 L(R) L(R) U(R) U(R) Τ3 L(R) U(R) 0 2 4 6 8 10 12 14 16 18 t Χρονοδρομολόγηση EDF Χρόνοι εκτέλεσης: (5, 7, 6) Χρόνοι σε κρίσιμη περιοχή: (2, 4, 2.5) Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 9

Προσπέλαση κοινών πόρων σε ΛΣΠΧ Αντιστροφή προτεραιότητας (priority inversion) διεργασία υψηλής προτεραιότητας περιμένει διεργασία χαμηλής προτεραιότητας όμως αναπόφευκτη! Μη προβλέψιμο σύστημα χρόνος σε κρίσιμη περιοχή χρονικές ανωμαλίες μη φραγμένη διάρκεια αντιστροφής προτεραιότητας deadlock Αναγκαίος ο ακριβής έλεγχος προσπέλασης δεν αρκούν οι παραδοσιακές δομές ενός ΛΣ Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 10

Ανεξέλεγκτη αντιστροφή προτεραιοτήτων Τ1 L(R) U(R) Τ2 Τ3 L(R) U(R) 0 2 4 6 8 10 12 14 16 18 t Η καθυστέρηση του Τ1 δεν εξαρτάται μόνο από τον χρόνο του Τ3 στην κρίσιμη περιοχή! Τ2 δεν προσπελαύνει κοινό πόρο! Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 11

Έλεγχος προσπέλασης πόρων Μέθοδος ελέγχου Μη διακοπή σε κρίσιμες περιοχές Priority Inheritance Priority Ceiling Αποτέλεσμα Εξάλειψη ανεξέλεγκτης αντιστροφής προτεραιοτήτων Μείωση χρόνων αναμονής για τη χρήση πόρων Αποφυγή deadlock Υλοποίηση Για συστήματα με στατικές ή δυναμικές προτεραιότητες; Απαιτείται γνώση εκ των προτέρων για τη χρήση των κοινών πόρων; Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 12

Μη διακοπή εκτέλεσης σε κρίσιμη περιοχή Εκτέλεση με την υψηλότερη προτεραιότητα Μη προεκτοπισμός (πλήρης) εμποδίζει εκτέλεση ακόμα κι όταν δεν υπάρχει σύγκρουση! Αποφυγή deadlock Αποφυγή ανεξέλεγκτης αντιστροφής προτεραιότητας μόνο μία φορά μέγιστη καθυστέρηση = max χρόνων εκτέλεσης σε κρίσιμες περιοχές B i = i max(c k ) k fixed-priority: των διεργασιών χαμηλότερης προτεραιότητας EDF: των διεργασιών με αργότερο deadline απλό πρωτόκολλο i+1 k n Δεν απαιτείται πληροφορία χρήσης πόρων Για συστήματα με στατικές ή δυναμικές προτεραιότητες Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 13

Priority Inheritance Protocol (PIP) Χρονοδρομολόγηση με (στατικές) προτεραιότητες ονομαστική και τρέχουσα προτεραιότητα Μία διεργασία σε κρίσιμη περιοχή αποκτά τη μέγιστη προτεραιότητα από όλες τις διεργασίες που εμποδίζει. μεταβατική ιδιότητα αποφυγή ανεξέλεγκτης αντιστροφής προτεραιότητας min(u,k) φορές u = αριθμός πόρων που προσπελαύνει k = αριθμός διεργασιών χαμηλότερης προτεραιότητας με τις οποίες συγκρούεται αλλά όχι και deadlock δεν ελαχιστοποιεί χρόνους blocking Δεν απαιτείται πληροφορία χρήσης κοινών πόρων μόνο για τον υπολογισμό χρόνου blocking αλγοριθμικά Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 14

Priority Inheritance Protocol Τ1 L(R) U(R) Τ2 Τ3 L(R) P=1 U(R) 0 2 4 6 8 10 12 14 16 18 t Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 15

Βασική ιδέα: Priority Ceiling Protocol μία διεργασία δεν επιτρέπεται να εισέλθει σε κρίσιμη περιοχή, εάν υπάρχουν άλλοι κλειδωμένοι πόροι που θα μπορούσαν να την μπλοκάρουν. για συστήματα με στατικές προτεραιότητες απαιτείται γνώση χρησιμοποιούμενων πόρων κάθε πόρος χαρακτηρίζεται από ένα όριο (priority ceiling) η υψηλότερη προτεραιότητα διεργασίας που μπορεί να τον χρησιμοποιήσει (υπολογισμός off-line) προσπέλαση πόρου μόνον όταν προτεραιότητα διεργασίας > μεγαλύτερο priority ceiling χρησιμοποιούμενων πόρων (εκτός ίδιας) priority inheritance Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 16

Priority Ceiling Protocol (PCP) C(a)=1, C(b)=1, C(c)=2 Τ1 L(a) U(a) L(b) U(b) Τ2 Τ3 a L(c) U(c) c L(c) L(b) [2] [1] U(b) [2] U(c) 0 2 4 6 8 10 12 14 16 18 t Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 17

Αποτέλεσμα μεθόδου: Priority Ceiling Protocol Blocking: μόνο μία φορά μετά την είσοδο στην κρίσιμη περιοχή όχι blocking μείωση χρόνων blocking το πολύ κατά τον χρόνο μίας κρίσιμης περιοχής B i i = max(c k,s ) k,s ) k > i, i, C(s) i k,s k: διεργασίες (χαμηλότερης προτεραιότητας) s: κοινοί πόροι (με ceiling από προτεραιότητα διεργασίας i) αποφυγή deadlock όχι κυκλικό blocking Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 18

Stack Resource Policy (SRP) Παρόμοιο με PCP preemption level (στατική παράμετρος) συσχετισμός με προτεραιότητες έλεγχος κατά την εκκίνηση διεργασίας Δυνατή η χρήση δυναμικής χρονοδρομολόγησης Αποφυγή ανεξέλεγκτης αντιστροφής προτεραιοτήτων Αποφυγή deadlock Καλύπτει πολλαπλούς πόρους Επιτρέπει τη χρήση κοινού runtime stack Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 19

Σύνοψη Αλγόριθμοι (πρωτόκολλα) ελέγχου προσπέλασης κοινών πόρων PIP δεν απαιτεί πρόσθετη πληροφορία (ceilings κλπ.) υποστηρίζεται σε πολλά εμπορικά ΛΣΠΧ δεν αποφεύγει deadlock δεν ελαχιστοποιεί χρόνους blocking PCP & SRP αποφυγή deadlock μείωση χρόνου blocking υπολογισμός παραμέτρων off-line SRP: δυνατότητα χρήσης δυναμικής χρονοδρομολόγησης Λειτουργικά Συστήματα Πραγματικού Χρόνου Προσπέλαση κοινών πόρων 20