Διαχείριση μνήμης σε λειτουργικό σύστημα: Συνεχής, Εναλλαγήping, Κατακερματισμός
⚡ Έξυπνη Σύνοψη
Η Διαχείριση Μνήμης είναι η διαδικασία του λειτουργικού συστήματος που ελέγχει και συντονίζει τη μνήμη του υπολογιστή, αναθέτοντας μπλοκ σε προγράμματα που εκτελούνται για τη βελτιστοποίηση της απόδοσης. tracks σε κάθε θέση μνήμης, μετακινεί διεργασίες μεταξύ της κύριας μνήμης και του δίσκου και προστατεύει τις διεργασίες η μία από την άλλη.

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

