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

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

Εικονική Μνήμη Λειτουργικά Συστήματα. Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων των Π.Λάμψας & Σ. Λάλης.

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


Παρουσίαση με θέμα: "Εικονική Μνήμη Λειτουργικά Συστήματα. Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων των Π.Λάμψας & Σ. Λάλης."— Μεταγράφημα παρουσίασης:

1 Εικονική Μνήμη Λειτουργικά Συστήματα

2 Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων των Π.Λάμψας & Σ. Λάλης για το μάθημα Λειτουργικά Συστήματα Παν. Θεσ.

3 Λειτουργικά Συστήματα/ Slide 3 Εισαγωγή * Θεωρητικό υπόβαθρο * Σελιδοποίηση κατ’ απαίτηση (demand paging) * Δημιουργία διεργασίας * Αντικατάσταση σελίδας (page replacement) * Ανάθεση πλαισίων * Λυγισμός (thrashing) * Παραδείγματα λειτουργικών συστημάτων

4 Λειτουργικά Συστήματα/ Slide 4 Θεωρητικό Υπόβαθρο * Χρησιμοποιείται λογική διευθυνσιοδότηση, οπότε ένα πρόγραμμα δεν χρειάζεται να αποθηκευτεί σε συνεχόμενες περιοχές μνήμης * Υποστηρίζονται χώροι διευθύνσεων που ξεπερνούν την φυσική μνήμη που είναι διαθέσιμη, οπότε το μέγεθος ενός προγράμματος μπορεί να ξεπερνά -κατά πολύ- την διαθέσιμη φυσική μνήμη

5 Λειτουργικά Συστήματα/ Slide 5 Εικονική Μνήμη Μεγαλύτερη από τη Φυσική Μνήμη

6 Λειτουργικά Συστήματα/ Slide 6 Θεωρητικό Υπόβαθρο (συνέχεια) * Η εκτέλεση του προγράμματος είναι εφικτή χωρίς να έχει φορτωθεί ολόκληρο στην φυσική μνήμη του συστήματος * Επιτρέπει τον διαμοιρασμό λογικών χώρων διευθύνσεων ανάμεσα σε διεργασίες και την αποτελεσματικότερη δημιουργία διεργασιών * Η ιδεατή μνήμη μπορεί να υλοποιηθεί με: n Σελιδοποίηση κατ’ απαίτηση (demand paging) n Κατάτμηση κατ’ απαίτηση (demand segmentation)

7 Λειτουργικά Συστήματα/ Slide 7 Εικονικός Χώρος Διευθύνσεων Αντίληψη χρήστη για τον τρόπο αποθήκευσης μιας διεργασίας στη μνήμη (εικονικός χώρος): Συνεχόμενες θέσεις μνήμης (0 – max) Ανεξάρτητος από τη φυσική μνήμη Χώρος για δυναμική ανάθεση μνήμης (heap) Στοίβα (stack) για φύλαξη τοπικών μεταβλητών και παραμέτρων

8 Λειτουργικά Συστήματα/ Slide 8 Διαμοιραζόμενη Βιβλιοθήκη με Χρήση Εικονικής Μνήμης

9 Λειτουργικά Συστήματα/ Slide 9 Σελιδοποίηση κατ’ Απαίτηση * Μια σελίδα μεταφέρεται από το μέσο αποθήκευσης (δίσκο) στη κύρια μνήμη του συστήματος (πλαίσιο) μόνο όταν γίνει αναφορά σε αυτή * Χρειάζεται λιγότερο Ι/Ο, ταχύτερη απόκριση * Καταλαμβάνεται λιγότερη μνήμη, περισσότερα προγράμματα μπορούν και τρέχουν ταυτόχρονα * Κάθε φορά που γίνεται αναφορά σε σελίδα όπου η αντίστοιχη καταχώρηση δεν υπάρχει στον πίνακα, υπάρχουν δύο περιπτώσεις: n Η αναφορά είναι άκυρη  διακοπή (abort) n Η σελίδα δε βρίσκεται στη μνήμη  φόρτωμα στην μνήμη

10 Λειτουργικά Συστήματα/ Slide 10 Μεταφορά Σελίδων από/προς την Κύρια Μνήμη

11 Λειτουργικά Συστήματα/ Slide 11 Bit Εγκυρότητας * Με κάθε καταχώρηση του πίνακα σελίδων συσχετίζεται ένα bit εγκυρότητας (1  στη μνήμη, 0  όχι στη μνήμη) * Παράδειγμα στιγμιότυπου του πίνακα σελίδων: * Κατά τη μετάφραση των διευθύνσεων, αν το bit εγκυρότητας στην καταχώρηση του πίνακα σελίδων είναι 0  σφάλμα σελίδας (page fault) bit εγκυρότητας  # Πλαισίου Πίνακας σελίδων

12 Λειτουργικά Συστήματα/ Slide 12 Πίνακας Σελίδων όταν κάποιες Σελίδες δε βρίσκονται στην Κύρια Μνήμη

