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

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Γραμμή 35:
Η ανάγκη για ταχύτατη χαρτογράφηση μιας μεγάλης μνήμης περιορίζει τον τρόπο κατασκευής των Η/Υ.Ο πιο απλός σχεδιασμός, εννοιολογικά είναι να υπάρχει ένας μόνο πίνακας σελίδων ο οποίος να αποτελείται από έναν πίνακα από γρήγορους καταχωρητές υλικού και να χαρτογραφεί μια καταχώριση σε κάθε εικονική σελίδα, χρησιμοποιώντας ως αριθμοδείκτη θέσης τον αριθμό εικονικής σελίδας.Κατά την έναρξη μιας διεργασίας, το λειτουργικό σύστημα φορτώνει στους καταχωρητές τον πίνακα σελίδων της διεργασίας ο οποίος προέρχεται από ένα αντίγραφο που υπάρχει στην αρχική μνήμη. Κατά την εκτέλεση της διεργασίας ο πίνακας σελίδων δε χρειάζεται άλλες αναφορές στη μνήμη. Πλεονεκτήματα της παραπάνω μεθόδου είναι η απλότητα της και δεν απαιτείται αναφορά στη μνήμη κατά τη διάρκεια της χαρτογράφησης. Ως μειονέκτημα σημειώνεται πως είναι χρονοβόρα η παραπάνω μέθοδος αν ο πίνακας σελίδων είναι μεγάλος.
 
'''===Κρυφή μνήμη αναζήτησης μετάφρασης'''===
 
Παρακάτω αναφέρονται ευρέως χρησιμοποιούμενες μέθοδοι υλοποίησης για την επιτάχυνση της σελιδοποίησης.
Γραμμή 41:
 
 
'''===Λειτουργία και διαχείριση της TLB'''===
 
Όταν μια εικονική διεύθυνση μεταφέρεται στην MMU προκειμένου να μεταφραστεί, γίνεται έλεγχος αν ο αριθμός της εικονικής σελίδας υπάρχει στην TLB με παράλληλη σύγκριση όλων των καταχωρήσεων. Εφόσον υπάρχει και αφού η πρόσβαση δεν παραβιάζει τα bit προστασίας, το πλαίσιο σελίδας λαμβάνεται απευθείας από την TLB χωρίς να χρησιμοποιηθεί ο πίνακας σελίδων. Αν όμως ο αριθμός της εικονικής σελίδας υπάρχει στην TLB σημαίνει ότι η εντολή προσπαθεί να κάνει εγγραφή σε σελίδα όπου επιτρέπεται μόνον η ανάγνωση. Επομένως προκύπτει σφάλμα προστασίας. Στις σύγχρονες μηχανές RISC (όπως οι SPARC,MIPS και η HP PA) κάνουν όλη τη διαχείριση σελίδων με λογισμικό, η TLB φορτώνονται από το λειτουργικό σύστημα και όταν συμβαίνει κάποια αστοχία TLB προκύπτει απλώς σφάλμα TLB. Επομένως και σ’ αυτήν τη περίπτωση το πρόβλημα μεταβιβάζεται στο λειτουργικό σύστημα. Η διαχείριση της TLB με λογισμικό είναι αποδοτική εφόσον η TLB είναι αρκετά μεγάλη (π.χ με 64 καταχωρήσεις) .Η αύξηση της αποδοτικότητας οφείλεται στη μείωση των αστοχιών. Για να μειώσει τις αστοχίες στην TLB το λειτουργικό σύστημα μπορεί να χρησιμοποιήσει "διαίσθηση" προκειμένου να βρει ποιες σελίδες πρόκειται να χρησιμοποιηθούν στη συνέχεια, ώστε να φορτώσει από πριν τις σελίδες αυτές στην TLB. Βέβαια υπάρχουν διάφορες στρατηγικές για την βελτίωση της απόδοσης σε μηχανές που διαχειρίζονται την TLB με λογισμικό.
 
'''===Παράδειγμα διαχείριση της TLB'''===
 
Μια διεργασία-πελάτης στέλνει κάποιο μήνυμα σε μια διεργασία-διακομιστή η οποία βρίσκεται στην ίδια μηχανή. Το σύστημα καταλαβαίνει ότι υπάρχει μεγάλη πιθανότητα να εκτελεστεί στο άμεσο μέλλον ο διακομιστής. Με αυτό το δεδομένο στη διάρκεια της επεξεργασίας της κλήσης send, υπάρχει η δυνατότητα να εντοπιστούν τις σελίδες που περιέχουν τον κώδικα καθώς και αυτές που περιέχουν τα δεδομένα και τη στοίβα του διακομιστή. Επομένως οι σελίδες φορτώνονται στην TLB πρίν προκαλέσουν σφάλματα.