Υλικό υπολογιστών

Γνώση Υπολογιστών >> Υλικό υπολογιστών >  >> Επεξεργαστές (CPU)

Πώς διαχειρίζεται η κατανομή της μνήμης ο διανομέας πλάκας σε λειτουργικά συστήματα;

Ένας διανομέας πλάκας είναι ένας αλγόριθμος κατανομής μνήμης που χρησιμοποιείται στους πυρήνες των λειτουργικών συστημάτων (και μερικές φορές σε άλλα συστήματα που απαιτούν διαχείριση μνήμης υψηλής απόδοσης) για την αποτελεσματική διαχείριση της μνήμης για αντικείμενα του πυρήνα. Σε αντίθεση με τους απλούστερους διανομείς όπως το σύστημα φίλων ή μια απλή ελεύθερη λίστα, στοχεύει στην ελαχιστοποίηση τόσο του εσωτερικού όσο και του εξωτερικού κατακερματισμού και τη βελτίωση της απόδοσης με την προσωρινή αποθήκευση των δομών δεδομένων που χρησιμοποιούνται συχνά.

Δείτε πώς λειτουργεί:

1. Caches: Ο διανομέας της πλάκας χωρίζει τη μνήμη σε κρυφές μνήμες. Κάθε κρυφή μνήμη είναι αφιερωμένη σε έναν συγκεκριμένο τύπο αντικειμένου πυρήνα (π.χ. inodes, υποδοχές, ρυθμιστικά δικτύου). Αυτό είναι το κλειδί για την αποτελεσματικότητά του.

2. Πλάκες: Μέσα σε κάθε κρυφή μνήμη, η μνήμη χωρίζεται περαιτέρω σε πλάκες. Μια πλάκα είναι ένα συνεχόμενο μπλοκ μνήμης αρκετά μεγάλο για να συγκρατεί διάφορες περιπτώσεις του τύπου αντικειμένου που σχετίζεται με αυτήν την προσωρινή μνήμη. Το μέγεθος μιας πλάκας επιλέγεται για να ταιριάζει με το μέγεθος του αντικειμένου συν κάθε απαραίτητο επένδυση (για ευθυγράμμιση).

3. Δημιουργία αντικειμένων: Όταν απαιτείται ένα νέο αντικείμενο ενός συγκεκριμένου τύπου, ο κατανεμιστής ελέγχει πρώτα την προσωρινή μνήμη που σχετίζεται με αυτόν τον τύπο αντικειμένου.

4. Δωρεάν λίστες: Μέσα σε κάθε πλάκα, υπάρχει μια δωρεάν λίστα που περιέχει δείκτες σε διαθέσιμα αντικείμενα. Όταν ζητηθεί ένα αντικείμενο, ο κατανοητής ελέγχει πρώτα αυτή τη δωρεάν λίστα. Εάν βρεθεί ένα ελεύθερο αντικείμενο, απλώς λαμβάνεται από τη λίστα, ελαχιστοποιώντας την επιβάρυνση κατανομής.

5. Κατανομή πλακών: Εάν η ελεύθερη λίστα μέσα σε μια πλάκα είναι κενή, ο διανομέας μπορεί να πάρει μια εντελώς νέα πλάκα από τη γενική πισίνα μνήμης του συστήματος.

6. Διαχείριση πλακών: Οι πλάκες μπορούν να είναι σε ένα από τα πολλά κράτη:

* Πλήρης: Όλα τα αντικείμενα στην πλάκα χρησιμοποιούνται.

* Μερική: Ορισμένα αντικείμενα χρησιμοποιούνται και άλλα είναι δωρεάν.

* κενό: Όλα τα αντικείμενα είναι δωρεάν.

7. Όταν ένα αντικείμενο δεν είναι πλέον απαραίτητο, επιστρέφεται στην δωρεάν λίστα της πλάκας του, καθιστώντας το άμεσα διαθέσιμο για επαναχρησιμοποίηση. Οι κενές πλάκες συχνά επιστρέφονται στην ομάδα μνήμης του συστήματος για να διατηρήσουν τη μνήμη.

8. Ελαχιστοποίηση του κατακερματισμού: Αφιερώνοντας τις πλάκες σε συγκεκριμένους τύπους αντικειμένων και επαναχρησιμοποιώντας πλάκες, ο διανομέας της πλάκας μειώνει δραματικά τον εσωτερικό κατακερματισμό (σπατάλη χώρου μέσα σε μπλοκ) και τον εξωτερικό κατακερματισμό (σπατάλης χώρου μεταξύ των κατανομένων μπλοκ). Επειδή τα μεγέθη αντικειμένων είναι γνωστά εκ των προτέρων, δεν υπάρχει ανάγκη για αναζήτηση και διάσπαση.

Πλεονεκτήματα του διανομέα πλάκας:

* ταχύτητα: Πολύ γρήγορη κατανομή και διανομή λόγω δωρεάν χρήσης λίστας και ελάχιστου χρόνου αναζήτησης.

* Μειωμένος κατακερματισμός: Χρησιμοποιεί αποτελεσματικά τη μνήμη αποφεύγοντας τον κατακερματισμό.

* Αποδοτικότητα cache: Μειώνει την κρυφή μνήμη χάνει διατηρώντας τα σχετικά αντικείμενα μαζί σε πλάκες.

* Επιμελητικότητα: Χειρίζεται αποτελεσματικά τον αριθμό των κατανομών και των αντικειμένων αντικειμένων.

Μειονεκτήματα του διανομέα πλάκας:

* πάνω από το κεφάλι μνήμης: Κάθε κρυφή μνήμη και πλάκα διαθέτει κάποια γενικά έξοδα όσον αφορά τις δομές διαχείρισης (δωρεάν λίστες, μεταδεδομένα).

* πολυπλοκότητα: Πιο πολύπλοκο για την εφαρμογή από τους απλούστερους διανομείς.

* Αρχικό κόστος εγκατάστασης: Η δημιουργία και η προετοιμασία των κρυφών προσώπων και των πλακών καταναλώνουν αρχικά κάποιο χρονικό διάστημα.

Συνοπτικά, ο κατανεμιστής της πλάκας είναι μια εξελιγμένη τεχνική διαχείρισης μνήμης, ιδιαίτερα κατάλληλη για τις ανάγκες των πυρήνων του λειτουργικού συστήματος, όπου η απόδοση και η αποτελεσματική χρήση της μνήμης είναι κρίσιμες, ειδικά για τα συχνά διαχωρισμένα και προωθημένα μικρά αντικείμενα. Επιτυγχάνει μια καλή ισορροπία μεταξύ της απόδοσης ταχύτητας και μνήμης αποφεύγοντας τα προβλήματα κατακερματισμού απλούστερων μεθόδων.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα