360 likes | 543 Views
Διαχείριση μνήμης. Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση Κατάτμηση Κατάτμηση με σελιδοποίηση. Λογικός και Φυσικός Χώρος Διευθύνσεων. Λογική διεύθυνση: παράγεται από την ΚΜΕ (ονομάζεται και εικονική διεύθυνση) Φυσική διεύθυνση: η διεύθυνση που «βλέπει» η μονάδα μνήμης
E N D
Διαχείριση μνήμης • Υπόβαθρο • Εναλλαγή • Συνεχής κατανομή • Σελιδοποίηση • Κατάτμηση • Κατάτμηση με σελιδοποίηση
Λογικός και Φυσικός Χώρος Διευθύνσεων • Λογική διεύθυνση: παράγεται από την ΚΜΕ (ονομάζεται και εικονική διεύθυνση) • Φυσική διεύθυνση: η διεύθυνση που «βλέπει» η μονάδα μνήμης • Οι λογικές και οι φυσικές διευθύνσεις δεν είναι ίδιες σε συστήματα που συνδέουν τις διευθύνσεις κατά το χρόνο εκτέλεσης
Μονάδα Διαχείρισης Μνήμης (MMU) • Συσκευή υλικού που αντιστοιχεί εικονικές σε φυσικές διευθύνσεις • Η τιμή στον καταχωρητή μετατόπισης προστίθεται σε κάθε διεύθυνση που παράγεται από μια διεργασία όταν στέλνεται στη μνήμη • Η διεργασία ασχολείται με λογικές διευθύνσεις και ποτέ δε «βλέπει» τις φυσικές
Δυναμική μετατόπιση με χρήση καταχωρητή
Εναλλαγή • Μια διεργασία μπορεί να εναλλαγεί προσωρινά εκτός μνήμης σε μια δευτερεύουσα αποθήκευση, και μετά να ξαναμεταφερθεί στη μνήμη για περαιτέρω εκτέλεση • Δευτερεύουσα αποθήκευση – γρήγορος δίσκος αρκετά μεγάλος ώστε να αποθηκεύει αντίγραφα όλων των εικόνων μνήμης για όλους τους χρήστες (άμεση πρόσβαση) • Roll out, roll in: παραλλαγή για δρομολόγηση βασισμένη σε προτεραιότητες • Χρόνος εναλλαγής είναι κυρίως χρόνος μεταφοράς (ευθέως ανάλογος του ποσού μνήμης που εναλλάσσεται)
Ανάθεση συνεχόμενης μνήμης • Συνήθως δύο διαμερίσεις της κύριας μνήμης: • Παραμένον λειτουργικό σύστημα (συνήθως σε χαμηλές διευθύνσεις) • Διεργασίες χρηστών στις υψηλές διευθύνσεις • Καταχωρητής μετατόπισης για προστασία διεργασιών μεταξύ τους καθώς και του λειτουργικού συστήματος. Περιέχει τιμή μικρότερης φυσικής διεύθυνσης. • Καταχωρητής ορίου περιέχει εμβέλεια λογικών διευθύνσεων
Υποστήριξη υλικού για καταχωρητές μετατόπισης και ορίου
Ανάθεση συνεχόμενης μνήμης • Κατανομή πολλαπλών διαμερίσεων • Οπή – τμήμα διαθέσιμης μνήμης. Οπές διαφόρων μεγεθών διάσπαρτες στη μνήμη. • Όταν έρχεται διεργασία της δίνεται μνήμη από μια οπή αρκετά μεγάλη. • Το Λ.Σ. κρατά πληροφορίες σχετικά με: α) κατανεμημένες διαμερίσεις β) οπές ΛΣ ΛΣ ΛΣ ΛΣ Διεργασία 5 Διεργασία 5 Διεργασία 5 Διεργασία 5 Διεργασία 9 Διεργασία 9 Διεργασία 8 Διεργασία 10 Διεργασία 2 Διεργασία 2 Διεργασία 2 Διεργασία 2
Πρόβλημα δυναμικής ανάθεσης μνήμης Πώς μπορεί να ικανοποιηθεί ένα αίτημα ορισμένου μεγέθους από μια λίστα οπών; • Πρώτο ταίριασμα: Ανάθεσε την πρώτη οπή που είναι αρκετά μεγάλη (καλύτερο για ταχύτητα και αξιοποίηση μνήμης) • Καλύτερο ταίριασμα: Ανάθεσε τη μικρότερη οπή που είναι αρκετά μεγάλη (καλύτερο για αξιοποίηση μνήμης) • Χειρότερο ταίριασμα: Ανάθεσε τη μεγαλύτερη οπή
Κατακερματισμός • Εξωτερικός – ολόκληρη η μνήμη διαθέσιμη για εξυπηρέτηση αίτησης, αλλά όχι συνεχής. • Εσωτερικός – η μνήμη που ανατίθεται είναι μεγαλύτερη από το αίτημα. Η διαφορά είναι εσωτερική της διαμέρισης, δε μπορεί να χρησιμοποιηθεί. • Μείωση εξωτερικού κατακερματισμού με συμπύκνωση (compaction) • Μετακίνησε περιεχόμενα μνήμης για να είναι συνεχόμενη όλη η ελεύθερη μνήμη • Δυνατή μόνο αν η μετατόπιση είναι δυναμική και κατά το χρόνο εκτέλεσης
Σελιδοποίηση • Φυσικός χώρος διευθύνσεων μπορεί να μην είναι συνεχόμενος (ανατίθεται φυσική μνήμη σε διεργασία όταν αυτή είναι διαθέσιμη) • Διαίρεση φυσικής μνήμης σε τμήματα σταθερού μεγέθους (πλαίσια) με μέγεθος δύναμη του 2 (συνήθως 512 bytes ως 16ΜB) • Διαίρεση λογικής μνήμης σε τμήματα ίδιου μεγέθους (σελίδες) • Διατήρηση πληροφορίας για τα ελεύθερα πλαίσια • Για εκτέλεση προγράμματος νσελίδων χρειάζεται να βρεθούν ν ελεύθερα πλαίσια και να φορτωθεί • Καταρτίζεται ένας πίνακας σελίδων για τη μετάφραση λογικών σε φυσικές διευθύνσεις • Εσωτερικός κατακερματισμός
Σχήμα μετάφρασης διεύθυνσης • Η διεύθυνση που παράγεται από την ΚΜΕ διαιρείται σε: • Αριθμό σελίδας (p) – χρησιμοποιείται ως δείκτης σε ένα πίνακα σελίδων που περιέχει τη διεύθυνση βάσης κάθε σελίδας στη φυσική μνήμη • Σχετική διεύθυνση σελίδας (d) – συνδυάζεται με τη διεύθυνση βάσης για να ορίσει τη διεύθυνση φυσικής μνήμης που στέλνεται στη μνήμη
Αρχιτεκτονική μετάφρασης διεύθυνσης
Υλοποίηση πίνακα σελίδων • Ο πίνακας σελίδων τηρείται στην κύρια μνήμη. • Καταχωρητής βάσης πίνακα σελίδων (PTBR) δείχνει στον πίνακα σελίδων. • Καταχωρητής μήκους πίνακα σελίδων (PΤLR) δείχνει το μέγεθος του πίνακα σελίδων. • Κάθε προσπέλαση δεδομένων/εντολής απαιτεί δύο προσπελάσεις στη μνήμη:μία για τον πίνακα σελίδων και μία για τα δεδομένα/εντολή. • Το πρόβλημα των δύο προσπελάσεων λύνεται με τη χρήση μιας ειδικής γρήγορης κρυφής μνήμης που λέγεται συσχετιστική μνήμη ή ενδιάμεση μνήμη μετάφρασης (TLB).
Συσχετιστική μνήμη Σελίδα # Πλαίσιο # • Παράλληλη αναζήτηση: • Μετάφραση διεύθυνσης • Αν ο αριθμός σελίδας υπάρχει σε εγγραφή της TLB, επέστρεψε τον αντίστοιχο αριθμό πλαισίου • Αν όχι επέστρεψε τον αριθμό πλαισίου από τον πίνακα σελίδων στην κύρια μνήμη
Πραγματικός χρόνος πρόσβασης στη μνήμη • Αναζήτηση στην TLB = ε χρονικές μονάδες • Προσπέλαση RAM = μ χρονικές μονάδες • Λόγος επιτυχίας – ποσοστό των φορών που ένας αριθμός σελίδας βρίσκεται στην TLB (έχει σχέση με το πλήθος εγγραφών) • Λόγος επιτυχίας = α • Πραγματικός χρόνος πρόσβασης (EAT) EAT = (μ + ε) α + (2μ + ε)(1 – α) = μ (2 - α) + ε
Προστασία μνήμης • Υλοποιείται συσχετίζοντας ένα bit προστασίας με κάθε πλαίσιο • Bit εγκυρότητας-ακυρότητας για κάθε καταχώρηση του πίνακα σελίδων: • «έγκυρο» δείχνει ότι η σχετική σελίδα είναι στο λογικό χώρο διευθύνσεων της διεργασίας, άρα είναι νόμιμη σελίδα. • «άκυρο» δείχνει ότι η σελίδα δεν είναι στο λογικό χώρο διευθύνσεων της διεργασίας
Bit εγκυρότητας/ακυρότητας σε πίνακα σελίδων
Διαμοιραζόμενες σελίδες • Διαμοιραζόμενος κώδικας • Ένα αντίγραφο κώδικα μόνο για ανάγνωση (reentrant) διαμοιραζόμενο μεταξύ διεργασιών (π.χ. συντάκτες κειμένου, μεταγλωττιστές, παραθυρικά συστήματα). • Ο διαμοιραζόμενος κώδικας πρέπει να εμφανίζεται στην ίδια θέση του λογικού χώρου διευθύνσεων όλων των διεργασιών. • Ιδιωτικός κώδικας και δεδομένα • Κάθε διεργασία διατηρεί ξεχωριστό αντίγραφο του κώδικα και των δεδομένων. • Οι σελίδες για τον ιδιωτικό κώδικα και τα δεδομένα μπορούν να εμφανίζονται οπουδήποτε στο λογικό χώρο διευθύνσεων.
Κατάτμηση • Σχήμα διαχείρισης μνήμης που υποστηρίζει άποψη του χρήστη για τη μνήμη. • Ένα πρόγραμμα είναι συλλογή από τμήματα. Ένα τμήμα είναι μια λογική μονάδα όπως: κύριο πρόγραμμα, συνάρτηση, τοπικές μεταβλητές, σφαιρικές μεταβλητές, στοίβα, πίνακες κλπ.
1 4 2 3 Λογική άποψη της κατάτμησης 1 2 3 4 Χώρος χρήστη Χώρος φυσικών διευθύνσεων
Αρχιτεκτονική κατάτμησης • Η λογική διεύθυνση αποτελείται από ένα ζεύγος: <αριθμός τμήματος, σχετική διεύθυνση>, • Πίνακας τμημάτων – αντιστοιχεί διευθύνσεις. Κάθε εγγραφή έχει: • βάση – περιέχει την αρχική φυσική διεύθυνση όπου βρίσκεται το τμήμα στη μνήμη. • όριο – καθορίζει το μήκος του τμήματος. • Καταχωρητής βάσης πίνακα τμημάτων (STBR)δείχνει στη θέση του πίνακα στη μνήμη. • Καταχωρητής μήκους πίνακα τμημάτων (STLR)δείχνει τον αριθμό των τμημάτων που χρησιμοποιούνται από ένα πρόγραμμα. • Ο αριθμός τμήματος s είναι νόμιμος αν s < STLR.
Αρχιτεκτονική κατάτμησης • Επανατοποθέτηση: • δυναμική • με πίνακα τμημάτων • Διαμοιρασμός: • διαμοιραζόμενα τμήματα • ίδιος αριθμός τμήματος • Ανάθεση: • πρώτου/καλύτερου ταιριάσματος • εξωτερικός κατακερματισμός
Αρχιτεκτονική κατάτμησης • Προστασία: Με κάθε εγγραφή του πίνακα τμημάτων συσχέτισε • bit εγκυρότητας=0παράνομο τμήμα • δικαιώματα ανάγνωσης/εγγραφής/εκτέλεσης • Τα bits προστασίας συσχετίζονται με τα τμήματα – ο διαμοιρασμός κώδικα γίνεται σε επίπεδο τμήματος. • Αφού τα τμήματα ποικίλουν σε μέγεθος, η ανάθεση μνήμης είναι ένα πρόβλημα δυναμικής αποθήκευσης-ανάθεσης. • Ένα παράδειγμα κατάτμησης φαίνεται στο παρακάτω διάγραμμα
Κατάτμηση με σελιδοποίηση • Το παράδειγμα του MULTICS : • έλυσε το πρόβλημα εξωτερικού κατακερματισμού • μείωσε το χρόνο αναζήτησης σελιδοποιώντας τα τμήματα • Η εγγραφή του πίνακα τμημάτων δεν περιέχει τη διεύθυνση βάσης του τμήματος αλλά τη διεύθυνση βάσης ενός πίνακα σελίδων για αυτό το τμήμα.