13 Λειτουργικά Συστήματα/ Slide 13 Σφάλμα Σελίδας (Page Fault) * Όταν υπάρξει αναφορά σε σελίδα, η πρώτη αναφορά θα πιαστεί (trap) από το ΛΣ  δημιουργία σφάλματος σελίδας 1.To ΛΣ κοιτάζει έναν πίνακα (PCB) για να αποφασίσει: n Αν η αναφορά είναι μη-έγκυρη, οπότε και διακόπτει n Αν απλά και μόνο η σελίδα δεν είναι στη μνήμη 2.Επιλογή ενός άδειου πλαισίου 3.Μεταφορά της σελίδας στο πλαίσιο αυτό 4.Τροποποίηση των πινάκων έτσι ώστε να δείχνουν ότι η σελίδα είναι στη μνήμη (πίνακας σελίδων και εσωτερικός) 5.Επανεκκίνηση της εντολής που είχε προκαλέσει το σφάλμα σελίδας

14 Λειτουργικά Συστήματα/ Slide 14 Σχηματική Απεικόνιση Διαδικασίας Χειρισμού Σφάλματος Σελίδας

15 Λειτουργικά Συστήματα/ Slide 15 Εικονική Μνήμη και Δημιουργία Διεργασίας * Η εικονική μνήμη δίνει τα ακόλουθα πλεονεκτήματα κατά τη δημιουργία διεργασιών: n Αντιγραφή κατά την τροποποίηση (copy-on-write) n Αντιστοίχηση αρχείων στη μνήμη (memory-mapped files)

16 Λειτουργικά Συστήματα/ Slide 16 Αντιγραφή κατά την Τροποποίηση * Η αντιγραφή κατά την τροποποίηση (copy-on- write) επιτρέπει στην πατρική και τη θυγατρική διεργασία να μοιράζονται αρχικά τις ίδιες σελίδες * Η σελίδα αντιγράφεται, μόνο όταν κάποια από τις διεργασίες την τροποποιήσει * Επιτρέπει περισσότερο αποδοτική δημιουργία διεργασίας, καθώς δημιουργούνται αντίγραφα μόνο για τις σελίδες που τροποποιούνται * Οι ελεύθερες σελίδες ανατίθενται από μια δεξαμενή κενών σελίδων

17 Λειτουργικά Συστήματα/ Slide 17 Αντιστοίχηση Αρχείων στη Μνήμη * Τμήματα του αρχείου αντιστοιχίζονται σε σελίδες * Το Ι/Ο αντιμετωπίζεται ως τυπική προσπέλαση μνήμης * Το αρχείο διαβάζεται αρχικά με σελιδοποίηση κατ’ απαίτηση, και οι επακόλουθες αναφορές στο αρχείο αντιμετωπίζονται ως ανάγνωση και εγγραφή στη μνήμη * Απλοποίηση της πρόσβασης για Ι/Ο στο αρχείο (μέσω μνήμης παρά μέσω κλήσεων συστήματος read(), write()) * Επιτρέπει σε πολλές διεργασίες να διαμοιραστούν το ίδιο αρχείο μέσω του μηχανισμού διαμοιρασμού σελίδων/πλαισίων μνήμης

18 Λειτουργικά Συστήματα/ Slide 18 Σχηματική Απεικόνιση Αντιστοίχισης Αρχείων στην Μνήμη

19 Λειτουργικά Συστήματα/ Slide 19 Αντικατάσταση Σελίδας (Page Replacement) * Όταν δεν υπάρχει άδειο πλαίσιο στο οποίο να φορτωθεί μια σελίδα που μεταφέρεται από τον δίσκο, επιλέγεται ένα δεσμευμένο πλαίσιο * Επιθυμητός ένας αλγόριθμος ο οποίος να οδηγεί σε ελάχιστο αριθμό από σφάλματα μνήμης, και άρα σε ελάχιστο αριθμό μεταφορών σελίδων από/προς το αποθηκευτικό μέσο

20 Λειτουργικά Συστήματα/ Slide 20 Αντικατάσταση Σελίδας (συνέχεια) * Χρήση του bit τροποποίησης (modify ή dirty bit) για μείωση του φόρτου μεταφοράς σελίδων (μόνο οι τροποποιημένες σελίδες ξαναγράφονται στο δίσκο σε περίπτωση αντικατάστασης σελίδας) * Η αντικατάσταση σελίδας ολοκληρώνει το διαχωρισμό λογικής και φυσικής μνήμης – μεγάλη λογική μνήμη μπορεί να παρέχεται με μια μικρότερη φυσική μνήμη

