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

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

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

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


Παρουσίαση με θέμα: "Λειτουργικά Συστήματα"— Μεταγράφημα παρουσίασης:

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

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

3 Κατηγορίες Λειτουργικών Συστημάτων

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

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

6 Συνθήκες ανταγωνισμού - παράδειγμα
Διεργασία Α: τοποθέτηση αρχείου 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 Spooler directory 4 5 6 7 abc prog.c prog.n

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

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

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

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

11 interested_0=false; interested_1=false;
Λύση Peterson P P1 turn=0; interested_0=false; interested_1=false; while (1) { interested_0=true; turn=0; while (interested_1 == true && turn == 0) {}; while (1) { interested_1=true; turn=1; while (interested_0 == true && turn == 1) {}; CS CS interested_0=false; } interested_1=false; }


Κατέβασμα ppt "Λειτουργικά Συστήματα"

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


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