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

Apr 02, 2024

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

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

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

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

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

increase brain power

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

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

Συνήθως, τα TLB των σύγχρονων αρχιτεκτονικών μπορούν να χωρέσουν περίπου 500 έως 2000 καταχωρήσεις [6,7]. Οι καταχωρήσεις ευρετηριάζονται από το υλικό, έτσι ώστε ο πυρήνας του επεξεργαστή να μπορεί να αναζητήσει τη μετάφραση πολύ γρήγορα. Αξιοποιώντας την τοποθεσία των αναφορών μνήμης, πολλές μεταφράσεις διευθύνσεων μπορούν να εκτελεστούν χωρίς να περπατήσετε στον πίνακα σελίδων (αναφέρεται ως επίσκεψη TLB).

Καθώς το αποτύπωμα μνήμης για εφαρμογές έντασης μνήμης αυξάνεται γρήγορα, αυξάνεται και ο αριθμός των εικονικών σε φυσικές αντιστοιχίσεις σελίδων για μια διαδικασία. Ωστόσο, λόγω περιορισμών υλικού, ο αριθμός των καταχωρήσεων TLB δεν μπορεί να συμβαδίσει με την ταχεία ανάπτυξη των αποτυπωμάτων μνήμης εφαρμογών. Έτσι, τα ποσοστά αστοχίας TLB αυξάνονται, προκαλώντας εμπόδια στην απόδοση εφαρμογών έντασης μνήμης [8-11].

Για να ξεπεραστεί αυτός ο περιορισμός, ορισμένες αρχιτεκτονικές υποστηρίζουν πρόσθετα μεγέθη σελίδων μεγαλύτερα από το μέγεθος των βασικών σελίδων 4 KB. Για παράδειγμα, οι σύγχρονες αρχιτεκτονικές της Intel υποστηρίζουν μεγέθη σελίδων 2 MB και 1 GB [7]. Με ένα τόσο τεράστιο μέγεθος σελίδας, μια μετάφραση διεύθυνσης μπορεί να καλύψει ένα ευρύτερο εύρος διευθύνσεων, αυξάνοντας ουσιαστικά την κάλυψη που μπορεί να παρέχει το TLB με τον ίδιο αριθμό καταχωρίσεων.

Για παράδειγμα, ένα σύστημα με 1024 καταχωρήσεις TLB και μέγεθος βασικής σελίδας 4 KB μπορεί να παρέχει κάλυψη TLB 4 MB, ενώ ο ίδιος αριθμός καταχωρήσεων με τεράστιες σελίδες 1 GB παρέχει κάλυψη 1 TB. Το Linux χρησιμοποιεί την τεράστια σελίδα με τη μορφή διαφανών τεράστιων σελίδων (THPs). Όπως υποδηλώνει το όνομα, το Linux παρέχει σιωπηρά τις διαδικασίες χρήστη με τεράστιες σελίδες όποτε είναι δυνατόν.

Εάν το THP δεν είναι ενεργοποιημένο, το Linux εκχωρεί μνήμη σε διεργασίες στη μονάδα βασικής σελίδας 4 KB. Εάν το THP είναι ενεργοποιημένο, το Linux επιχειρεί να εκχωρήσει μια τεράστια σελίδα (μέγεθος 2 MB) αντί για τη βασική σελίδα, επιτρέποντας μια χονδροειδή αντιστοίχιση σελίδας. Αυτή η μεγάλη ευαισθησία επιτρέπει την αποτελεσματική κοινή χρήση σελίδας μεταξύ των διαδικασιών γονέα και παιδιών μέσω του πιρουνιού. Σε περίπτωση που μια τεράστια κατανομή σελίδας δεν είναι εφικτή αυτή τη στιγμή, το Linux επιστρέφει στην κατανομή της βασικής σελίδας. Το Linux σαρώνει περιοδικά χώρους διευθύνσεων διεργασιών για να βρει βασικές σελίδες και να τις ενοποιήσει σε τεράστιες σελίδες.

improve your memory

Υπήρξαν μελέτες που προσπάθησαν να προωθήσουν τεράστιες σελίδες για απόδοση, ενώ συγκαλύπτουν περαιτέρω τις ελλείψεις τους. Ο Ingens [12,13] προτείνει την προετοιμασία τεράστιων σελίδων ασύγχρονα εκτός της κρίσιμης διαδρομής.

Το Hawkeye [14] παρουσιάζει ένα λεπτομερές σχήμα προώθησης τεράστιων σελίδων που βασίζεται σε μοτίβα πρόσβασης στη μνήμη για μεγιστοποίηση της απόδοσης με ελάχιστο αριθμό τεράστιων προωθήσεων σελίδων. Οι Zhu et al. [15] γενίκευση των διαδικασιών χρήσης τεράστιων σελίδων και βελτιστοποίηση του κύκλου ζωής τεράστιων σελίδων. Part et al. [16] επιτρέπουν τρύπες σε τεράστιες σελίδες, παρέχοντας ευελιξία στη διαχείριση μνήμης με τεράστιες σελίδες.