21 Λειτουργικά Συστήματα/ Slide 21 Διαδικασία Αντικατάστασης Σελίδας 1.Εντοπισμός της θέσης της επιθυμητής σελίδας στο δίσκο 2.Εύρεση ελεύθερου πλαισίου: n Αν υπάρχει ελεύθερο πλαίσιο, χρησιμοποίησέ το n Αν δεν υπάρχει ελεύθερο πλαίσιο, χρησιμοποίησε αλγόριθμο εντοπισμό του πλαισίου θύματος (victim frame) για την επιλογή του πλαισίου που θα αντικατασταθεί 3.Διάβασε τη σελίδα μέσα στο ελεύθερο πλαίσιο 4.Ενημέρωσε τον πίνακα σελίδων της διεργασίας (και πιθανά τον πίνακα πλαισίων που τηρεί το ΛΣ) 5.Επανεκκίνηση της διεργασίας

22 Λειτουργικά Συστήματα/ Slide 22 Σχηματική Αναπαράσταση Αντικατάστασης Σελίδας

23 Λειτουργικά Συστήματα/ Slide 23 Απόδοση * Ένα σφάλμα σελίδας, «πιάνεται» από το ΛΣ * Αποθήκευση των καταχωρητών χρήστη και της κατάστασης της διεργασίας * Προσδιορισμός της διακοπής ως σφάλμα σελίδας * Έλεγχος εγκυρότητας αναφοράς στη σελίδα και προσδιορισμός της θέσης της στο δίσκο

24 Λειτουργικά Συστήματα/ Slide 24 Απόδοση (συνέχεια) * Ανάγνωση από το δίσκο σε ένα ελεύθερο πλαίσιο. Περιλαμβάνει: n πιθανή αναμονή στην ουρά του δίσκου, n αναμονή για αναζήτηση και καθυστέρηση (seek and latency) n μεταφορά της σελίδας από το δίσκο * Πιθανή ανάθεση της ΚΜΕ σε άλλη διεργασία * Διακοπή λόγω ολοκλήρωσης Ι/Ο από το δίσκο

25 Λειτουργικά Συστήματα/ Slide 25 Απόδοση (συνέχεια) * Αποθήκευση της κατάστασης της διεργασίας που εκτελείται * Προσδιορισμός ότι η διακοπή είναι από το δίσκο * Διόρθωση πίνακα σελίδων και άλλων πιθανά πινάκων * Αναμονή για ανάθεση της ΚΜΕ ξανά στη διεργασία αυτή * Αποκατάσταση κατάστασης διεργασίας και καταχωρητών χρηστών και επανεκκίνηση της εντολής που προκάλεσε το σφάλμα σελίδας

26 Λειτουργικά Συστήματα/ Slide 26 Απόδοση (συνέχεια) * Πιθανότητα σφάλματος σελίδας, p: 0  p  1 n Αν p = 0, δεν υπάρχουν λάθη σελίδας n Αν p = 1, κάθε αναφορά στη μνήμη προκαλεί σφάλμα σελίδας * Πραγματικός χρόνος πρόσβασης (effective access time – EAT) EAT = (1 – p) x χρόνος προσπέλασης στη μνήμη + p (φόρτος σφάλματος σελίδας + [μεταφορά σελίδας εκτός] + μεταφορά σελίδας εντός + φόρτος επανεκκίνησης)

27 Λειτουργικά Συστήματα/ Slide 27 Παράδειγμα * Χρόνος πρόσβασης κύριας μνήμης = 1μs * Με πιθανότητα 0.5 τα περιεχόμενα του πλαισίου που αντικαθίσταται έχουν αλλάξει, οπότε πρέπει να αντιγραφεί στο αποθηκευτικό μέσο * Χρόνος μεταφοράς πλαισίου από/προς αποθηκευτικό μέσο = 10ms * Μέσος χρόνος αντικατάστασης: n swap time = 0.5 x 10ms + 10ms = 15 ms = μs * Πραγματικός χρόνος πρόσβασης: n ΕΑΤ = (1 - p) x 1μs + p x swap time = 1 - p p μs = ~ p μs

28 Λειτουργικά Συστήματα/ Slide 28 Μελέτη Αλγορίθμων Αντικατάστασης Σελίδων * Στόχος: Ο χαμηλότερος δυνατός ρυθμός λαθών σελίδας * Προσδιορισμός συγκεκριμένης ακολουθίας αναφορών σελίδων (memory references) που ονομάζεται συμβολοσειρά αναφοράς (reference string) * Αξιολόγηση του αλγορίθμου μετρώντας την επίδοση του (αριθμό λαθών σελίδας) για τη συγκεκριμένη συμβολοσειρά αναφοράς

29 Λειτουργικά Συστήματα/ Slide 29 Αναμενόμενη Συμπεριφορά Συστήματος

