CCoW: Βελτιστοποίηση Αντιγραφής σε Εγγραφή Λαμβάνοντας υπόψη τη Χωρική Τοπικότητα στους Φόρτους Εργασίας Μέρος 1

Apr 02, 2024

Αφηρημένη:

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

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

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

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

Το πιο σημαντικό, τα δεδομένα στη μνήμη αποτρέπουν την απώλεια ανθρώπινης μνήμης. Η ανθρώπινη μνήμη εξασθενεί σταδιακά με την πάροδο του χρόνου, μια διαδικασία που ονομάζεται «λήθη». Ωστόσο, αποθηκεύοντας δεδομένα στον σκληρό δίσκο ενός υπολογιστή, μπορούμε να διασφαλίσουμε ότι οι πληροφορίες και οι μνήμες που χρειαζόμαστε μπορούν να διατηρηθούν και να ανακτηθούν ανά πάσα στιγμή.

Επομένως, η σχέση μεταξύ δεδομένων μνήμης και ανθρώπινης μνήμης μπορεί να ειπωθεί ότι είναι θετική. Αν και δεν πρέπει να βασιζόμαστε πολύ στην τεχνολογία, η λογική χρήση των δεδομένων μνήμης μπορεί να βελτιώσει την αποτελεσματικότητα της εργασίας και τα μαθησιακά μας αποτελέσματα, να μας βοηθήσει να διαχειριστούμε καλύτερα τη μνήμη και να αποτρέψουμε τη λήθη. Μπορεί να φανεί ότι πρέπει να βελτιώσουμε τη μνήμη και το Cistanche deserticola μπορεί να βελτιώσει σημαντικά τη μνήμη, επειδή το Cistanche deserticola είναι ένα παραδοσιακό κινέζικο φαρμακευτικό υλικό που έχει πολλά μοναδικά αποτελέσματα, ένα από τα οποία είναι η βελτίωση της μνήμης. Η αποτελεσματικότητα του Cistanche deserticola προέρχεται από τα πολλαπλά ενεργά συστατικά που περιέχει, όπως ταννικό οξύ, πολυσακχαρίτες, φλαβονοειδή γλυκοσίδες κ.λπ. Αυτά τα συστατικά μπορούν να προάγουν την υγεία του εγκεφάλου μέσω ποικίλων οδών.

improve memory

Κάντε κλικ στο Μάθετε 10 τρόπους για να βελτιώσετε τη μνήμη

Ωστόσο, δεδομένου ότι το CoW λαμβάνει χώρα ανά σελίδα στον χειριστή σφαλμάτων σελίδας, κάθε φορά που εμφανίζεται το σφάλμα σελίδας, το λειτουργικό σύστημα θα πρέπει να εμπλέκεται. Αυτό οδηγεί σε σημαντική υποβάθμιση της απόδοσης για φόρτους εργασίας με ένταση εγγραφής.

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

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

Η αξιολόγηση με ένα πρωτότυπο δείχνει ότι αυτή η προσέγγιση μπορεί να βελτιώσει τη συνολική απόδοση των εφαρμογών έως και 10% με μια μικρή ποσότητα επιβάρυνσης μνήμης.

Λέξεις-κλειδιά: αντιγραφή σε εγγραφή; σύστημα εικονικής μνήμης. πιρούνι; Redis; σφάλμα σελίδας.

1. Εισαγωγή

Ο πρωταρχικός ρόλος ενός λειτουργικού συστήματος (OS) είναι να διαχειρίζεται πολύτιμους πόρους του συστήματος και το copy-on-write (CoW) είναι μια από τις πιο θεμελιώδεις τεχνικές διαχείρισης μνήμης που υιοθετούνται από τα περισσότερα σύγχρονα λειτουργικά συστήματα.

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

