Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Μπλοκαρισμένη Τρέχουσα Έτοιμη Λειτουργικά Συστήματα Κλειώ Σγουροπούλου.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Μπλοκαρισμένη Τρέχουσα Έτοιμη Λειτουργικά Συστήματα Κλειώ Σγουροπούλου."— Μεταγράφημα παρουσίασης:

1 Μπλοκαρισμένη Τρέχουσα Έτοιμη Λειτουργικά Συστήματα Κλειώ Σγουροπούλου

2 ΠΛΗ11 – 5η ΟΣΣ 31/3/ Λειτουργικό Σύστημα Διαχείριση διεργασιών Διαχείρισημνήμης Κάτω τμήμα οδηγών Ε/Ε Άνω τμήμα οδηγών Ε/Ε Σύστημααρχείων Διεπαφή χρήστη: Διερμηνέας εντολών, GUI Μηχανισμός κλήσεων συστήματος Εφαρμογέςχρηστών

3 ΠΛΗ11 – 5η ΟΣΣ 31/3/ Κατηγορίες Λειτουργικών Συστημάτων

4 ΠΛΗ11 – 5η ΟΣΣ 31/3/ Διαδιεργασιακή επικοινωνία και Συγχρονισμός Ανάγκη για ανταλλαγή πληροφοριών μεταξύ των διεργασιών Δεν πρέπει μια διεργασία να «μπαίνει στο δρόμο» των άλλων Οι διεργασίες πρέπει να προσπελαύνουν τα αγαθά με τη σωστή σειρά Ανάγκη για εισαγωγή της έννοιας των λειτουργιών συγχρονισμού Αυτές οι λειτουργίες επιτρέπουν στις διεργασίες να ελέγχουν το χρονισμό των γεγονότων τους σε σχέση με τα γεγονότα άλλων διεργασιών

5 ΠΛΗ11 – 5η ΟΣΣ 31/3/ Ανάγκη συντονισμού Κατά τη διάρκεια εκτέλεσης των διεργασιών συμβαίνουν ασύγχρονα γεγονότα: –Μια διακοπή προκαλεί μεταφορά του ελέγχου από την τρέχουσα διεργασία στο χειριστή διακοπών –Μια διακοπή χρονισμού προκαλεί τη νάρκωση μιας διεργασίας και την αφύπνιση μιας άλλης –Δυο διεργασίες μοιράζονται την ίδια περιοχή μνήμης για εγγραφή και ανάγνωση δεδομένων Πρόκληση συνθηκών ανταγωνισμού

6 ΠΛΗ11 – 5η ΟΣΣ 31/3/ Συνθήκες ανταγωνισμού - παράδειγμα Διεργασία Α: τοποθέτηση αρχείου a.c Διεργασία B: τοποθέτηση αρχείου b.c Κοινές μεταβλητές –out: προς εκτύπωση αρχείο –in: επόμενη ελεύθερη θέση A: nfs_a = in //nsf_a=7 [7] = a.c B: nfs_b = in //nsf_b=7 [7] = b.c nfs_b = nfs_b +1 in = nfs_b A: nfs_a = nfs_a +1 in = nfs_a … … abc prog.c prog.n Spooler directory

7 ΠΛΗ11 – 5η ΟΣΣ 31/3/ Κρίσιμες περιοχές Αμοιβαίος αποκλεισμός Το μέρος του προγράμματος κατά το οποίο προσπελαύνεται η κοινή μνήμη καλείται Κρίσιμη περιοχή Ο κρίσιμες περιοχές πρέπει να προσπελαύνονται υπό συνθήκες αμοιβαίου αποκλεισμού Λύση: Συγχρονισμός –Δυο διεργασίες δεν πρέπει να βρίσκονται ποτέ ταυτόχρονα στα κρίσιμα τμήματά τους. –Διεργασία που δεν βρίσκεται σε κρίσιμο τμήμα δεν επιτρέπεται να αναστείλει άλλες διεργασίες. –Δεν επιτρέπεται η επ’ αόριστον αναμονή μιας διεργασίας για να εισέλθει στο κρίσιμο τμήμα της. –Δεν επιτρέπονται υποθέσεις σε ότι αφορά την ταχύτητα ή το πλήθος των επεξεργαστών.

8 ΠΛΗ11 – 5η ΟΣΣ 31/3/ Αμοιβαίος αποκλεισμός - “Λύσεις” #1, #2 #1 Απενεργοποίηση διακοπών κατά την είσοδο στην κρίσιμη περιοχή –Κι αν η διεργασία “ξεχάσει” να επανενεργοποιήσει τις διακοπές; #2 Χρήση μεταβλητής κλειδώματος P0 P1 P0 P1 –Ταυτόχρονη εισαγωγή στην κρίσιμη περιοχή while (1) { while (lock!=0) {}; lock=1; lock (αρχικά 0) while (1) { while (lock!=0) {}; lock=1; CS lock=0; } lock=0; }

9 ΠΛΗ11 – 5η ΟΣΣ 31/3/ Αμοιβαίος αποκλεισμός - “Λύση” #3 #3 Αυστηρή ενναλαγή P0 P1 –Επίτευξη αμοιβαίου αποκλεισμού – Όμως: Πολυάσχολη αναμονή –Κι αν η διεργασία 0 είναι ταχύτερη από την 1; –Η διεργασία 0 μπορεί να περιμένει τη σειρά της ακόμα κι αν η 1 είναι έξω από την κρίσιμη περιοχή while (1) { while (turn!=0) {}; turn (αρχικά 0) while (1) { while (turn!=1) {}; CS turn=1; } turn=0; }

10 ΠΛΗ11 – 5η ΟΣΣ 31/3/ Αμοιβαίος αποκλεισμός - “Λύση” #4 #4 Πρόθεση εισαγωγής στην κρίσιμη περιοχή P0 P1 –Οδηγεί σε αδιέξοδο (deadlock) while (1) { turn0=true; while (turn1) {}; turn0=false; turn1=false; while (1) { turn1=true; while (turn0) {}; CS turn0=false; } turn1=false; }

11 ΠΛΗ11 – 5η ΟΣΣ 31/3/ Λύση Peterson P0 P1 while (1) { interested_0=true; turn=0; while (interested_1 == true && turn == 0) {}; turn=0; interested_0=false; interested_1=false; CS interested_0=false; } while (1) { interested_1=true; turn=1; while (interested_0 == true && turn == 1) {}; CS interested_1=false; }


Κατέβασμα ppt "Μπλοκαρισμένη Τρέχουσα Έτοιμη Λειτουργικά Συστήματα Κλειώ Σγουροπούλου."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google