Η τεράστια σελίδα, όμως, είναι δίλεπο σπαθί. Λόγω του αυξημένου μεγέθους της μονάδας διαχείρισης, η κατανομή σελίδων υποφέρει από εσωτερικό κατακερματισμό. Εάν ένα εύρος διευθύνσεων που έχει εκχωρηθεί είναι μικρότερο από το τεράστιο μέγεθος σελίδας, η υπόλοιπη σελίδα δεν μπορεί να χρησιμοποιηθεί και χάνεται. Αυτό το λεγόμενο bloat μνήμης μπορεί να μειώσει σημαντικά τη χρήση της μνήμης σε συστήματα με τεράστιες σελίδες [12-17].

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

Έτσι, για να χειριστείτε το CoW σε μια τεράστια σελίδα, η τεράστια σελίδα χωρίζεται σε βασικές σελίδες και αντιγράφεται μόνο η ελαττωματική σελίδα. Το σπάσιμο τεράστιων σελίδων απαιτεί σημαντικό χρόνο, με αποτέλεσμα διακοπτόμενο χειρισμό σφαλμάτων μεγάλης σελίδας. Υπό αυτή την έννοια, ορισμένες εφαρμογές, ακόμη και εκείνες με ένταση μνήμης, δεν συνιστούν τη χρήση τεράστιων σελίδων για σταθερή απόδοση και χρήση μνήμης [4,18].

Γενικά, υπάρχουν περιοχές του χώρου διευθύνσεων στο χώρο διευθύνσεων διεργασίας όπου όλες οι σελίδες της περιοχής έχουν τα ίδια δικαιώματα και χαρακτηριστικά. Για τη διαχείριση, τα σύγχρονα λειτουργικά συστήματα υιοθετούν συνήθως την έννοια της «περιοχής εικονικής μνήμης (VMA)» για να αντιπροσωπεύουν τέτοιες περιοχές του χώρου διευθύνσεων. Μπορούμε να ταξινομήσουμε τις σελίδες στο χώρο διευθύνσεων διεργασίας ανάλογα με την προέλευσή τους.

improving brain function

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

2.2. Fork και Copy-on-Write

Το Fork είναι μία από τις τυπικές κλήσεις συστήματος POSIX για τη δημιουργία μιας νέας διαδικασίας. Όταν μια διεργασία καλεί την κλήση συστήματος διχάλας, δημιουργείται μια νέα διεργασία ως θυγατρική της διαδικασίας κλήσης.

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

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

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

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

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

Η συγχώνευση ίδιων σελίδων του πυρήνα (KSM) είναι η τεχνική κατάργησης διπλότυπων των ίδιων σελίδων στο σύστημα. Το λειτουργικό σύστημα σαρώνει τις σελίδες του συστήματος για να αναγνωρίσει σελίδες με πανομοιότυπα δεδομένα. Όταν εντοπίζονται τέτοιες σελίδες, το λειτουργικό σύστημα ανακτά όλες τις σελίδες εκτός από μία και ενημερώνει τους αντίστοιχους πίνακες σελίδων για κοινή χρήση της υπόλοιπης σελίδας.

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

Το Redis, μία από τις δημοφιλείς υπηρεσίες καταστήματος κλειδιού-τιμής στη μνήμη [4], είναι μια τέτοια περίπτωση [19]. Το Redisis έχει σχεδιαστεί για να διατηρεί κυρίως τα δεδομένα στη μνήμη για να παρέχει υψηλή απόδοση και χαμηλή καθυστέρηση.

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

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

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

supplements to boost memory

Οι Baumann et al. [20] ανέλυσε το πιρούνι και διαπίστωσε ότι το πιρούνι προκαλεί την υποβάθμιση της απόδοσης στις σύγχρονες εφαρμογές. Για παράδειγμα, καθώς οι σύγχρονες εφαρμογές γίνονται πιο περίπλοκες, το λειτουργικό σύστημα θα πρέπει να εξετάσει περίπου 25 ειδικές περιπτώσεις για να ξεκινήσει η επεξεργασία της κλήσης συστήματος περόνης ώστε να συμμορφώνεται με την προδιαγραφή POSIX. Συνόψισαν τα προβλήματα της κλήσης συστήματος περόνης και πρότειναν τα χαρακτηριστικά που πρέπει να έχει η κλήση συστήματος περόνης για τον σύγχρονο υπολογιστή.

Παρέχουν επίσης εναλλακτικούς τρόπους αντικατάστασης του πιρουνιού. Οι Zhao et al. [19] επεσήμανε ότι η υλοποίηση του fork στα τρέχοντα συστήματα είναι αναποτελεσματική, καθώς οι εφαρμογές με μεγάλο αποτύπωμα μνήμης απαιτούν πολύ χρόνο για να ρυθμίσουν τον πίνακα σελίδων. Ως λύση, γενίκευσαν την τεχνική αντιγραφής σε εγγραφή, έτσι ώστε ο πίνακας σελίδων να αντιγράφεται τόσο σε εγγραφές όσο και σε κανονικές σελίδες.


For more information:1950477648nn@gmail.com

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