Τα εικονικά συστήματα μνήμης μπορούν να παρέχουν αποτελεσματικά κοινή χρήση δεδομένων μεταξύ διεργασιών και διάφορες λειτουργίες εικονικής μνήμης, όπως η αντιγραφή του χώρου διευθύνσεων κατά τη διχάλα διεργασιών, η κατάργηση των ίδιων σελίδων και η μηδενική κοινή χρήση σελίδων, υλοποιούνται με βάση την αντιγραφή σε εγγραφή [1–3]. Λόγω αυτών των χαρακτηριστικών, οι εφαρμογές μπορούν να δημιουργήσουν ένα αντίγραφο του εαυτού τους με χαμηλό διάστημα και να χρησιμοποιήσουν κατάλληλα τον κλώνο.

Για παράδειγμα, το Redis, ένα από τα δημοφιλή συστήματα αποθήκευσης κλειδιού-τιμής μνήμης [4], χρησιμοποιεί αντιγραφή σε εγγραφή σε συνδυασμό με το σύστημα διακλάδωσης για να καλεί τα μόνιμα δεδομένα στη μνήμη στην αποθήκευση. Κατά την εξυπηρέτηση των εισερχόμενων αιτημάτων, η κύρια διαδικασία Redis δημιουργεί περιοδικά μια θυγατρική διαδικασία με το πιρούνι. Η θυγατρική διαδικασία ξεκινά με στιγμιότυπο μνήμης πανομοιότυπο με την κύρια διαδικασία για την αποθήκευση των δεδομένων στη μνήμη στην αποθήκευση.

short term memory how to improve

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

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

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

Επιπλέον, ο πίνακας σελίδων τροποποιείται κατά τη διάρκεια της αντιγραφής, γεγονός που οδηγεί σε κατάργηση του μεταφραστικού κοιτάσματος στο buffer (TLB) όλων των πυρήνων του συστήματος. Όλα αυτά συνεπάγονται μη αμελητέα γενικά έξοδα και επιδεινώνουν την απόδοση των εφαρμογών.

Αυτό το έγγραφο προτείνει αντιγραφή σε εγγραφή (CCoW), ένα νέο σχήμα βελτιστοποίησης αντιγραφής σε εγγραφή. Όταν γίνεται πρόσβαση σε μια σελίδα για εγγραφή, οι κοντινές σελίδες της είναι επίσης πιθανό να προσπελαστούν σύντομα για εγγραφή λόγω της χωρικής τοποθεσίας στις προσβάσεις στη μνήμη. Το CCoW εκμεταλλεύεται τη χωρική τοποθεσία για να μειώσει τον αριθμό των σφαλμάτων σελίδας για αντιγραφή σε εγγραφή. Συγκεκριμένα, το CCoW επεξεργάζεται το copy-on-write σε μεγάλη ευαισθησία (που ονομάζεται περιοχή).

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

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

Μεταφέροντας τις πληροφορίες τοποθεσίας σε πιρούνια, μπορούμε να υπολογίσουμε τον βαθμό χωρικής εντοπιότητας και το CCoW εκτελεί αποτελεσματικά το προ-αντίγραφο μόνο για περιοχές υψηλής τοποθεσίας. Υλοποιήσαμε το προτεινόμενο σχήμα CCoW στον πυρήνα του Linux.

Καθώς είναι ενσωματωμένες στο σύστημα εικονικής μνήμης του λειτουργικού συστήματος, οι εφαρμογές μπορούν να επωφεληθούν από το CCoW χωρίς τροποποίηση. Αναλύσαμε τα χαρακτηριστικά απόδοσης με ένα microbenchmark και η αξιολόγηση χρησιμοποιώντας το benchmark με ρεαλιστικούς φόρτους εργασίας δείχνει ότι το CCoW μπορεί να βελτιώσει την απόδοση της εφαρμογής έως και 10% με εύλογο ποσό επιβάρυνσης μνήμης.

ways to improve memory