30 Λειτουργικά Συστήματα/ Slide 30 Ο Βέλτιστος Αλγόριθμος (Optimal Algorithm) * Ποιά είναι η ιδιότητα του ιδανικού ή βέλτιστου αλγορίθμου, που ελαχιστοποιεί τον αριθμό σφαλμάτων; n O αλγόριθμος να αντικαθιστά κάθε φορά εκείνη την σελίδα που δεν πρόκειται να χρησιμοποιηθεί από το πρόγραμμα για το μεγαλύτερο χρονικό διάστημα κατά την προσεχή εκτέλεση * Πως, όμως, μπορούμε να υλοποιήσουμε αυτή την ιδιότητα; * Xρησιμοποιείται ουσιαστικά και ως σημείο αναφοράς για το πόσο καλά λειτουργούν οι υπόλοιποι (πραγματικοί) αλγόριθμοι

31 Λειτουργικά Συστήματα/ Slide 31 Βέλτιστη Αντικατάσταση Σελίδων

32 Λειτουργικά Συστήματα/ Slide 32 Αλγόριθμος First-In-First-Out (FIFO) * Η επιλογή του θύματος προς αντικατάσταση γίνεται με βάση την ηλικία της σελίδας * Ως θύμα επιλέγεται κάθε φορά που η πιο παλιά σελίδα, δηλαδή αυτή που έχει παραμείνει στην μνήμη το μεγαλύτερο χρονικό διάστημα * Δεν χρησιμοποιείται πληροφορία για την συχνότητα χρήσης των σελίδων, ούτε για το πόσο πρόσφατα έχουν χρησιμοποιηθεί * Η αντικατάσταση FIFO παρουσιάζει το παράδοξο του Belady

33 Λειτουργικά Συστήματα/ Slide 33 Αλγόριθμος FIFO - Παράδειγμα

34 Λειτουργικά Συστήματα/ Slide 34 Το Παράδοξο του Belady * Συμβολοσειρά αναφοράς: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 * 3 πλαίσια: * 4 πλαίσια: page faults page faults 4 43

35 Λειτουργικά Συστήματα/ Slide 35 Το Παράδοξο του Belady

36 Λειτουργικά Συστήματα/ Slide 36 Αλγόριθμος Least Recently Used (LRU) * Επιλέγεται η σελίδα που χρησιμοποιήθηκε λιγότερο πρόσφατα (δεν είναι απαραίτητα αυτή που χρησιμοποιήθηκε συνολικά λιγότερο!) * Χρησιμοποιείται ένα ρολόι * Κάθε καταχώρηση στον πίνακα σελίδων έχει μια χρονοσφραγίδα (timestamp) * Κάθε φορά που γίνεται μια αναφορά σελίδας τα περιεχόμενα του ρολογιού αντιγράφονται στο αντίστοιχο πεδίο του πίνακα σελίδων * Επιλογή της σελίδας με τη μικρότερη χρονοσφραγίδα

37 Λειτουργικά Συστήματα/ Slide 37 Αντικατάσταση Σελίδων με τον LRU

38 Λειτουργικά Συστήματα/ Slide 38 Υλοποίηση LRU με Στοίβα * Τήρηση στοίβας με αριθμούς σελίδων * Η στοίβα υλοποιείται με διπλά συνδεδεμένη λίστα μεταξύ των στοιχείων του πίνακα σελίδων * Όταν γίνεται αναφορά σε μια σελίδα, αυτή μετακινείται στην κορυφή της στοίβας (γίνεται αλλαγή δεικτών) * Στη χειρότερη περίπτωση απαιτείται αλλαγή 6 δεικτών * Πολύ πιο γρήγορο από τη σύγκριση τιμών των χρονοσφραγίδων των καταχωρήσεων του πίνακα

39 Λειτουργικά Συστήματα/ Slide 39 Απεικόνιση Κατάστασης Στοίβας

40 Λειτουργικά Συστήματα/ Slide 40 Αλγόριθμος LRU (συνέχεια) * Τόσο ο βέλτιστος αλγόριθμος όσο και ο LRU (όπως και κάθε αλγόριθμος στοίβας*) δεν πάσχουν από το παράδοξο του Belady * (*) Αλγόριθμος στοίβας θεωρείται ένας αλγόριθμος όταν μπορεί να αποδειχθεί ότι το σύνολο των σελίδων που βρίσκονται στη μνήμη για n πλαίσια, είναι υποσύνολο των σελίδων που θα βρίσκονταν στη μνήμη για n+1 πλαίσια

41 Λειτουργικά Συστήματα/ Slide 41 Αλγόριθμος LRU (συνέχεια) * Η όποια υλοποίηση του LRU, απαιτεί ειδικό υλικό, αφού η ενημέρωση του πίνακα σελίδων ή της στοίβας πρέπει να γίνεται σε κάθε αναφορά σελίδας (ο χειρισμός της κατάστασης αυτής από λογισμικό θα επιβάρυνε πολύ το χρόνο εκτέλεσης των διεργασιών)

