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

Apr 02, 2024

3. Σχεδιασμός CCW

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

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

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

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

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

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

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

improve working memory

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

3.1. Κίνητρο

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

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

Σήμερα, η κατασκευή ενός κόμβου με τεράστιο όγκο μνήμης σε κλίμακα terabyte έχει γίνει φθηνότερη από ποτέ. Επιπλέον, οι πάροχοι υπηρεσιών cloud έχουν αναφέρει ότι οι κόμβοι στα κέντρα δεδομένων υποφέρουν από χαμηλή χρήση μνήμης, αφήνοντας το 40-50% της μνήμης αχρησιμοποίητο [23-26]. Σε αυτήν την κατάσταση, καθίσταται εφικτό να ανταλλάσσεται χώρος μνήμης για απόδοση σε συστήματα κρίσιμα για την απόδοση [27]. Τα πλεονεκτήματα όσον αφορά την απόδοση έχουν επίσης μειωθεί.

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

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

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

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

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

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

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

ways to improve your memory

Επομένως, είναι σημαντικό να εντοπιστούν οι κατάλληλες στοχευόμενες σελίδες για αντιγραφή. Παρόμοιες προσεγγίσεις έχουν χρησιμοποιηθεί για την ελαχιστοποίηση των επιβαρύνσεων διαχείρισης σφαλμάτων σελίδας. Το Linux χρησιμοποιεί το λεγόμενο χαρακτηριστικό «σφάλμα γύρω». Κατά τον χειρισμό ενός σφάλματος σελίδας, το Linux ξεκινά τον χειρισμό σφαλμάτων σελίδας για τις σελίδες που βρίσκονται γύρω από την ελαττωματική σελίδα [2]. Αυτή η δυνατότητα, ωστόσο, εφαρμόζεται μόνο στα σφάλματα σελίδας ανάγνωσης για περιοχές μνήμης που υποστηρίζονται από αρχεία.

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

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

Ωστόσο, ανεξάρτητα από τα προτεινόμενα σχήματα, η αντιγραφή σε εγγραφή εκτελείται μόνο στη βασική διατομή σελίδας, αφού διασπαστεί η τεράστια σελίδα σε βασικές σελίδες εάν είναι απαραίτητο. Έτσι, τα χαρακτηριστικά απόδοσης αντιγραφής σε εγγραφή είναι τα ίδια με το προεπιλεγμένο σύστημα Linux με τον μηχανισμό διαφανούς τεράστιας σελίδας (THP). Αντίθετα, το προτεινόμενο σχήμα μας είναι μοναδικό στο ότι εκτελεί copy-on-write με διαφορετική ευαισθησία ανάλογα με τον βαθμό τοποθεσίας στις προσβάσεις στη μνήμη.

3.2. Προσδιορισμός της Χωρικής Τοπικότητας

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

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

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

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

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

improve brain

Στη συνέχεια, προτείνουμε μια μέθοδο για την πρόβλεψη της ευκαιρίας βελτιστοποίησης από το ιστορικό, υποθέτοντας ότι η συνολική συμπεριφορά των εφαρμογών δεν αλλάζει σημαντικά. Για το σκοπό αυτό, διαιρούμε τον χώρο διευθύνσεων διεργασίας σε περιοχές σταθερού μεγέθους. Κάθε περιοχή διατηρεί ένα bitmap, όπου κάθε bit αντιστοιχεί σε μια σελίδα στην περιοχή. Δημιουργείται μια διεργασία με εκκαθαρισμένα όλα τα bitmaps, όπως για τις νέες περιοχές εικονικής μνήμης (VMA) που έχουν συμπληρωθεί πρόσφατα. Όταν δεν έχει αντιστοιχιστεί ολόκληρο το VMA partor, τα bitmaps στην αντίστοιχη περιοχή διευθύνσεων απελευθερώνονται επίσης.

Το bitmap εκχωρείται μόνο για τα μέρη του VMA που είναι συμπληρωμένα και οι πληροφορίες μιας σελίδας 4 KB συνοψίζονται σε ένα bit. Έτσι, ο γενικός χώρος για το bitmapsis περίπου 0.003% του συμπληρωμένου χώρου διευθύνσεων. Αρχικά, οι εγγραφές υποβάλλονται σε επεξεργασία μέσω του copy-on-write ως έχει.

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

improve cognitive function

Ας υποθέσουμε ότι ένα σύστημα χρησιμοποιεί σελίδες 4 KB και ο χώρος διευθύνσεων χωρίζεται σε περιοχές των 2 MB.

Στη συνέχεια, κάθε περιοχή έχει 512 4 σελίδες KB. Εάν αντιγράφονται 300 σελίδες σε εγγραφές, η κάλυψη της περιοχής είναι 300/512 × 100=58.6%. Όσο μεγαλύτερη είναι η κάλυψη μιας περιοχής, τόσο περισσότερο μπορεί η περιοχή να επωφεληθεί από την ευκαιρία βελτιστοποίησης της προαντιγραφής. Αυτές οι πληροφορίες κάλυψης μεταφέρονται στο πιρούνι και χρησιμοποιούνται ως μέτρηση για τον προσδιορισμό του οφέλους από την αντιγραφή κοντινών σελίδων.

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

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

Οι σελίδες με πράσινη απόχρωση συμπληρώνονται με copy-on-write.Όταν η διαδικασία καλεί την κλήση συστήματος διχάλας, άδεια εγγραφής για όλες τις σελίδες, συμπεριλαμβανομένων των πράσινων, που θα απορριφθούν κατά τη διάρκεια της διχάλας. Ας υποθέσουμε ότι το όριο για τον προσδιορισμό της περιοχής υψηλής τοποθεσίας είναι 60%. Στην περιοχή 0, τέσσερις σελίδες (σελίδες 1, 2, 3 και 4) είχαν αντιγραφεί πριν από τη διχάλα, παρέχοντας κάλυψη 4/{6=66%.

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

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

improve memory


For more information:1950477648nn@gmail.com

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