Εικονική μνήμη στο λειτουργικό σύστημα: Τι είναι, σελιδοποίηση ζήτησης, πλεονεκτήματα
⚡ Έξυπνη Σύνοψη
Η Εικονική Μνήμη είναι ένας μηχανισμός αποθήκευσης που δίνει στον χρήστη την ψευδαίσθηση μιας μεγάλης κύριας μνήμης, αντιμετωπίζοντας ένα μέρος της δευτερεύουσας μνήμης ως RAM. Επιτρέπει την εκτέλεση διεργασιών μεγαλύτερων από τη φυσική μνήμη και υλοποιείται με σελιδοποίηση ζήτησης.

Τι είναι η εικονική μνήμη;
Εικονική μνήμη είναι ένας μηχανισμός αποθήκευσης που προσφέρει στον χρήστη την ψευδαίσθηση ότι έχει μια πολύ μεγάλη κύρια μνήμη. Αυτό επιτυγχάνεται αντιμετωπίζοντας ένα μέρος της δευτερεύουσας μνήμης ως κύρια μνήμη. Στην εικονική μνήμη, ο χρήστης μπορεί να αποθηκεύσει διεργασίες με μέγεθος μεγαλύτερο από την διαθέσιμη κύρια μνήμη.
Επομένως, αντί να φορτώνει μία μεγάλη διεργασία στην κύρια μνήμη, το λειτουργικό σύστημα φορτώνει τα διάφορα μέρη περισσότερων από μία διεργασιών στην κύρια μνήμη. Η εικονική μνήμη υλοποιείται κυρίως με σελιδοποίηση ζήτησης και τμηματοποίηση ζήτησης.
Γιατί χρειάζεστε εικονική μνήμη;
Ακολουθούν οι λόγοι για τη χρήση εικονικής μνήμης:
- Κάθε φορά που ο υπολογιστής σας δεν έχει χώρο στη φυσική μνήμη, γράφει ό,τι χρειάζεται να θυμάται στον σκληρό δίσκο σε ένα αρχείο ανταλλαγής ως εικονική μνήμη.
- Εάν λειτουργεί ένας υπολογιστής Windows χρειάζεται περισσότερη μνήμη/RAM από αυτήν που είναι εγκατεστημένη στο σύστημα, χρησιμοποιεί ένα μικρό μέρος του σκληρού δίσκου για αυτόν τον σκοπό.
Πώς λειτουργεί η εικονική μνήμη;
Στον σύγχρονο κόσμο, η εικονική μνήμη έχει γίνει αρκετά διαδεδομένη στις μέρες μας. Χρησιμοποιείται κάθε φορά που ορισμένες σελίδες πρέπει να φορτωθούν στην κύρια μνήμη για εκτέλεση και η μνήμη δεν είναι διαθέσιμη για τόσες πολλές σελίδες.
Έτσι, σε αυτήν την περίπτωση, αντί να αποτρέπει την είσοδο σελίδων στην κύρια μνήμη, το λειτουργικό σύστημα αναζητά τον χώρο RAM που χρησιμοποιείται ελάχιστα τα τελευταία χρόνια ή που δεν αναφέρεται και τον μετακινεί στη δευτερεύουσα μνήμη για να δημιουργήσει χώρο για τις νέες σελίδες στην κύρια μνήμη.
Ας καταλάβουμε διαχείριση εικονικής μνήμης με τη βοήθεια ενός παραδείγματος.
Για παράδειγμα
Ας υποθέσουμε ότι ένα λειτουργικό σύστημα απαιτεί 300 MB μνήμης για να αποθηκεύσει όλα τα προγράμματα που εκτελούνται. Ωστόσο, προς το παρόν υπάρχουν μόνο 50 MB διαθέσιμης φυσικής μνήμης αποθηκευμένης στη μνήμη RAM.
- Στη συνέχεια, το λειτουργικό σύστημα θα ρυθμίσει 250 MB εικονικής μνήμης και θα χρησιμοποιήσει ένα πρόγραμμα που ονομάζεται Virtual Memory Manager (VMM) για να διαχειριστεί αυτά τα 250 MB.
- Έτσι, σε αυτήν την περίπτωση, το VMM θα δημιουργήσει ένα αρχείο στον σκληρό δίσκο μεγέθους 250 MB για να αποθηκεύσει την επιπλέον μνήμη που απαιτείται.
- Το λειτουργικό σύστημα θα προχωρήσει τώρα στην διευθυνσιοδότηση της μνήμης σαν να λαμβάνει υπόψη 300 MB πραγματικής μνήμης που είναι αποθηκευμένη στη μνήμη RAM, ακόμα κι αν είναι διαθέσιμος μόνο 50 MB χώρος.
- Είναι δουλειά του VMM να διαχειρίζεται 300 MB μνήμης, ακόμη και αν είναι διαθέσιμα μόνο 50 MB πραγματικού χώρου μνήμης.
Τι είναι η σελιδοποίηση ζήτησης;
Ένας μηχανισμός τηλεειδοποίησης ζήτησης είναι πολύ παρόμοιος με το α σύστημα σελιδοποίησης με ανταλλαγήping, όπου οι διεργασίες αποθηκεύονται στη δευτερεύουσα μνήμη και οι σελίδες φορτώνονται μόνο κατόπιν αιτήματος, όχι εκ των προτέρων.
Έτσι, όταν συμβαίνει μια αλλαγή περιβάλλοντος, το λειτουργικό σύστημα δεν αντιγράφει ποτέ καμία από τις σελίδες του παλιού προγράμματος από τον δίσκο ή καμία από τις σελίδες του νέου προγράμματος στην κύρια μνήμη. Αντίθετα, θα ξεκινήσει την εκτέλεση του νέου προγράμματος μετά τη φόρτωση της πρώτης σελίδας και θα ανακτήσει τις σελίδες του προγράμματος που αναφέρονται.
Κατά την εκτέλεση του προγράμματος, εάν το πρόγραμμα αναφερθεί σε μια σελίδα που ενδέχεται να μην είναι διαθέσιμη στην κύρια μνήμη επειδή έχει αντικατασταθεί, τότε ο επεξεργαστής τη θεωρεί ως μη έγκυρη αναφορά μνήμης. Αυτό συμβαίνει επειδή το σφάλμα σελίδας μεταφέρει τον έλεγχο πίσω από το πρόγραμμα στο λειτουργικό σύστημα, το οποίο απαιτεί να αποθηκεύσει ξανά τη σελίδα στη μνήμη.
Τύποι μεθόδων αντικατάστασης σελίδας
Ακολουθούν ορισμένες σημαντικές μέθοδοι αντικατάστασης σελίδας:
- FIFO
- Βέλτιστος Αλγόριθμος
- Αντικατάσταση σελίδας LRU
Αντικατάσταση σελίδας FIFO
Το FIFO (First-in-first-out) είναι μια απλή μέθοδος υλοποίησης. Σε αυτήν τη μέθοδο, η μνήμη επιλέγει τη σελίδα για μια αντικατάσταση που βρίσκεται στην εικονική διεύθυνση της μνήμης για το μεγαλύτερο χρονικό διάστημα.
Χαρακτηριστικά
- Κάθε φορά που φορτώνεται μια νέα σελίδα, η σελίδα που έχει παραμείνει στη μνήμη για το μεγαλύτερο χρονικό διάστημα αφαιρείται. Έτσι, είναι εύκολο να αποφασίσετε ποια σελίδα θα αφαιρεθεί, καθώς ο αριθμός αναγνώρισής της βρίσκεται πάντα στην αρχή της στοίβας FIFO.
- Η παλαιότερη σελίδα στην κύρια μνήμη είναι αυτή που πρέπει να επιλεγεί πρώτη για αντικατάσταση.
Βέλτιστος Αλγόριθμος
Η βέλτιστη μέθοδος αντικατάστασης σελίδας επιλέγει τη σελίδα για μια αντικατάσταση για την οποία ο χρόνος μέχρι την επόμενη αναφορά είναι ο μεγαλύτερος.
Χαρακτηριστικά
- Ο βέλτιστος αλγόριθμος έχει ως αποτέλεσμα τον μικρότερο αριθμό σφαλμάτων σελίδας. Αυτός ο αλγόριθμος είναι δύσκολο να υλοποιηθεί.
- Ένας βέλτιστος αλγόριθμος αντικατάστασης σελίδας έχει το χαμηλότερο ποσοστό σφαλμάτων σελίδας από όλους τους αλγόριθμους. Αυτός ο αλγόριθμος υπάρχει και θα πρέπει να ονομάζεται MIN ή OPT.
- Αντικαταστήστε τη σελίδα που είναι απίθανο να χρησιμοποιηθεί για μεγαλύτερο χρονικό διάστημα. Χρησιμοποιεί μόνο τον χρόνο που χρειάζεται να χρησιμοποιηθεί μια σελίδα.
Αντικατάσταση σελίδας LRU
Η πλήρης μορφή της LRU είναι η σελίδα που χρησιμοποιήθηκε λιγότερο πρόσφατα. Αυτή η μέθοδος βοηθά το λειτουργικό σύστημα να εντοπίσει τη χρήση της σελίδας σε σύντομο χρονικό διάστημα. Αυτός ο αλγόριθμος θα πρέπει να υλοποιηθεί συσχετίζοντας έναν μετρητή με κάθε σελίδα.
Πώς λειτουργεί;
- Η σελίδα που δεν έχει χρησιμοποιηθεί για το μεγαλύτερο χρονικό διάστημα στην κύρια μνήμη είναι αυτή που θα επιλεγεί για αντικατάσταση.
- Εύκολη εφαρμογή, κρατήστε μια λίστα, αντικαταστήστε σελίδες κοιτάζοντας πίσω στο χρόνο.
Χαρακτηριστικά
- Η μέθοδος αντικατάστασης LRU έχει τον υψηλότερο αριθμό. Αυτός ο μετρητής ονομάζεται επίσης καταχωρητής γήρανσης, ο οποίος καθορίζει την ηλικία και το ποσοστό αναφοράς στις συσχετισμένες σελίδες τους.
- Η σελίδα που δεν έχει χρησιμοποιηθεί για το μεγαλύτερο χρονικό διάστημα στην κύρια μνήμη είναι αυτή που θα πρέπει να επιλεγεί για αντικατάσταση.
- Διατηρεί επίσης μια λίστα και αντικαθιστά σελίδες κοιτάζοντας πίσω στο χρόνο.
Ποσοστό σφάλματος
Το ποσοστό σφαλμάτων είναι η συχνότητα με την οποία ένα σχεδιασμένο σύστημα ή εξάρτημα παρουσιάζει βλάβη. Εκφράζεται σε βλάβες ανά μονάδα χρόνου. Συμβολίζεται με το ελληνικό γράμμα λ (λάμδα).
Πλεονεκτήματα της εικονικής μνήμης
Ακολουθούν τα πλεονεκτήματα/οφέλη της χρήσης της Εικονικής Μνήμης:
- Η εικονική μνήμη βοηθά στην απόκτηση ταχύτητας όταν απαιτείται μόνο ένα συγκεκριμένο τμήμα του προγράμματος για την εκτέλεση του προγράμματος.
- Είναι πολύ χρήσιμο στην υλοποίηση ενός περιβάλλοντος πολυπρογραμματισμού.
- Σας επιτρέπει να εκτελείτε περισσότερες εφαρμογές ταυτόχρονα.
- Σας βοηθά να χωρέσετε πολλά μεγάλα προγράμματα σε μικρότερα προγράμματα.
- Τα κοινά δεδομένα ή ο κώδικας ενδέχεται να μοιράζονται μεταξύ της μνήμης.
- Μια διεργασία μπορεί να γίνει ακόμη μεγαλύτερη από όλη τη φυσική μνήμη.
- Τα δεδομένα/κώδικας θα πρέπει να διαβάζονται από τον δίσκο όποτε απαιτείται.
- Ο κώδικας μπορεί να τοποθετηθεί οπουδήποτε στη φυσική μνήμη χωρίς να απαιτείται μετεγκατάσταση.
- Θα πρέπει να διατηρούνται περισσότερες διεργασίες στην κύρια μνήμη, γεγονός που αυξάνει την αποτελεσματική χρήση της CPU.
- Κάθε σελίδα αποθηκεύεται σε έναν δίσκο μέχρι να χρειαστεί, μετά από αυτό θα αφαιρεθεί.
- Επιτρέπει την ταυτόχρονη εκτέλεση περισσότερων εφαρμογών.
- Δεν υπάρχει συγκεκριμένο όριο στον βαθμό πολυπρογραμματισμού.
- Θα πρέπει να γράφονται μεγάλα προγράμματα, καθώς ο διαθέσιμος εικονικός χώρος διευθύνσεων είναι μεγαλύτερος σε σύγκριση με τη φυσική μνήμη.
Μειονεκτήματα της εικονικής μνήμης
Ακολουθούν τα μειονεκτήματα/μειονεκτήματα της χρήσης εικονικής μνήμης:
- Οι εφαρμογές ενδέχεται να εκτελούνται πιο αργά εάν το σύστημα χρησιμοποιεί εικονική μνήμη.
- Πιθανότατα χρειάζεται περισσότερος χρόνος για την εναλλαγή μεταξύ εφαρμογών.
- Προσφέρει λιγότερο χώρο στο σκληρό δίσκο για τη χρήση σας.
- Μειώνει τη σταθερότητα του συστήματος.
- Επιτρέπει σε μεγαλύτερες εφαρμογές να εκτελούνται σε συστήματα που δεν προσφέρουν αρκετή φυσική μνήμη RAM από μόνη της για να τις εκτελέσουν.
- Δεν προσφέρει την ίδια απόδοση με τη μνήμη RAM.
- Επηρεάζει αρνητικά τη συνολική απόδοση ενός συστήματος.
- Καταλαμβάνει χώρο αποθήκευσης, ο οποίος θα μπορούσε να χρησιμοποιηθεί διαφορετικά για μακροπρόθεσμη αποθήκευση δεδομένων.

