Διαχείριση μνήμης στο λειτουργικό σύστημα: Συνεχείς, Ανταλλαγή, Κατακερματισμός
Τι είναι η Διαχείριση Μνήμης;
Διαχείριση μνήμης είναι η διαδικασία ελέγχου και συντονισμού της μνήμης του υπολογιστή, εκχώρησης τμημάτων γνωστών ως μπλοκ σε διάφορα εκτελούμενα προγράμματα για τη βελτιστοποίηση της συνολικής απόδοσης του συστήματος.
Είναι η πιο σημαντική λειτουργία ενός λειτουργικού συστήματος που διαχειρίζεται την κύρια μνήμη. Βοηθά τις διεργασίες να μετακινούνται προς τα πίσω και προς τα εμπρός μεταξύ της κύριας μνήμης και του δίσκου εκτέλεσης. Βοηθά το λειτουργικό σύστημα να παρακολουθεί κάθε θέση μνήμης, ανεξάρτητα από το αν έχει εκχωρηθεί σε κάποια διεργασία ή παραμένει δωρεάν.
Γιατί να χρησιμοποιήσετε τη Διαχείριση μνήμης;
Ακολουθούν οι λόγοι για τη χρήση της διαχείρισης μνήμης:
- Σας επιτρέπει να ελέγχετε πόση μνήμη χρειάζεται να εκχωρηθεί σε διεργασίες που αποφασίζουν ποιος επεξεργαστής πρέπει να αποκτήσει μνήμη σε ποια στιγμή.
- Παρακολουθεί κάθε φορά που το απόθεμα ελευθερώνεται ή δεν κατανέμεται. Σύμφωνα με αυτό θα ενημερώσει την κατάσταση.
- Κατανέμει χώρο στις ρουτίνες εφαρμογών.
- Βεβαιωθείτε επίσης ότι αυτές οι εφαρμογές δεν παρεμβαίνουν μεταξύ τους.
- Βοηθά στην προστασία διαφορετικών διεργασιών μεταξύ τους
- Τοποθετεί τα προγράμματα στη μνήμη έτσι ώστε η μνήμη να χρησιμοποιείται στο έπακρο.
Τεχνικές Διαχείρισης Μνήμης
Ακολουθούν ορισμένες πιο κρίσιμες τεχνικές διαχείρισης μνήμης:
Ενιαία συνεχόμενη κατανομή
Είναι η πιο εύκολη τεχνική διαχείρισης μνήμης. Σε αυτή τη μέθοδο, όλοι οι τύποι μνήμης του υπολογιστή εκτός από ένα μικρό τμήμα που είναι δεσμευμένο για το λειτουργικό σύστημα είναι διαθέσιμοι για μία εφαρμογή. Για παράδειγμα, το λειτουργικό σύστημα MS-DOS εκχωρεί μνήμη με αυτόν τον τρόπο. Ένα ενσωματωμένο σύστημα εκτελείται επίσης σε μία μόνο εφαρμογή.
Διαμερισμένη κατανομή
Διαιρεί την κύρια μνήμη σε διάφορα διαμερίσματα μνήμης, τα οποία είναι ως επί το πλείστον συνεχόμενες περιοχές της μνήμης. Κάθε διαμέρισμα αποθηκεύει όλες τις πληροφορίες για μια συγκεκριμένη εργασία ή εργασία. Αυτή η μέθοδος συνίσταται στην εκχώρηση ενός διαμερίσματος σε μια εργασία όταν ξεκινά και στην κατάργηση της κατανομής όταν τελειώνει.
Διαχείριση σελιδοποιημένης μνήμης
Αυτή η μέθοδος διαιρεί την κύρια μνήμη του υπολογιστή σε μονάδες σταθερού μεγέθους γνωστές ως πλαίσια σελίδας. Αυτή η μονάδα διαχείρισης μνήμης υλικού αντιστοιχίζει τις σελίδες σε πλαίσια τα οποία θα πρέπει να εκχωρούνται με βάση τη σελίδα.
Διαχείριση τμηματικής μνήμης
Η τμηματοποιημένη μνήμη είναι η μόνη μέθοδος διαχείρισης μνήμης που δεν παρέχει στο πρόγραμμα του χρήστη γραμμικό και συνεχόμενο χώρο διευθύνσεων.
Τα τμήματα χρειάζονται υποστήριξη υλικού με τη μορφή πίνακα τμημάτων. Περιέχει τη φυσική διεύθυνση της ενότητας σε μνήμη, μέγεθος και άλλα δεδομένα, όπως bit προστασίας πρόσβασης και κατάσταση.
Τι είναι η ανταλλαγή;
Η εναλλαγή είναι μια μέθοδος κατά την οποία η διαδικασία πρέπει να εναλλάσσεται προσωρινά από την κύρια μνήμη στο χώρο αποθήκευσης υποστήριξης. Αργότερα θα επαναφερθεί στη μνήμη για συνέχιση της εκτέλεσης.
Το Backing Store είναι ένας σκληρός δίσκος ή κάποια άλλη δευτερεύουσα συσκευή αποθήκευσης που θα πρέπει να είναι αρκετά μεγάλη ώστε να χωράει αντίγραφα όλων των εικόνων μνήμης για όλους τους χρήστες. Είναι επίσης σε θέση να προσφέρει άμεση πρόσβαση σε αυτές τις εικόνες μνήμης.
Οφέλη από την ανταλλαγή
Ακολουθούν τα κύρια πλεονεκτήματα/πλεονεκτήματα της ανταλλαγής:
- Προσφέρει υψηλότερο βαθμό πολυπρογραμματισμού.
- Επιτρέπει τη δυναμική μετεγκατάσταση. Για παράδειγμα, εάν χρησιμοποιείται δέσμευση διευθύνσεων κατά το χρόνο εκτέλεσης, τότε οι διεργασίες μπορούν να εναλλάσσονται σε διαφορετικές τοποθεσίες. Διαφορετικά σε περίπτωση δεσμεύσεων μεταγλώττισης και χρόνου φόρτωσης, οι διεργασίες θα πρέπει να μετακινηθούν στην ίδια θέση.
- Βοηθά στην καλύτερη χρήση της μνήμης.
- Ελάχιστη σπατάλη χρόνου της CPU κατά την ολοκλήρωση, ώστε να μπορεί εύκολα να εφαρμοστεί σε μια μέθοδο προγραμματισμού βάσει προτεραιότητας για τη βελτίωση της απόδοσής της.
Τι είναι η εκχώρηση μνήμης;
Η εκχώρηση μνήμης είναι μια διαδικασία με την οποία εκχωρείται μνήμη ή χώρος σε προγράμματα υπολογιστή.
Εδώ, η κύρια μνήμη χωρίζεται σε δύο τύπους κατατμήσεων
- Χαμηλή μνήμη - Operaσύστημα ting βρίσκεται σε αυτόν τον τύπο μνήμης.
- Υψηλή μνήμη– Οι διαδικασίες χρήστη διατηρούνται σε υψηλή μνήμη.
Κατανομή διαμερισμάτων
Η μνήμη χωρίζεται σε διαφορετικά μπλοκ ή διαμερίσματα. Κάθε διαδικασία κατανέμεται σύμφωνα με τις απαιτήσεις. Η κατανομή διαμερισμάτων είναι μια ιδανική μέθοδος για την αποφυγή εσωτερικού κατακερματισμού.
Παρακάτω είναι τα διάφορα σχήματα κατανομής διαμερισμάτων:
- Πρώτη εφαρμογή: Σε αυτόν τον τύπο προσαρμογής, εκχωρείται το διαμέρισμα, το οποίο είναι το πρώτο επαρκές μπλοκ από την αρχή της κύριας μνήμης.
- καλυτερα Fit: Κατανέμει τη διαδικασία στο διαμέρισμα που είναι το πρώτο μικρότερο διαμέρισμα μεταξύ των ελεύθερων κατατμήσεων.
- Χειρότερη εφαρμογή: Κατανέμει τη διαδικασία στο διαμέρισμα, το οποίο είναι το μεγαλύτερο επαρκώς ελεύθερα διαθέσιμο διαμέρισμα στην κύρια μνήμη.
- Επόμενο Fit: Είναι ως επί το πλείστον παρόμοιο με το πρώτο Fit, αλλά αυτό το Fit, αναζητά το πρώτο επαρκές διαμέρισμα από το τελευταίο σημείο εκχώρησης.
Τι είναι το Paging;
Η σελιδοποίηση είναι ένας μηχανισμός αποθήκευσης που επιτρέπει στο λειτουργικό σύστημα να ανακτά διεργασίες από τη δευτερεύουσα αποθήκευση στην κύρια μνήμη με τη μορφή σελίδων. Στη μέθοδο Paging, η κύρια μνήμη χωρίζεται σε μικρά μπλοκ σταθερού μεγέθους φυσικής μνήμης, τα οποία ονομάζονται πλαίσια. Το μέγεθος ενός πλαισίου θα πρέπει να διατηρείται ίδιο με αυτό μιας σελίδας για να υπάρχει μέγιστη αξιοποίηση της κύριας μνήμης και να αποφεύγεται ο εξωτερικός κατακερματισμός. τηλεειδοποίησης χρησιμοποιείται για ταχύτερη πρόσβαση σε δεδομένα και είναι λογική έννοια.
Τι είναι ο Κατακερματισμός;
Οι διεργασίες αποθηκεύονται και αφαιρούνται από τη μνήμη, γεγονός που δημιουργεί ελεύθερο χώρο στη μνήμη, ο οποίος είναι πολύ μικρός για χρήση από άλλες διεργασίες.
Μετά από μερικές φορές, οι διεργασίες που δεν μπορούν να εκχωρηθούν σε μπλοκ μνήμης επειδή το μικρό τους μέγεθος και τα μπλοκ μνήμης παραμένουν πάντα αχρησιμοποίητα ονομάζεται κατακερματισμός. Αυτός ο τύπος προβλήματος συμβαίνει κατά τη διάρκεια ενός συστήματος δυναμικής εκχώρησης μνήμης όταν τα ελεύθερα μπλοκ είναι αρκετά μικρά, επομένως δεν είναι σε θέση να εκπληρώσει οποιοδήποτε αίτημα.
Δύο τύποι μεθόδων κατακερματισμού είναι:
- Εξωτερικός κατακερματισμός
- Εσωτερικός κατακερματισμός
- Ο εξωτερικός κατακερματισμός μπορεί να μειωθεί με την αναδιάταξη των περιεχομένων της μνήμης ώστε να τοποθετηθεί όλη η ελεύθερη μνήμη μαζί σε ένα ενιαίο μπλοκ.
- Ο εσωτερικός κατακερματισμός μπορεί να μειωθεί εκχωρώντας το μικρότερο διαμέρισμα, το οποίο εξακολουθεί να είναι αρκετά καλό για να πραγματοποιήσει ολόκληρη τη διαδικασία.
Τι είναι η τμηματοποίηση;
Η μέθοδος τμηματοποίησης λειτουργεί σχεδόν παρόμοια με τη σελιδοποίηση. Η μόνη διαφορά μεταξύ των δύο είναι ότι τα τμήματα είναι μεταβλητού μήκους, ενώ, στη μέθοδο σελιδοποίησης, οι σελίδες είναι πάντα σταθερού μεγέθους.
Ένα τμήμα προγράμματος περιλαμβάνει την κύρια λειτουργία του προγράμματος, δομές δεδομένων, βοηθητικές συναρτήσεις κ.λπ. Το λειτουργικό σύστημα διατηρεί έναν πίνακα χάρτη τμημάτων για όλες τις διεργασίες. Περιλαμβάνει επίσης μια λίστα με μπλοκ ελεύθερης μνήμης μαζί με το μέγεθός της, τους αριθμούς τμημάτων και τις θέσεις της μνήμης στην κύρια μνήμη ή εικονική μνήμη.
Τι είναι η δυναμική φόρτωση;
Η δυναμική φόρτωση είναι μια ρουτίνα ενός προγράμματος που δεν φορτώνεται μέχρι να το καλέσει το πρόγραμμα. Όλες οι ρουτίνες θα πρέπει να περιέχονται στο δίσκο σε μορφή φόρτωσης με δυνατότητα επανατοποθέτησης. Το κύριο πρόγραμμα θα φορτωθεί στη μνήμη και θα εκτελεστεί. Η δυναμική φόρτωση παρέχει επίσης καλύτερη χρήση του χώρου μνήμης.
Τι είναι η Δυναμική Σύνδεση;
Η σύνδεση είναι μια μέθοδος που βοηθά το λειτουργικό σύστημα να συλλέγει και να συγχωνεύει διάφορες ενότητες κώδικα και δεδομένων σε ένα ενιαίο εκτελέσιμο αρχείο. Το αρχείο μπορεί να φορτωθεί στη μνήμη και να εκτελεστεί. Το λειτουργικό σύστημα μπορεί να συνδέσει βιβλιοθήκες σε επίπεδο συστήματος σε ένα πρόγραμμα που συνδυάζει τις βιβλιοθήκες κατά τη φόρτωση. Στη μέθοδο δυναμικής σύνδεσης, οι βιβλιοθήκες συνδέονται κατά το χρόνο εκτέλεσης, επομένως το μέγεθος του κώδικα του προγράμματος μπορεί να παραμείνει μικρό.
Διαφορά μεταξύ στατικής και δυναμικής φόρτισης
Στατική φόρτωση | Δυναμική φόρτωση |
---|---|
Η στατική φόρτωση χρησιμοποιείται όταν θέλετε να φορτώσετε το πρόγραμμά σας στατικά. Στη συνέχεια, τη στιγμή της μεταγλώττισης, ολόκληρο το πρόγραμμα θα συνδεθεί και θα μεταγλωττιστεί χωρίς να χρειάζεται καμία εξωτερική ενότητα ή εξάρτηση προγράμματος. | Σε ένα πρόγραμμα με δυναμική φόρτωση, θα παρέχονται αναφορές και η φόρτωση θα γίνεται τη στιγμή της εκτέλεσης. |
Κατά τη φόρτωση, ολόκληρο το πρόγραμμα φορτώνεται στη μνήμη και ξεκινά την εκτέλεσή του. | Οι ρουτίνες της βιβλιοθήκης φορτώνονται στη μνήμη μόνο όταν απαιτούνται στο πρόγραμμα. |
Διαφορά μεταξύ στατικής και δυναμικής σύνδεσης
Εδώ είναι οι κύριες διαφορές μεταξύ Στατικής και Δυναμικής Σύνδεσης:
Στατική Σύνδεση | Δυναμική Σύνδεση |
---|---|
Η στατική σύνδεση χρησιμοποιείται για τον συνδυασμό όλων των άλλων λειτουργικών μονάδων, που απαιτούνται από ένα πρόγραμμα σε έναν μόνο εκτελέσιμο κώδικα. Αυτό βοηθά το λειτουργικό σύστημα να αποτρέψει οποιαδήποτε εξάρτηση χρόνου εκτέλεσης. | Όταν χρησιμοποιείται δυναμική σύνδεση, δεν χρειάζεται να συνδέσει την πραγματική μονάδα ή τη βιβλιοθήκη με το πρόγραμμα. Αντί για αυτό, χρησιμοποιήστε μια αναφορά στη δυναμική μονάδα που παρέχεται κατά τη στιγμή της μεταγλώττισης και της σύνδεσης. |
Περίληψη
- Η διαχείριση μνήμης είναι η διαδικασία ελέγχου και συντονισμού της μνήμης του υπολογιστή, εκχώρησης τμημάτων που ονομάζονται μπλοκ σε διάφορα εκτελούμενα προγράμματα για τη βελτιστοποίηση της συνολικής απόδοσης του συστήματος.
- Σας επιτρέπει να ελέγχετε πόση μνήμη χρειάζεται να εκχωρηθεί σε διεργασίες που αποφασίζουν ποιος επεξεργαστής πρέπει να αποκτήσει μνήμη σε ποια στιγμή.
- Στο Single Contiguous Allocation, όλοι οι τύποι μνήμης του υπολογιστή εκτός από ένα μικρό τμήμα που είναι δεσμευμένο για το λειτουργικό σύστημα είναι διαθέσιμοι για μία εφαρμογή
- Η μέθοδος κατανομής διαμερισμάτων διαιρεί την κύρια μνήμη σε διάφορα διαμερίσματα μνήμης, τα οποία είναι ως επί το πλείστον συνεχόμενες περιοχές της μνήμης
- Η μέθοδος διαχείρισης σελιδοποιημένης μνήμης διαιρεί την κύρια μνήμη του υπολογιστή σε μονάδες σταθερού μεγέθους γνωστές ως πλαίσια σελίδας
- Η τμηματοποιημένη μνήμη είναι η μόνη μέθοδος διαχείρισης μνήμης που δεν παρέχει στο πρόγραμμα του χρήστη γραμμικό και συνεχόμενο χώρο διευθύνσεων.
- Η εναλλαγή είναι μια μέθοδος κατά την οποία η διαδικασία πρέπει να εναλλάσσεται προσωρινά από την κύρια μνήμη στο χώρο αποθήκευσης υποστήριξης. Αργότερα θα επαναφερθεί στη μνήμη για συνέχιση της εκτέλεσης.
- Η εκχώρηση μνήμης είναι μια διαδικασία με την οποία εκχωρείται μνήμη ή χώρος σε προγράμματα υπολογιστή.
- Η σελιδοποίηση είναι ένας μηχανισμός αποθήκευσης που επιτρέπει στο λειτουργικό σύστημα να ανακτά διεργασίες από τη δευτερεύουσα αποθήκευση στην κύρια μνήμη με τη μορφή σελίδων.
- Ο κατακερματισμός αναφέρεται στην κατάσταση ενός δίσκου στον οποίο τα αρχεία χωρίζονται σε κομμάτια διάσπαρτα γύρω από το δίσκο.
- Η μέθοδος τμηματοποίησης λειτουργεί σχεδόν παρόμοια με τη σελιδοποίηση. Η μόνη διαφορά μεταξύ των δύο είναι ότι τα τμήματα είναι μεταβλητού μήκους, ενώ, στη μέθοδο σελιδοποίησης, οι σελίδες είναι πάντα σταθερού μεγέθους.
- Η δυναμική φόρτωση είναι μια ρουτίνα ενός προγράμματος που δεν φορτώνεται μέχρι να το καλέσει το πρόγραμμα.
- Η σύνδεση είναι μια μέθοδος που βοηθά το λειτουργικό σύστημα να συλλέγει και να συγχωνεύει διάφορες ενότητες κώδικα και δεδομένων σε ένα ενιαίο εκτελέσιμο αρχείο.