42 Λειτουργικά Συστήματα/ Slide 42 Μέθοδοι Προσέγγισης LRU * Bit αναφοράς: n Με κάθε σελίδα συσχετίζεται ένα bit, αρχικά έχει την τιμή 0 n Όταν γίνεται αναφορά στη σελίδα, η τιμή του αλλάζει σε 1 n Επιλέγεται η σελίδα που έχει bit αναφοράς 0 (αν υπάρχει τέτοια) n Όταν όλες οι σελίδες έχουν το bit αναφοράς = 1, πρέπει να επιλέξουμε μια τυχαία σελίδα * Δεύτερη ευκαιρία (μαζί με bit αναφοράς): n Χρήση ρολογιού

43 Λειτουργικά Συστήματα/ Slide 43 Αλγόριθμοι Προσέγγισης LRU (συνέχεια) Δεύτερη ευκαιρία (Second chance): * Ελέγχεται το bit αναφοράς (0=αντικατάσταση) * Κυκλική Αντικατάσταση (υλοποίηση σε κυκλική ουρά, FIFO) * Αν η σελίδα που είναι να αντικατασταθεί έχει bit αναφοράς 1, τότε: n Θέσε το bit αναφοράς 0 και το χρόνο άφιξης στον τρέχοντα χρόνο n Άφησε τη σελίδα στη μνήμη (δεύτερη ευκαιρία) n Αντικατέστησε την επόμενη (FIFO) σελίδα

44 Λειτουργικά Συστήματα/ Slide 44 Αλγόριθμος Αντικατάστασης Σελίδας Δεύτερης Ευκαιρίας (Ρολογιού)

45 Λειτουργικά Συστήματα/ Slide 45 Αλγόριθμοι Μέτρησης Συχνότητας Χρήσης * Για κάθε σελίδα τηρείται μετρητής για το πλήθος των αναφορών που έχουν γίνει στην σελίδα αυτή * Αλγόριθμος LFU (least frequently used): αντικαθιστά τη σελίδα της οποίας ο μετρητής έχει τη μικρότερη τιμή n Λογική: Αφού η σελίδα έχει χρησιμοποιηθεί τόσο συχνά, έχει μεγάλη πιθανότητα να χρησιμοποιηθεί και στο μέλλον * Αλγόριθμος MFU (most frequently used): αντικαθιστά τη σελίδα της οποίας ο μετρητής έχει τη μεγαλύτερη τιμή n Λογική: Μια σελίδα που έχει μόλις έρθει στην μνήμη (και άρα έχει εξ’ ορισμού μικρό αριθμών αναφορών) είναι πιθανό να χρησιμοποιηθεί στο μέλλον

46 Λειτουργικά Συστήματα/ Slide 46 Ανάθεση Πλαισίων σε Διεργασίες (Allocation of Frames) * Κάθε διεργασία χρειάζεται έναν ελάχιστο αριθμό από σελίδες να βρίσκονται στην κύρια μνήμη του συστήματος * Παράδειγμα: IBM 370 – 6 σελίδες για το χειρισμό της εντολής SS MOVE: n Η εντολή είναι 6 bytes, μπορεί να διατρέχει δύο σελίδες n 2 σελίδες για το χειρισμό του από n 2 σελίδες για το χειρισμό του προς * Δύο κυρίως σχήματα ανάθεσης πλαισίων n Σταθερή ανάθεση n Ανάθεση κατά προτεραιότητα

47 Λειτουργικά Συστήματα/ Slide 47 Σταθερή Ανάθεση * Εξισορροπημένη ανάθεση: π.χ., για 100 διαθέσιμα πλαίσια και 5 διεργασίες δώσε στην καθεμιά 5 πλαίσια * Αναλογική Ανάθεση: Ανάθεση ανάλογα με το μέγεθος της διεργασίας ΥπολογισμόςΠαράδειγμα

48 Λειτουργικά Συστήματα/ Slide 48 Ανάθεση κατά Προτεραιότητα * Χρήση ενός αναλογικού σχήματος με βάση την προτεραιότητα (και όχι το μέγεθος) μιας διεργασίας * Αν η διεργασία P i δημιουργήσει ένα σφάλμα σελίδας: n Επιλογή για αντικατάσταση ενός από τα πλαίσιά της n Επιλογή για αντικατάσταση ενός πλαισίου από διεργασία χαμηλότερης προτεραιότητας

49 Λειτουργικά Συστήματα/ Slide 49 Γενικές Πολικές εναντίον Τοπικών Πολιτικών Αντικατάστασης * Γενική αντικατάσταση (global replacement): Μια διεργασία επιλέγει ένα πλαίσιο για αντικατάσταση από τη λίστα όλων των πλαισίων n Μια διεργασία μπορεί να πάρει ένα πλαίσιο από μια άλλη διεργασία * Τοπική αντικατάσταση (local replacement): Κάθε διεργασία επιλέγει από το σύνολο των σελίδων που έχουν ανατεθεί σε αυτή n Η εκτέλεση μιας διεργασίας δεν επηρεάζει την κατάσταση των σελίδων/πλαισίων των υπολοίπων