Το υπόλοιπο αυτού του εγγράφου οργανώνεται ως εξής. Στην Ενότητα 2, εξετάζουμε το υπόβαθρο και τη σχετική εργασία του χαρτιού, συμπεριλαμβανομένης της εικονικής μνήμης και του πιρουνιού. Εξηγούμε τις λεπτομέρειες του σχεδιασμού CCoW και την εφαρμογή του στην Ενότητα 3. Η Ενότητα 4 παρουσιάζει τα αποτελέσματα αξιολόγησης του CCoW. Τέλος, ολοκληρώνουμε αυτή την εργασία στην Ενότητα 5.

2. Ιστορικό και σχετικές εργασίες

2.1. Σελιδοποίηση και εικονική μνήμη

Σχεδόν όλοι οι σύγχρονοι υπολογιστές και λειτουργικά συστήματα υιοθετούν τη σελιδοποίηση και την εικονική μνήμη ως το κύριο σχήμα διαχείρισης της μνήμης τους [5]. Η κύρια μνήμη χωρίζεται σε σελίδες ίδιου μεγέθους και τα λειτουργικά συστήματα εκχωρούν ή εκχωρούν μνήμη από διεργασίες χρήστη στη μονάδα σελίδας.

Τα ΛΣ διατηρούν επίσης τις αντιστοιχίσεις των χώρων διευθύνσεων των διεργασιών στη φυσική τοποθεσία στο σύστημα. Κάθε λογική σελίδα στο χώρο διευθύνσεων διεργασίας αντιστοιχίζεται στη φυσική της θέση και αυτή η αντιστοίχιση αποθηκεύεται με τη μορφή πίνακα σελίδων.

Για να χειριστεί την αναφορά μνήμης για μια διεργασία, μια μονάδα διαχείρισης μνήμης (MMU), ένα στοιχείο υλικού στον επεξεργαστή, μεταφράζει τη διεύθυνση που ζητήθηκε στη φυσική της διεύθυνση με αναφορά στον πίνακα σελίδων. Ο πίνακας σελίδων περιλαμβάνει καταχωρήσεις πίνακα σελίδων (PTE). Κάθε PTE περιέχει τις πληροφορίες χαρτογράφησης και μπορεί να έχει επιπλέον πεδία για την περιγραφή της κατάστασης της αντίστοιχης σελίδας και της αντιστοίχισης.

Το μέγεθος σελίδας, αν και είναι συγκεκριμένο για την αρχιτεκτονική, είναι συνήθως 4 KB στις περισσότερες αρχιτεκτονικές. Αυτό σημαίνει ότι κάθε 4 KB στο χώρο διευθύνσεων διεργασίας πρέπει να έχει ένα PTE. Λαμβάνοντας υπόψη το τεράστιο μέγεθος του χώρου διευθύνσεων διεργασιών, το μέγεθος του πίνακα σελίδων, ακόμη και για μία μόνο διαδικασία, μπορεί να είναι τεράστιο.

Για παράδειγμα, ο πίνακας σελίδων για μια διαδικασία σε 64-αρχιτεκτονική bit με σελίδες 4 KB και 8-byte PTE θα έχει μέγεθος 32 PB (264/212 × 8=255 byte). Ωστόσο, ο χώρος διευθύνσεων είναι συνήθως αραιοκατοικημένος και το μεγαλύτερο μέρος του χώρου διευθύνσεων δεν απαιτείται.

Αυτό διαφωτίζει την ιεραρχική οργάνωση του πίνακα σελίδων. Ολόκληρος ο πίνακας σελίδων χωρίζεται σε κομμάτια πίνακα σελίδων που χωρούν σε μια σελίδα. Τα κομμάτια του πίνακα σελίδων δεν εκχωρούνται σε μη εκχωρημένες περιοχές διευθύνσεων.

memory enhancement

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


For more information:1950477648nn@gmail.com

Μπορεί επίσης να σας αρέσει