Κύριος στόχος των αλγορίθμων αντικατάστασης σελίδων είναι η απομάκρυνση μιας "αχρησιμοποίητης" σελίδας από την εικονική μνήμη.
Ο βέλτιστος αλγόριθμος αντικατάστασης (OPT) επιλέγει για αντικατάσταση τη σελίδα που θα χρησιμοποιηθεί πιο νωρίς και είναι πρακτικά ο βέλτιστος.
Ο αλγόριθμος NRU αξιοποιεί τα bit κατάστασης A και T (αναφοράς και τροποποίησης) για την αντικατάσταση σελίδων.
Κατά τον αλγόριθμο NRU, αρχικά όλες οι σελίδες σημειώνονται ως παρούσες και είναι άμεσα εγγράψιμες.
Ο αλγόριθμος NRU κατανέμει τις σελίδες σε 4 κατηγορίες (σύμφωνα με τις τιμές των bit A και T).
Ο αλγόριθμος NRU επιλέγει για αντικατάσταση μια σελίδα από την υψηλότερη κατηγορία (εκ των 4 που ορίζει).
Κατά τον αλγόριθμο NRU η κατηγορία σελίδας 1 (δεν έγινε αναφορά, τροποποιήθηκε) είναι εφικτό να συμβεί επειδή το λειτουργικό περιοδικά μηδενίζει τα bit A.
Στον αλγόριθμο FIFO γίνεται ταξινόμηση σελίδων με τη σειρά τροποποίησης.
Στον αλγόριθμο FIFO το γεγονός ότι επιλέγεται για αντικατάσταση η σελίδα που φορτώθηκε πρώτη αποτελεί μειονέκτημα.
Ο αλγόριθμος δεύτερης ευκαιρίας επιλέγει μια τυχαία σελίδα και την αντικαθιστά αν το bit T είναι 0.
Ο αλγόριθμος του ρολογιού αποτελεί μια υλοποίηση του αλγορίθμου δεύτερης ευκαιρίας με κυκλική λίστα.
Ο αλγόριθμος LRU επιλέγει τη σελίδα που προσπελάστηκε λιγότερο και είναι γενικά αποδοτικός.
Στις προσεγγιστικές υλοποιήσεις του LRU χρησιμοποιείται μετρητής στο υλικό και πίνακες bit n x n (για n σελίδες).
Ο αλγόριθμος NFU αποτελεί μια προσέγγιση του NRU.
Το πρόβλημα στον αλγόριθμο NFU είναι ότι οι μετρητές δεν μειώνονται με το χρόνο και αντιμετωπίζεται με ολίσθηση των μετρητών.
Το σύνολο εργασίας μιας διεργασίας είναι οι σελίδες που χρησιμοποιεί κατά την εκκίνησή της.
Το σύνολο εργασίας μιας διεργασίας, είναι περιορισμένο λόγω της τοπικότητας των αναφορών αφού σε κάθε φάση η διεργασία χρησιμοποιεί λίγες συγκεκριμένες σελίδες.
Αν το σύνολο εργασίας μιας διεργασίας δεν είναι στη μνήμη, δεν θα έχει σφάλματα σελίδας.
Με χρήση συνόλου εργασίας για τις διεργασίες, αυτές πρέπει να πηγαίνουν ενίοτε στο δίσκο για λόγους οικονομίας.
Με χρήση συνόλου εργασίες για τις διεργασίες, όταν μια διεργασία επανέλθει στη μνήμη, η απλούστερη λύση είναι να φορτωθεί όλο το σύνολο εργασίας της.
Μέσω της μοντελοποίησης του συνόλου εργασίας, συμπεραίνουμε ότι αυτό βοηθάει στην διαδικασία της αντικατάστασης σελίδων.
Στον αλγόριθμο αντικατάστασης συνόλου εργασίας χρησιμοποιείται μόνο το bit A.
Κατά τον αλγόριθμο WSClock, οι σελίδες οργανώνονται σε κυκλική λίστα και σε κάθε σφάλμα ξεκινάμε από εκεί που είχαμε μείνει.
Κατά τον αλγόριθμο WSClock, η εκτέλεση δεν επηρεάζεται από τον αριθμό σελίδων που θα σταλθούν στον δίσκο.
Κατά τον αλγόριθμο WSClock, αν δε βρεθεί σελίδα σε έναν κύκλο της λίστας, αν έχουν σταλθεί σελίδες στο δίσκο, συνεχίζουμε μέχρι κάποια να αδειάσει και να την επιλέξουμε.
Οι πιο πρακτικοί αλγόριθμοι αντικατάστασης σελίδων είναι ο αλγόριθμος γήρανσης (προσέγγιση του LRU) και ο συνόλου εργασίας.
Ποιες από τις παρακάτω περιγραφές αλγορίθμων αντικατάστασης σελίδων ισχύουν?
Βέλτιστος (OPT): πρακτικός, γενικής χρήσης
Not Recently Used (NRU): πολύ χονδροειδής, αγνοεί την ηλικία μιας σελίδας
FIFO (First In, First Out): λαμβάνει υπόψη σημαντικές σελίδες
Δεύτερης ευκαιρίας: βελτιωμένος FIFO
Ρολογιού: καλός μόνο στη θεωρία
Least Recently Used (LRU): εξαιρετικός στη θεωρία, ακριβής υλοποίηση δύσκολη
Not Recently Used (NRU): αποδοτική προσέγγιση του LRU
Γήρανσης: αποδοτικός αλγόριθμος, καλή προσέγγιση LRU/NFU
Συνόλου εργασίας: αποδοτική υλοποίηση αλλά δύσκολη
WSClock: καλός και αποδοτικός