50 Λειτουργικά Συστήματα/ Slide 50 Πτώση της Απόδοσης – Thrashing * Αν μια διεργασία δεν έχει «αρκετές» σελίδες, ο ρυθμός λαθών σελίδας είναι πολύ υψηλός. Αυτό οδηγεί σε: n χαμηλή χρησιμοποίηση της ΚΜΕ n το ΛΣ θεωρεί ότι πρέπει να αυξήσει το βαθμό του πολυπρογραμματισμού n μια επιπλέον διεργασία εισάγεται στο σύστημα * Thrashing: Μια διεργασία χάνει τον χρόνο της μετακινώντας σελίδες από/προς το μέσο αποθήκευσης

51 Λειτουργικά Συστήματα/ Slide 51 Συνηθισμένη Καμπύλη Thrashing

52 Λειτουργικά Συστήματα/ Slide 52 Καταπολέμηση Thrashing * Στο σημείο που ξεκινάει η εμφάνιση του φαινομένου του thrashing, θα πρέπει να μειωθεί ο βαθμός πολυπρογραμματισμού * Το φαινόμενο του thrashing μπορεί να περιοριστεί με χρήση τοπικών πολιτικών τοποθέτησης * Για να αποτραπεί το thrashing πρέπει η κάθε διεργασία να κατέχει όσα πλαίσια χρειάζεται * Πως, όμως, μπορούμε να γνωρίζουμε πόσα πλαίσια χρειάζεται μια διεργασία;

53 Λειτουργικά Συστήματα/ Slide 53 Καταγραφή Συχνότητας Σφαλμάτων Σελίδας Διεργασιών * Το φαινόμενο του thrashing μπορεί να καταπολεμηθεί με την παρακολούθηση του ρυθμού σφαλμάτων σελίδας των διεργασιών * Όταν είναι μεγάλος, γνωρίζουμε ότι η διεργασία χρειάζεται και κερδίζει πλαίσια, ενώ όταν είναι μικρός πιθανόν να έχει παραπάνω και να τα χάνει * Μπορούμε να δημιουργήσουμε άνω και κάτω όρια στον επιθυμητό ρυθμό σφαλμάτων σελίδας

54 Λειτουργικά Συστήματα/ Slide 54 Καμπύλη Συχνότητας Σφαλμάτων Σελίδας Διεργασίας

55 Λειτουργικά Συστήματα/ Slide 55 Τοπικότητα Διεργασιών * Γιατί δουλεύει το μοντέλο της σελιδοποίησης; * Μοντέλο τοπικότητας (locality model) n Κάθε διεργασία αναφέρεται για μεγάλα χρονικά διαστήματα σε ένα σχετικά περιορισμένο αριθμό σελίδων (τοπικότητα) n Οι διεργασίες μετακινούνται μεταξύ τοπικοτήτων n Οι τοπικότητες μπορεί να επικαλύπτονται * Γιατί συμβαίνει thrashing; *  μεγέθους τοπικότητας > συνολικό μέγεθος μνήμης

56 Λειτουργικά Συστήματα/ Slide 56 Δείγμα Αναφορών Μνήμης

57 Λειτουργικά Συστήματα/ Slide 57 Μοντέλο Συνόλου Εργασίας (Working-Set Model) *  (παράθυρο συνόλου εργασίας) = μια συγκεκριμένη ακολουθία αναφορών σελίδων, π.χ. ανά 10,000 εντολές * WSS i (σύνολο εργασίας για τη διεργασία P i ) = ο συνολικός αριθμός σελίδων που αναφέρθηκαν στο πιο πρόσφατο  n Το σύνολο εργασίας μεταβάλλεται με το χρόνο n Αν το  είναι πολύ μικρό πιθανώς να μην συμπεριλαμβάνει μια ολόκληρη τοπικότητα n Αν το  είναι πολύ μεγάλο πιθανώς να συμπεριλαμβάνει πολλές διαφορετικές τοπικότητες n Αν το  =   περικλείει ολόκληρο το πρόγραμμα

58 Λειτουργικά Συστήματα/ Slide 58 Μοντέλο Συνόλου Εργασίας (συνέχεια) * D =  WSS i  συνολική απαίτηση σε πλαίσια * Αν D > m (συνολικός αριθμός διαθέσιμων πλαισίων)  θα συμβεί thrashing γιατί ορισμένες διεργασίες δε θα έχουν αρκετά πλαίσια * Αν D > m, τότε προσωρινό σταμάτημα κάποιας διεργασίας

59 Λειτουργικά Συστήματα/ Slide 59 Μοντέλο Συνόλου Εργασίας (συνέχεια) * Η αρχή του μοντέλου είναι απλή: n Το ΛΣ επιβλέπει το σύνολο εργασίας για κάθε διεργασία και αναθέτει σε αυτή τόσα πλαίσια όσα το μέγεθός του n Εφόσον υπάρχουν αρκετά πλαίσια ξεκινάει άλλη διεργασία n Η πολιτική του συνόλου εργασίας αποτρέπει το thrashing και κρατάει το βαθμό πολυπρογραμματισμού όσο το δυνατόν μεγαλύτερο (βελτιστοποιεί τη χρήση της ΚΜΕ)

