Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

Βρες
Εμφάνιση

4.3.2 Διαχείρηση κεντρικής μνήμης

Αποτέλεσμα του χρονοπρογραμματισμού της ΚΜΕ είναι η αύξηση της ταχύτητας και των επιδόσεων των υπολογιστών. Όμως ο χρονοπρογραμματισμός της ΚΜΕ προϋποθέτει ότι στην κεντρική μνήμη υπάρχουν ταυτόχρονα φορτωμένα περισσότερα του ενός προγράμματα. Επομένως, η μνήμη θα πρέπει να μοιράζεται μεταξύ διαφορετικών προγραμμάτων. Για το σκοπό αυτό ένα μέρος του λειτουργικού συστήματος ασχολείται με το μοίρασμα και την αποτελεσματική διαχείριση της κεντρικής μνήμης.

Η διαχείριση μνήμης (memory management) θα πρέπει να γίνεται με τρόπο που να εξυπηρετούνται οι συνεχώς τροποποιούμενες ανάγκες των επεξεργασιών που εκτελούνται για κάθε πρόγραμμα. Για το λόγο αυτό η μνήμη διαμοιράζεται σε τμήματα ή σελίδες, το μέγεθος των οποίων είναι δυνατόν να ορίζεται στατικά, δηλαδή σε προκαθορισμένα σταθερά τμήματα, ή δυναμικά, δηλαδή σε τμήματα ανάλογα με τις ανάγκες της κάθε στιγμής. Με το σύστημα διαχείρισης μνήμης το ΛΣ επιτυγχάνει την υποστήριξη του πολυπρογραμματισμού και γι’ αυτό το λόγο θεωρείται σημαντικό μέρος του. Κάθε λειτουργικό σύστημα διαθέτει τους δικούς του αλγόριθμους διαχείρισης μνήμης.

Ανταλλαγή Πολλές φορές ο αριθμός των διεργασιών που εξυπηρετούνται είναι μεγάλος και δεν επαρκεί η κεντρική μνήμη για τη φιλοξενία τους. Τότε από το λειτουργικό σύστημα μπορεί να κρατείται τμήμα της δευτερεύουσας μνήμης, όπου να αποθηκεύονται προσωρινά τα προγράμματα και τα δεδομένα κάποιων διεργασιών. Αυτά φορτώνονται στην κεντρική μνήμη όταν φθάσει η σειρά της αντίστοιχης διεργασίας για εκτέλεση, ενώ κάποια άλλα μεταφέρονται από την κεντρική μνήμη στο δίσκο. Η διαδικασία αυτή ονομάζεται ανταλλαγή (swapping). Δημιουργεί σοβαρές καθυστερήσεις από την εμπλοκή στην όλη διαδικασία της δευτερεύουσας μνήμης, η οποία είναι πολύ πιο αργή από την κεντρική μνήμη.

Εικονική μνήμη Όπως γνωρίζουμε η κεντρική μνήμη είναι οργανωμένη σε λέξεις -δηλαδή σε ομάδες byte- που καθεμιά έχει τη δική της διεύθυνση. Το σύνολο αυτών των διευθύνσεων (για Ν λέξεις, οι δυνατές διευθύνσεις θα είναι 0,1,2,… Ν-1) ονομάζεται χώρος φυσικών διευθύνσεων (physical address space) ή χώρος απόλυτων διευθύνσεων. Τα διάφορα προγράμματα χρησιμοποιούν ελεύθερα διευθύνσεις για να αναφέρονται στα δεδομένα τους. Για να μην υπάρχει αναφορά στην ίδια διεύθυνση από δυο διαφορετικά προγράμματα όταν εκτελούνται, χρησιμοποιείται η τεχνική των εικονικών διευθύνσεων -virtual addresses- (ο χώρος αυτός καλείται εικονική μνήμη). Με την τεχνική αυτή ένα πρόγραμμα μεταφράζεται σε γλώσσα μηχανής θεωρώντας ότι έχει στη διάθεσή του ολόκληρη τη μνήμη. Δηλαδή χρησιμοποιεί εικονικές διευθύνσεις. Όταν φορτώνεται στην μνήμη για να εκτελεστεί, το ΛΣ αντιστοιχίζει τις εικονικές αυτές διευθύνσεις με πραγματικές, που εκείνη την χρονική στιγμή είναι ελεύθερες, ενώ κατά την εκτέλεση γίνεται μια συνεχής αντιστοίχιση των εικονικών διευθύνσεων με φυσικές. Αυτό γίνεται με πολλές μεθόδους, από το τμήμα διαχείρισης της εικονικής μνήμης (π.χ. με σελιδοποίηση). Πολλές φορές ο χώρος των εικονικών διευθύνσεων είναι μεγαλύτερος του χώρου των φυσικών διευθύνσεων, οπότε λειτουργεί η λογική της χρήσης της βοηθητικής μνήμης για προσωρινή αποθήκευση και ανταλλαγή δεδομένων και προγραμμάτων.