Τι είναι η διαχείριση μνήμης;
Η Διαχείριση μνήμης είναι η διαδικασία ελέγχου και συντονισμού της μνήμης του υπολογιστή, εκχωρώντας τμήματα γνωστά ως μπλοκ σε διάφορα προγράμματα που εκτελούνται για τη βελτιστοποίηση της συνολικής απόδοσης του συστήματος.
Είναι η πιο σημαντική λειτουργία ενός λειτουργικού συστήματος που διαχειρίζεται την κύρια μνήμη. Βοηθά τις διαδικασίες να μετακινούνται εμπρός και πίσω μεταξύ της κύριας μνήμης και του δίσκου εκτέλεσης. Βοηθά το λειτουργικό σύστημα να παρακολουθεί κάθε θέση μνήμης, ανεξάρτητα από το εάν έχει εκχωρηθεί σε κάποια διαδικασία ή παραμένει δωρεάν.
Σε αυτό το μάθημα λειτουργικού συστήματος θα μάθετε:
- Τι είναι η διαχείριση μνήμης;
- Γιατί να χρησιμοποιήσετε τη διαχείριση μνήμης;
- Τεχνικές διαχείρισης μνήμης
- Τι είναι η ανταλλαγή;
- Τι είναι η κατανομή μνήμης;
- Τι είναι η τηλεειδοποίηση;
- Τι είναι η μέθοδος κατακερματισμού;
- Τι είναι η τμηματοποίηση;
- Τι είναι η δυναμική φόρτωση;
- Τι είναι η δυναμική σύνδεση;
- Διαφορά μεταξύ στατικής και δυναμικής φόρτωσης
- Διαφορά μεταξύ στατικής και δυναμικής σύνδεσης
Γιατί να χρησιμοποιήσετε τη διαχείριση μνήμης;
Εδώ είναι οι λόγοι για τη χρήση της διαχείρισης μνήμης:
- Σας επιτρέπει να ελέγξετε πόση μνήμη πρέπει να εκχωρηθεί σε διαδικασίες που αποφασίζουν ποιος επεξεργαστής θα πρέπει να πάρει μνήμη σε ποια ώρα.
- Παρακολουθεί όποτε το απόθεμα απελευθερώνεται ή δεν κατανέμεται. Σύμφωνα με αυτό θα ενημερώσει την κατάσταση.
- Εκχωρεί το χώρο σε ρουτίνες εφαρμογών.
- Βεβαιωθείτε επίσης ότι αυτές οι εφαρμογές δεν αλληλεπιδρούν μεταξύ τους.
- Βοηθά στην προστασία διαφορετικών διεργασιών μεταξύ τους
- Τοποθετεί τα προγράμματα στη μνήμη έτσι ώστε η μνήμη να αξιοποιείται στο έπακρο.
Τεχνικές διαχείρισης μνήμης
Εδώ είναι μερικές από τις πιο σημαντικές τεχνικές διαχείρισης μνήμης:
Ενιαία συνεχόμενη κατανομή
Είναι η ευκολότερη τεχνική διαχείρισης μνήμης. Σε αυτήν τη μέθοδο, όλοι οι τύποι μνήμης του υπολογιστή εκτός από ένα μικρό τμήμα που προορίζεται για το λειτουργικό σύστημα είναι διαθέσιμοι για μία εφαρμογή. Για παράδειγμα, το λειτουργικό σύστημα MS-DOS εκχωρεί μνήμη με αυτόν τον τρόπο. Ένα ενσωματωμένο σύστημα εκτελείται επίσης σε μία μόνο εφαρμογή.
Κατανεμημένη κατανομή
Διαιρεί την πρωτογενή μνήμη σε διάφορα διαμερίσματα μνήμης, τα οποία είναι ως επί το πλείστον γειτονικές περιοχές της μνήμης. Κάθε διαμέρισμα αποθηκεύει όλες τις πληροφορίες για μια συγκεκριμένη εργασία ή εργασία. Αυτή η μέθοδος αποτελείται από την κατανομή ενός διαμερίσματος σε μια εργασία όταν ξεκινά & καταργεί την κατανομή όταν τελειώνει.
Διαχείριση σελιδοποιημένης μνήμης
Αυτή η μέθοδος χωρίζει την κύρια μνήμη του υπολογιστή σε μονάδες σταθερού μεγέθους γνωστές ως πλαίσια σελίδας. Αυτή η μονάδα διαχείρισης μνήμης υλικού χαρτογραφεί σελίδες σε πλαίσια τα οποία πρέπει να κατανέμονται βάσει σελίδας.
Διαχείριση τμηματοποιημένης μνήμης
Η τμηματοποιημένη μνήμη είναι η μόνη μέθοδος διαχείρισης μνήμης που δεν παρέχει στο πρόγραμμα του χρήστη έναν γραμμικό και συνεχόμενο χώρο διευθύνσεων.
Τα τμήματα χρειάζονται υποστήριξη υλικού με τη μορφή πίνακα τμημάτων. Περιέχει τη φυσική διεύθυνση της ενότητας στη μνήμη, το μέγεθος και άλλα δεδομένα, όπως bit προστασίας πρόσβασης και κατάσταση.
Τι είναι η ανταλλαγή;
Η ανταλλαγή είναι μια μέθοδος κατά την οποία η διαδικασία θα πρέπει να εναλλάσσεται προσωρινά από την κύρια μνήμη στο κατάστημα αποθήκευσης. Θα μεταφερθεί αργότερα στη μνήμη για συνέχιση της εκτέλεσης.
Το Backing store είναι ένας σκληρός δίσκος ή κάποια άλλη δευτερεύουσα συσκευή αποθήκευσης που θα πρέπει να είναι αρκετά μεγάλη ώστε να μπορεί να φιλοξενήσει αντίγραφα όλων των εικόνων μνήμης για όλους τους χρήστες. Είναι επίσης ικανό να προσφέρει άμεση πρόσβαση σε αυτές τις εικόνες μνήμης.
Οφέλη της ανταλλαγής
Εδώ, είναι τα κύρια οφέλη / πλεονεκτήματα της ανταλλαγής:
- Προσφέρει υψηλότερο βαθμό πολυπρογραμματισμού.
- Επιτρέπει τη δυναμική μετεγκατάσταση. Για παράδειγμα, εάν χρησιμοποιείται δεσμευτική διεύθυνση κατά τον χρόνο εκτέλεσης, τότε οι διαδικασίες μπορούν να αλλάξουν σε διαφορετικές τοποθεσίες. Διαφορετικά, σε περίπτωση συνδέσμων μεταγλώττισης και φόρτωσης, οι διαδικασίες πρέπει να μετακινηθούν στην ίδια θέση.
- Βοηθά στην καλύτερη αξιοποίηση της μνήμης.
- Ελάχιστη σπατάλη χρόνου CPU κατά την ολοκλήρωση, ώστε να μπορεί εύκολα να εφαρμοστεί σε μια μέθοδο προγραμματισμού βάσει προτεραιότητας για τη βελτίωση της απόδοσής της.
Τι είναι η κατανομή μνήμης;
Η κατανομή μνήμης είναι μια διαδικασία με την οποία τα προγράμματα υπολογιστών έχουν εκχωρηθεί μνήμη ή χώρο.
Εδώ, η κύρια μνήμη χωρίζεται σε δύο τύπους κατατμήσεων
- Χαμηλή μνήμη - Το λειτουργικό σύστημα βρίσκεται σε αυτόν τον τύπο μνήμης.
- Υψηλή μνήμη - Οι διαδικασίες χρήστη διατηρούνται σε υψηλή μνήμη.
Κατανομή κατατμήσεων
Η μνήμη χωρίζεται σε διαφορετικά μπλοκ ή κατατμήσεις. Κάθε διαδικασία κατανέμεται σύμφωνα με την απαίτηση. Η κατανομή κατατμήσεων είναι μια ιδανική μέθοδος για την αποφυγή εσωτερικού κατακερματισμού.
Ακολουθούν τα διάφορα σχήματα κατανομής κατατμήσεων:
- First Fit : Σε αυτόν τον τύπο προσαρμογής, κατανέμεται το διαμέρισμα, το οποίο είναι το πρώτο επαρκές μπλοκ από την αρχή της κύριας μνήμης.
- Best Fit: Εκχωρεί τη διαδικασία στο διαμέρισμα που είναι το πρώτο μικρότερο διαμέρισμα μεταξύ των δωρεάν διαμερισμάτων.
- Worst Fit: Εκχωρεί τη διαδικασία στο διαμέρισμα, το οποίο είναι το μεγαλύτερο επαρκές ελεύθερα διαθέσιμο διαμέρισμα στην κύρια μνήμη.
- Next Fit: Είναι κυρίως παρόμοιο με το πρώτο Fit, αλλά αυτό το Fit, αναζητά το πρώτο επαρκές διαμέρισμα από το τελευταίο σημείο κατανομής.
Τι είναι η τηλεειδοποίηση;
Η σελιδοποίηση είναι ένας μηχανισμός αποθήκευσης που επιτρέπει στο λειτουργικό σύστημα να ανακτά διαδικασίες από τη δευτερεύουσα αποθήκευση στην κύρια μνήμη με τη μορφή σελίδων. Στη μέθοδο Paging, η κύρια μνήμη χωρίζεται σε μικρά μπλοκ σταθερού μεγέθους φυσικής μνήμης, η οποία ονομάζεται καρέ. Το μέγεθος ενός πλαισίου θα πρέπει να διατηρείται το ίδιο με αυτό μιας σελίδας για τη μέγιστη αξιοποίηση της κύριας μνήμης και για την αποφυγή εξωτερικού κατακερματισμού. Η σελιδοποίηση χρησιμοποιείται για ταχύτερη πρόσβαση σε δεδομένα και είναι μια λογική ιδέα.
Τι είναι ο κατακερματισμός;
Οι διεργασίες αποθηκεύονται και αφαιρούνται από τη μνήμη, η οποία δημιουργεί ελεύθερο χώρο μνήμης, που είναι πολύ μικρός για χρήση από άλλες διαδικασίες.
Μετά από μερικές φορές, αυτές οι διαδικασίες που δεν μπορούν να εκχωρηθούν σε μπλοκ μνήμης επειδή το μικρό μέγεθος και τα μπλοκ μνήμης που παραμένουν πάντα αχρησιμοποίητα ονομάζεται κατακερματισμός. Αυτός ο τύπος προβλήματος συμβαίνει κατά τη διάρκεια ενός δυναμικού συστήματος κατανομής μνήμης όταν τα δωρεάν μπλοκ είναι αρκετά μικρά, επομένως δεν είναι σε θέση να ικανοποιήσει οποιοδήποτε αίτημα.
Δύο τύποι μεθόδων κατακερματισμού είναι:
- Εξωτερικός κατακερματισμός
- Εσωτερικός κατακερματισμός
- Ο εξωτερικός κατακερματισμός μπορεί να μειωθεί αναδιατάσσοντας τα περιεχόμενα της μνήμης ώστε να τοποθετηθεί όλη η ελεύθερη μνήμη σε ένα μόνο μπλοκ.
- Ο εσωτερικός κατακερματισμός μπορεί να μειωθεί αναθέτοντας το μικρότερο διαμέρισμα, το οποίο είναι ακόμα αρκετά καλό για να μεταφέρει ολόκληρη τη διαδικασία.
Τι είναι η τμηματοποίηση;
Η μέθοδος τμηματοποίησης λειτουργεί σχεδόν παρόμοια με την τηλεειδοποίηση Η μόνη διαφορά μεταξύ των δύο είναι ότι τα τμήματα έχουν μεταβλητό μήκος, ενώ, στη μέθοδο τηλεειδοποίησης, οι σελίδες έχουν πάντα σταθερό μέγεθος.
Ένα τμήμα προγράμματος περιλαμβάνει την κύρια λειτουργία του προγράμματος, τις δομές δεδομένων, τις λειτουργίες χρησιμότητας κ.λπ. Το λειτουργικό σύστημα διατηρεί έναν πίνακα χαρτών τμημάτων για όλες τις διαδικασίες. Περιλαμβάνει επίσης μια λίστα με δωρεάν μπλοκ μνήμης μαζί με το μέγεθος, τους αριθμούς τμημάτων και τις θέσεις μνήμης στην κύρια μνήμη ή στην εικονική μνήμη.
Τι είναι η δυναμική φόρτωση;
Η δυναμική φόρτωση είναι μια ρουτίνα ενός προγράμματος που δεν φορτώνεται έως ότου το καλέσει το πρόγραμμα. Όλες οι ρουτίνες θα πρέπει να περιέχονται σε δίσκο σε επανατοποθετούμενη μορφή φόρτωσης. Το κύριο πρόγραμμα θα φορτωθεί στη μνήμη και θα εκτελεστεί. Η δυναμική φόρτωση παρέχει επίσης καλύτερη χρήση χώρου στη μνήμη.
Τι είναι η δυναμική σύνδεση;
Η σύνδεση είναι μια μέθοδος που βοηθά το λειτουργικό σύστημα να συλλέγει και να συγχωνεύει διάφορες ενότητες κώδικα και δεδομένων σε ένα μόνο εκτελέσιμο αρχείο. Το αρχείο μπορεί να φορτωθεί στη μνήμη και να εκτελεστεί. Το λειτουργικό σύστημα μπορεί να συνδέσει βιβλιοθήκες επιπέδου συστήματος σε ένα πρόγραμμα που συνδυάζει τις βιβλιοθήκες κατά το χρόνο φόρτωσης. Στη μέθοδο δυναμικής σύνδεσης, οι βιβλιοθήκες συνδέονται κατά την εκτέλεση, οπότε το μέγεθος του κώδικα προγράμματος μπορεί να παραμείνει μικρό.
Διαφορά μεταξύ στατικής και δυναμικής φόρτωσης
Στατική φόρτωση | Δυναμική φόρτωση |
Η στατική φόρτωση χρησιμοποιείται όταν θέλετε να φορτώσετε το πρόγραμμά σας στατικά. Στη συνέχεια, κατά τη στιγμή της σύνταξης, ολόκληρο το πρόγραμμα θα συνδεθεί και θα μεταγλωττιστεί χωρίς να απαιτείται καμία εξάρτηση από εξωτερική μονάδα ή πρόγραμμα. | Σε ένα δυναμικά φορτωμένο πρόγραμμα, παρέχονται αναφορές και η φόρτωση θα γίνει τη στιγμή της εκτέλεσης. |
Κατά τη φόρτωση, ολόκληρο το πρόγραμμα φορτώνεται στη μνήμη και ξεκινά την εκτέλεση του. | Οι ρουτίνες της βιβλιοθήκης φορτώνονται στη μνήμη μόνο όταν απαιτούνται στο πρόγραμμα. |
Διαφορά μεταξύ στατικής και δυναμικής σύνδεσης
Εδώ είναι η κύρια διαφορά μεταξύ στατικής εναντίον δυναμικής σύνδεσης:
Στατική σύνδεση | Δυναμική σύνδεση |
Η στατική σύνδεση χρησιμοποιείται για να συνδυάσει όλες τις άλλες ενότητες, οι οποίες απαιτούνται από ένα πρόγραμμα σε έναν μόνο εκτελέσιμο κώδικα. Αυτό βοηθά το λειτουργικό σύστημα να αποτρέψει οποιαδήποτε εξάρτηση χρόνου εκτέλεσης. | Όταν χρησιμοποιείται δυναμική σύνδεση, δεν χρειάζεται να συνδέσετε την πραγματική ενότητα ή τη βιβλιοθήκη με το πρόγραμμα. Αντί να χρησιμοποιήσετε μια αναφορά στη δυναμική ενότητα που παρέχεται κατά τη στιγμή της σύνταξης και της σύνδεσης. |
Περίληψη:
- Η διαχείριση μνήμης είναι η διαδικασία ελέγχου και συντονισμού της μνήμης του υπολογιστή, εκχώρηση τμημάτων που ονομάζονται μπλοκ σε διάφορα προγράμματα που εκτελούνται για τη βελτιστοποίηση της συνολικής απόδοσης του συστήματος.
- Σας επιτρέπει να ελέγξετε πόση μνήμη πρέπει να εκχωρηθεί σε διαδικασίες που αποφασίζουν ποιος επεξεργαστής θα πρέπει να πάρει μνήμη σε ποια ώρα.
- Στην ενιαία συνεχόμενη κατανομή, όλοι οι τύποι μνήμης του υπολογιστή εκτός από ένα μικρό τμήμα που προορίζεται για το λειτουργικό σύστημα είναι διαθέσιμο για μία εφαρμογή
- Η μέθοδος κατανεμημένης κατανομής χωρίζει την πρωτογενή μνήμη σε διάφορα διαμερίσματα μνήμης, τα οποία είναι ως επί το πλείστον γειτονικές περιοχές μνήμης
- Η μέθοδος Paged Memory Management χωρίζει την κύρια μνήμη του υπολογιστή σε μονάδες σταθερού μεγέθους γνωστές ως πλαίσια σελίδας
- Η τμηματοποιημένη μνήμη είναι η μόνη μέθοδος διαχείρισης μνήμης που δεν παρέχει στο πρόγραμμα του χρήστη έναν γραμμικό και συνεχόμενο χώρο διευθύνσεων.
- Η ανταλλαγή είναι μια μέθοδος κατά την οποία η διαδικασία θα πρέπει να εναλλάσσεται προσωρινά από την κύρια μνήμη στο κατάστημα αποθήκευσης. Θα μεταφερθεί αργότερα στη μνήμη για συνέχιση της εκτέλεσης.
- Η κατανομή μνήμης είναι μια διαδικασία με την οποία τα προγράμματα υπολογιστών έχουν εκχωρηθεί μνήμη ή χώρο.
- Η σελιδοποίηση είναι ένας μηχανισμός αποθήκευσης που επιτρέπει στο λειτουργικό σύστημα να ανακτά διαδικασίες από τη δευτερεύουσα αποθήκευση στην κύρια μνήμη με τη μορφή σελίδων.
- Ο κατακερματισμός αναφέρεται στην κατάσταση ενός δίσκου στον οποίο τα αρχεία χωρίζονται σε κομμάτια διάσπαρτα γύρω από το δίσκο.
- Η μέθοδος τμηματοποίησης λειτουργεί σχεδόν παρόμοια με την τηλεειδοποίηση Η μόνη διαφορά μεταξύ των δύο είναι ότι τα τμήματα έχουν μεταβλητό μήκος, ενώ, στη μέθοδο τηλεειδοποίησης, οι σελίδες έχουν πάντα σταθερό μέγεθος.
- Η δυναμική φόρτωση είναι μια ρουτίνα ενός προγράμματος που δεν φορτώνεται έως ότου το καλέσει το πρόγραμμα.
- Η σύνδεση είναι μια μέθοδος που βοηθά το λειτουργικό σύστημα να συλλέγει και να συγχωνεύει διάφορες ενότητες κώδικα και δεδομένων σε ένα μόνο εκτελέσιμο αρχείο.