60 Λειτουργικά Συστήματα/ Slide 60 Μοντέλο Συνόλου Εργασίας (συνέχεια)

61 Λειτουργικά Συστήματα/ Slide 61 Καταγραφή του Συνόλου Εργασίας * Προσέγγιση με έναν μετρητή διαστημάτων + bit αναφοράς * Παράδειγμα:  = 10,000 n Ο μετρητής διακόπτει μετά από 5000 αναφορές n Τήρηση στη μνήμη δύο bits για κάθε σελίδα n Όταν διακόψει ο μετρητής, αντιγράφει τις τιμές των bits αναφοράς σελίδας και τα θέτει στην τιμή 0 n Αν κάποιο από τα bits της μνήμης = 1  η σελίδα ανήκει στο σύνολο εργασίας * Είναι απολύτως ακριβής αυτή η διαδικασία; * Βελτίωση: 10 bits και διακοπή κάθε 1000 μονάδες χρόνου

62 Λειτουργικά Συστήματα/ Slide 62 Ανάθεση Μνήμης Πυρήνα * Πρέπει να αντιμετωπίζεται διαφορετικά από τη μνήμη χρήστη * Συνήθως ανατίθεται από μια «δεξαμενή» ελεύθερης μνήμης n Ο πυρήνας ζητάει μνήμη για δομές με μεταβαλλόμενα μεγέθη n Υπάρχει μνήμη πυρήνα που απαιτείται να είναι συνεχόμενη

63 Λειτουργικά Συστήματα/ Slide 63 Σύστημα των Φίλων * Αναθέτει μνήμη από τμήμα συγκεκριμένου μεγέθους που αποτελείται από συνεχόμενα πλαίσια * Η μνήμη ανατίθεται χρησιμοποιώντας τμήματα μεγέθους δύναμη του 2 (power-of-2 allocator) n Ικανοποιεί αιτήσεις σε μονάδες με μέγεθος δύναμη του 2 n Η αίτηση «στρογγυλεύεται» στην πλησιέστερη μεγαλύτερη (από την αίτηση) δύναμη του 2 n Όταν απαιτείται μικρότερη ανάθεση από αυτή που είναι διαθέσιμη, το τρέχον τμήμα χωρίζεται σε δύο τμήματα με μέγεθος την αμέσως μικρότερη δύναμη του 2  Συνέχισε έως ότου είναι διαθέσιμο κομμάτι κατάλληλου μεγέθους

64 Λειτουργικά Συστήματα/ Slide 64 Ανάθεση Μνήμης με το Σύστημα των Φίλων

65 Λειτουργικά Συστήματα/ Slide 65 Slabs * Εναλλακτική στρατηγική * Ένα slab είναι ένα ή περισσότερα συνεχόμενα πλαίσια * Μια cache αποτελείται από ένα ή περισσότερα slabs * Μια διαφορετική cache για κάθε ξεχωριστή δομή δεδομένων του πυρήνα n Κάθε cache γεμίζει με αντικείμενα (objects) – στιγμιότυπα της δομής δεδομένων (π.χ. περιγραφείς διεργασιών)

66 Λειτουργικά Συστήματα/ Slide 66 Slabs (συνέχεια) * Όταν δημιουργείται η cache, γεμίζει με αντικείμενα που χαρακτηρίζονται ελεύθερα * Όταν αποθηκεύονται δομές, τα αντικείμενα χαρακτηρίζονται χρησιμοποιημένα * Αν ένα slab είναι γεμάτο χρησιμοποιημένα αντικείμενα, το επόμενο αντικείμενο ανατίθεται από ένα άδειο slab n Αν δεν υπάρχουν άδεια slabs, δημιουργείται ένα νέο slab από συνεχόμενα πλαίσια και ανατίθεται στην cache

67 Λειτουργικά Συστήματα/ Slide 67 Ανάθεση Slabs

68 Λειτουργικά Συστήματα/ Slide 68 Slabs (συνέχεια) * Πλεονεκτήματα: δεν υπάρχει κατακερματισμός, γρήγορη ικανοποίηση αιτήσεων για μνήμη * Τα αντικείμενα δημιουργούνται εκ των προτέρων, συνεπώς η ανάθεσή τους από την cache μπορεί να είναι γρήγορη * Αρχικά εμφανίστηκαν στον πυρήνα του Solaris 2.4. Το Linux αν και ξεκίνησε με το σύστημα των φίλων από την έκδοση 2.2 και μετά χρησιμοποιεί τα slabs

