Εικονική μνήμη: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μ αφαίρεση σήμανσης
Γραμμή 10:
Η βασική ιδέα πίσω από την εικονική μνήμη είναι ότι κάθε πρόγραμμα έχει τον δικό του χώρο διευθύνσεων, ο οποίος διαιρείται σε μικρά κομμάτια που ονομάζονται '''σελίδες (pages)'''. Κάθε σελίδα είναι ένα συνεχές εύρος διευθύνσεων. Οι σελίδες της εικονικής μνήμης χαρτογραφούνται στην φυσική μνήμη, αλλά δεν χρειάζεται να βρίσκονται όλες οι σελίδες στη μνήμη για να εκτελεστεί ένα πρόγραμμα.
Οι διευθύνσεις που δημιουργούνται από τα προγράμματα ονομάζονται εικονικές διευθύνσεις και συνθέτουν τον χώρο εικονικών διευθύνσεων. Σε υπολογιστές που δεν υποστηρίζουν εικονική μνήμη, οι διευθύνσεις που παράγουν τα προγράμματα τοποθετούνται απευθείας στο [[Δίαυλος (υπολογιστές)|δίαυλο]] της μνήμης και προκαλούν την ανάγνωση ή την εγγραφή της λέξης στη φυσική μνήμη με την ίδια διεύθυνση. Σε υπολογιστές με εικονική μνήμη οι εικονικές διευθύνσεις δεν τοποθετούνται αμέσως στον δίαυλο αλλά τοποθετούνται στη [[Μονάδα Διαχείρισης Μνήμης]] (MMU, Memory Management Unit) η οποία αναλαμβάνει την χαρτογράφηση των εικονικών διευθύνσεων σε διευθύνσεις φυσικής μνήμης.
 
[[Αρχείο:Sxhma1.jpg]]
 
Ακολουθεί ένα πολύ απλό παράδειγμα του τρόπου λειτουργίας αυτής της χαρτογράφησης. Ο χώρος των εικονικών διευθύνσεων διαιρείται σε μονάδες σταθερού μεγέθους οι οποίες ονομάζονται σελίδες (pages). Οι αντίστοιχες μονάδες στην φυσική μνήμη ονομάζονται [[πλαίσια σελίδας]] (page frames). Οι σελίδες και τα πλαίσια σελίδας έχουν, ως επί το πλείστον, το ίδιο μέγεθος. Όταν ένα πρόγραμμα καλεί μια εικονική διεύθυνση η μονάδα που ανέλαβε την χαρτογράφηση (MMU) ελέγχει αν η συγκεκριμένη διεύθυνση αντιστοιχίζεται στην φυσική μνήμη. Αν βρίσκεται τότε με βάση την αντιστοίχηση προσκομίζεται η ζητούμενη διεύθυνση. Τι θα συμβεί όμως αν το πρόγραμμα προσπαθήσει να αναφερθεί σε μια σελίδα που δεν έχει χαρτογραφηθεί στην φυσική μνήμη; Η MMU διαπιστώνει ότι η ζητούμενη σελίδα δεν αντιστοιχίζεται στην φυσική μνήμη και αναγκάζει την ΚΜΕ ([[Κεντρική Μονάδα Επεξεργασίας]]) να καταφύγει σε παγίδευση (trap) του λειτουργικού συστήματος. Η παγίδευση αυτή ονομάζεται [[σφάλμα σελίδας]] (page fault). Το λειτουργικό σ’ αυτή την περίπτωση επιλέγει ένα πλαίσιο σελίδας που έχει χρησιμοποιηθεί ελάχιστα και αποθηκεύει τα περιεχόμενά του στον δίσκο. Εν συνεχεία, προσκομίζει από τον δίσκο την ζητούμενη σελίδα και την τοποθετεί στο πλαίσιο σελίδας που μόλις ελευθερώθηκε. Τέλος επαναχαρτογραφείται η MMU και επανεκκινεί την εντολή που προκάλεσε την παγίδευση.