69 Λειτουργικά Συστήματα/ Slide 69 Άλλα Ζητήματα για Μελέτη * Δυνατότητες TLB: Η ποσότητα της μνήμης που είναι προσπελάσιμη μέσω TLB. Στην ιδανική περίπτωση το σύνολο εργασίας για κάθε διεργασία αποθηκεύεται στο TLB, αλλιώς υπάρχει υψηλός ρυθμός σφαλμάτων * Πρόβλεψη για πολλαπλά μεγέθη σελίδας: Αυτό επιτρέπει σε εφαρμογές που χρειάζονται μεγαλύτερο μέγεθος σελίδας να το χρησιμοποιήσουν χωρίς αύξηση του κατακερματισμού * I/O Interlock: Οι σελίδες πρέπει ορισμένες φορές να κλειδώνονται στη μνήμη για να μην πέσουν θύματα αντικατάστασης, π.χ. στην περίπτωση αντιγραφής δεδομένων από/προς συσκευές * Προληπτική φόρτωση (prefetching): Μεταφέρονται σελίδες στην κύρια μνήμη χωρίς να έχει δημιουργηθεί σφάλμα για αυτές (αλλά για κάποιο λόγο θεωρείται πιθανό να γίνει αναφορά σε αυτές)

70 Λειτουργικά Συστήματα/ Slide 70 I/O Interlocking

71 Λειτουργικά Συστήματα/ Slide 71 Άλλα Ζητήματα για Μελέτη (συνέχεια) * Πίνακας με κάθε γραμμή να αποθηκεύεται σε μια σελίδα: int a[][] = new int[1024][1024]; * Πρόγραμμα 1: for (j = 0; j < a.length; j++) for (i = 0; i < a.length; i++) a[i,j] = 0; 1024 x 1024 σειριακές αναφορές σε διαφορετικές σελίδες * Πρόγραμμα 2: for (i = 0; i < a.length; i++) for (j = 0; j < a.length; j++) a[i,j] = 0; 1024 σειριακές αναφορές σε διαφορετικές σελίδες

72 Λειτουργικά Συστήματα/ Slide 72 Αλγόριθμοι Αποθήκευσης Σελίδων (Page Buffering Algorithms) * Τήρηση «δεξαμενής» ελεύθερων πλαισίων * Τήρηση λίστας με τις σελίδες που έχουν τροποποιηθεί * Σε τακτά χρονικά διαστήματα (όταν δεν υπάρχει δραστηριότητα σελιδοποίησης), γίνεται επιλογή κάποιων σελίδων και εγγραφή τους στο δίσκο * Τήρηση λίστας ελεύθερων πλαισίων, τα οποία «θυμούνται» τις σελίδες που βρίσκονταν εκεί πριν μείνουν ελεύθερα, ώστε να αποφευχθεί περιττή μεταφορά τους από τον δίσκο

73 Λειτουργικά Συστήματα/ Slide 73 Επιλογή Μεγέθους Σελίδας * Από τις πιο σημαντικές παραμέτρους ενός ΛΣ * Κατακερματισμός * Μήκος πίνακα σελίδων * Φόρτος I/O * Τοπικότητα

74 Λειτουργικά Συστήματα/ Slide 74 Windows XP * Χρησιμοποιεί σελιδοποίηση κατ’ απαίτηση με ομαδοποίηση (clustering), για την προφόρτωση των σελίδων που βρίσκονται εκατέρωθεν της σελίδας που δημιούργησε σφάλμα * Οι διεργασίες έχουν ελάχιστο και μέγιστο σύνολο εργασίας

75 Λειτουργικά Συστήματα/ Slide 75 Windows XP * Κάθε διεργασία αρχίζει με το ελάχιστο σύνολο εργασίας και μπορεί σταδιακά να αυξήσει τα πλαίσια της μέχρι να φτάσει το μέγιστο * Όταν η ποσότητα της ελεύθερης μνήμης του συστήματος πέσει κάτω από ένα κατώφλι, τότε εκτελείται αυτόματα περιστολή συνόλου εργασίας (working set trimming) για την ανάκτηση της ποσότητας της ελεύθερης μνήμης, εκτός των ελάχιστων συνόλων εργασίας

76 Λειτουργικά Συστήματα/ Slide 76 Solaris 2 * Τηρεί μια λίστα με ελεύθερα πλαίσια για τις διεργασίες * Lotsfree – παράμετρος κατώφλι για την έναρξη σελιδοποίησης (μεταφορά πλαισίων στον δίσκο) * Η σελιδοποίηση εκτελείται από τη διεργασία pageout, η οποία ψάχνει για σελίδες χρησιμοποιώντας τον τροποποιημένο αλγόριθμο του ρολογιού * Ο Scanrate είναι ο ρυθμός με τον οποίο ψάχνονται οι σελίδες. Ποικίλει από το slowscan στο fastscan. * Η pageout καλείται ανάλογα με την ποσότητα ελεύθερης μνήμης που είναι διαθέσιμη

77 Λειτουργικά Συστήματα/ Slide 77 Solar Page Scanner


Κατέβασμα ppt "Εικονική Μνήμη Λειτουργικά Συστήματα. Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων των Π.Λάμψας & Σ. Λάλης."

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


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