CCoW: Βελτιστοποίηση Αντιγραφής σε Εγγραφή Λαμβάνοντας υπόψη τη Χωρική Τοπικότητα στους Φόρτους Εργασίας Μέρος 4
Apr 03, 2024
3.3. Παρακολούθηση πρόσβασης σε προ-αντιγραφημένες σελίδες
Το CCoW υποτίθεται ότι αποσβένει τα γενικά έξοδα για συχνές επιβαρύνσεις χειρισμού σφαλμάτων σελίδας. Ωστόσο, η εκ των προτέρων αντιγραφή σελίδων οδηγεί σε ένα άλλο ζήτημα: παρακολούθηση προσβάσεων στη σελίδα μετά την αντιγραφή.
Υπάρχει μια ισχυρή σύνδεση μεταξύ της επεξεργασίας σφαλμάτων και της μνήμης. Για τους περισσότερους ανθρώπους, τα λάθη θεωρούνται συχνά ως κάτι κακό, αλλά μπορεί να είναι ευκαιρίες για να μάθουμε και να αναπτυχθούμε. Με τον σωστό χειρισμό των σφαλμάτων, μπορούμε να ενισχύσουμε τη μνήμη μας και να μας βοηθήσουμε να κατανοήσουμε καλύτερα και να ανταποκριθούμε σε παρόμοιες καταστάσεις.
Ένας τρόπος αντιμετώπισης των λαθών είναι ο προβληματισμός και η ανάλυση. Όταν κάνουμε ένα λάθος, θα πρέπει να αφιερώνουμε χρόνο για να αναλογιστούμε πώς συνέβη το λάθος και τι μπορούμε να κάνουμε για να αποτρέψουμε να συμβεί ξανά ένα παρόμοιο λάθος. Μέσω του προβληματισμού, μπορούμε να εντοπίσουμε τις βαθύτερες αιτίες των προβλημάτων και να αναπτύξουμε αντίμετρα για την επίλυσή τους. Αυτό το είδος ανάλυσης δεν αφορά μόνο λάθη, αλλά μπορεί να μας βοηθήσει να πάρουμε καλύτερες αποφάσεις σε άλλες καταστάσεις ζωής και να βελτιώσουμε τις δεξιότητες και τις ικανότητές μας.
Ένας άλλος τρόπος για να αντιμετωπίσετε τα λάθη είναι να επιτρέψετε στον εαυτό σας να τα αποδεχτεί και να προχωρήσει. Δεν πρέπει να αφήνουμε τα λάθη να μας επιβραδύνουν ή να μας απογοητεύουν. Αντίθετα, θα πρέπει να τις βλέπουμε ως ευκαιρίες ανάπτυξης, επιτρέποντας στον εαυτό μας να μαθαίνει από τα λάθη μας και να συνεχίζει να βελτιώνεται. Εάν μπορούμε να δεχτούμε τα λάθη και να τα αντιμετωπίσουμε με θετική στάση, μπορούμε να οικοδομήσουμε μια ισχυρή νοοτροπία και αυτοπεποίθηση, κάτι που είναι πολύ σημαντικό για τη διατήρηση της καλής μνήμης.
Τέλος, μπορούμε να ενισχύσουμε τη μνήμη μας μοιραζόμενοι τα λάθη μας. Όταν λέμε στους άλλους για λάθη που έχουμε κάνει, τείνουμε να θυμόμαστε αυτά τα γεγονότα πιο βαθιά. Αυτό συμβαίνει γιατί όταν λέμε στους άλλους, πρέπει να κάνουμε τα πράγματα πιο ξεκάθαρα και να θυμόμαστε κάθε λεπτομέρεια του λάθους. Με αυτόν τον τρόπο μπορούμε να κατανοήσουμε καλύτερα αυτά τα σφάλματα και να αποτρέψουμε την επανεμφάνισή τους.
Συνοπτικά, υπάρχει μια ισχυρή σχέση μεταξύ της επεξεργασίας σφαλμάτων και της μνήμης. Με το να χειριζόμαστε σωστά τα λάθη, μπορούμε να ενισχύσουμε τη μνήμη μας, να βελτιώσουμε τις δεξιότητες και τις ικανότητές μας και να γίνουμε καλύτεροι άνθρωποι. Πρέπει να θεωρούμε τα λάθη ως ευκαιρία, να αντιμετωπίζουμε ενεργά τις δυσκολίες και να μαθαίνουμε και να αναπτύσσουμε από αυτές. Μπορεί να φανεί ότι πρέπει να βελτιώσουμε τη μνήμη και το Cistanche deserticola μπορεί να βελτιώσει σημαντικά τη μνήμη, επειδή το Cistanche deserticola είναι ένα παραδοσιακό κινέζικο φαρμακευτικό υλικό που έχει πολλά μοναδικά αποτελέσματα, ένα από τα οποία είναι η βελτίωση της μνήμης. Η αποτελεσματικότητα του Cistanche deserticola προέρχεται από τα πολλαπλά ενεργά συστατικά που περιέχει, όπως ταννικό οξύ, πολυσακχαρίτες, φλαβονοειδή γλυκοσίδες κ.λπ. Αυτά τα συστατικά μπορούν να προάγουν την υγεία του εγκεφάλου μέσω ποικίλων οδών.

Κάντε κλικ στην επιλογή Γνωρίστε τη βραχυπρόθεσμη μνήμη πώς να βελτιώσετε
Στο αρχικό σχήμα αντιγραφής σε εγγραφή, η πρώτη εγγραφή σε κάθε σελίδα καταγράφεται από τον χειριστή σφαλμάτων σελίδας.
Αντιγράφεται μόνο η ελαττωματική σελίδα και το σύστημα μπορεί να παρακολουθεί με ακρίβεια την πρόσβαση σε κάθε σελίδα μέσω του προγράμματος χειρισμού σφαλμάτων σελίδας. Από την άλλη πλευρά, όταν το σύστημα αντιγράφει ολόκληρη την περιοχή, όλες οι σελίδες της περιοχής αντιστοιχίζονται στη διαδικασία με γραπτή άδεια.
Έτσι, οι επόμενες εγγραφές σε αυτές τις αντιγραμμένες σελίδες μπορούν να πραγματοποιηθούν χωρίς να ενεργοποιηθεί ο μηχανισμός διαχείρισης σφαλμάτων σελίδας, επομένως το σύστημα δεν μπορεί να παρακολουθεί τις προσβάσεις στις αντιγραμμένες σελίδες. Αυτό μπορεί να είναι προβληματικό όταν η διαδικασία εκτελεί επαναλαμβανόμενα πιρούνια. Ας υποθέσουμε ότι η περιοχή έχει υψηλή χωρική εντοπιότητα και μια εποχή ορίζεται ως η περίοδος μεταξύ δύο διχάλων.
Η υψηλή τοποθεσία μπορεί να καταγραφεί μετρώντας τα σφάλματα σελίδας που συνέβησαν στην περιοχή. Έπειτα, ας υποθέσουμε ότι η διαδικασία δημιουργεί μια νέα διαδικασία με ένα πιρούνι. Όταν ξεκινά μια νέα εποχή με το fork, η πρώτη πρόσβαση εγγραφής σε μία από τις σελίδες της περιοχής θα ξεκινήσει το CCoW, αντιγράφοντας όλες τις σελίδες στην περιοχή. Τώρα η διαδικασία έχει όλες τις σελίδες με άδεια εγγραφής και δεν δημιουργούνται περαιτέρω σφάλματα σελίδας από την περιοχή μέχρι το τέλος της εποχής.
Όταν ξεκινά ξανά μια νέα εποχή, η περιοχή θεωρείται ότι έχει χαμηλή κάλυψη στην εποχή, δεδομένου ότι η περιοχή έχει μόνο μία σελίδα αντιγραφής σε εγγραφή. Έτσι, κάθε εγγραφή στην περιοχή επεξεργάζεται μέσω του αρχικού μηχανισμού αντιγραφής σε εγγραφή ανά σελίδα, με αποτέλεσμα να διακυβεύεται η ευκαιρία βελτιστοποίησης απόδοσης ακόμη και αν η περιοχή έχει υψηλή τοποθεσία.
Σημειώστε ότι η περιοχή θεωρείται ότι έχει υψηλή εντοπιότητα στην επόμενη εποχή ξανά και η διαδικασία επαναλαμβάνεται για να εναλλάσσεται η κατάσταση. Για να επιλύσουμε αυτό το ζήτημα, χρειαζόμαστε έναν μηχανισμό για την παρακολούθηση της πρόσβασης στη σελίδα μετά την αντιγραφή.
Αυτή η μελέτη προτείνει τη μόχλευση του dirty bit στην καταχώρηση του πίνακα σελίδων (PTE). Γενικά, οι σύγχρονες αρχιτεκτονικές διατηρούν διάφορες πληροφορίες στο PTE για κάθε σελίδα και το dirty bit είναι ένα από τα πεδία που υποστηρίζονται από τις περισσότερες αρχιτεκτονικές.
Όταν το MMU επεξεργάζεται μια πρόσβαση στη μνήμη εγγραφής, ορίζει αυτόματα το βρώμικο bit της αντίστοιχης σελίδας. Αυτό αντιθέτως σημαίνει ότι όταν έχει οριστεί το βρώμικο bit για μια σελίδα, η σελίδα έχει ενημερωθεί με προσβάσεις εγγραφής.
Με βάση αυτή την ιδέα, τροποποιήσαμε τον μηχανισμό για τον υπολογισμό της κάλυψης. Αρχικά, όλες οι περιοχές θεωρούνται κανονικές περιοχές. Κατά τη διάρκεια της διχάλας, η κάλυψη για κανονικές περιοχές υπολογίζεται με τον αριθμό των αντιγράφων σε εγγραφή χρησιμοποιώντας την Εξίσωση (1).

Κατά τον χειρισμό του σφάλματος σελίδας για μια περιοχή υψηλής τοποθεσίας, όλες οι σελίδες στην περιοχή αντιγράφονται με καθαρό το βρώμικο bit τους. Επιπλέον, η περιοχή επισημαίνεται ως προαντιγραμμένη περιοχή. Κατά τη διάρκεια της διχάλας, η κάλυψη για την αντιγραμμένη περιοχή υπολογίζεται με τον αριθμό των βρώμικων σελίδων στην περιοχή ως εξής:
![]()
Η υπολογισμένη κάλυψη για κάθε περιοχή μεταφέρεται μέσω της διχάλας και χρησιμοποιείται ως μέτρηση για τη χωρική τοποθεσία της περιοχής. Όταν παρουσιάζεται σφάλμα σελίδας εγγραφής σε μια περιοχή, το σύστημα ελέγχει την κάλυψη της περιοχής και μπορεί να προ-αντιγράψει σελίδες για τις περιοχές υψηλής τοποθεσίας.
Το Σχήμα 2 απεικονίζει μια κατάσταση όπου η κάλυψη υπολογίζεται μετά από προαντίγραφα. Ας υποθέσουμε ότι και οι δύο περιοχές έχουν αντιγραφεί (σκιασμένες με κόκκινο χρώμα) και οι σελίδες 0, 2, 3, 4 και 11 έχουν όλες το σύνολο dirtybit.
Για τον υπολογισμό της κάλυψης κατά την επεξεργασία του πιρουνιού, το σύστημα χρησιμοποιεί το dirty bitin αντί του πλήθους αντιγραφής σε εγγραφή, καθώς οι περιοχές αντιγράφονται στην τρέχουσα εποχή. Επομένως, η περιοχή 0 έχει κάλυψη 66%.
Ενώ η κάλυψη της περιοχής 1 είναι 15%. Για να χειριστείτε το σφάλμα σελίδας για τη σελίδα 3, η περιοχή 0 αντιγράφεται ξανά, ενώ το σφάλμα σελίδας για τη σελίδα 9 αντιμετωπίζεται με τον αρχικό μηχανισμό. Με αυτόν τον τρόπο, μπορούμε να αποφύγουμε την εστίαση των περιοχών υψηλής τοπικότητας.

3.4. Αποτύπωση της Τοπικότητας
Καθώς ο χειριστής σφαλμάτων σελίδας βρίσκεται στη διαδρομή κρίσιμης απόδοσης στο λειτουργικό σύστημα, θα πρέπει να ελαχιστοποιήσουμε τα γενικά έξοδα για την υλοποίηση του προτεινόμενου σχήματος.
Βασικά, το CCoW Απαιτεί έναν μηχανισμό για τον υπολογισμό της κάλυψης και ο απλούστερος τρόπος εφαρμογής αυτής της δυνατότητας είναι η παρακολούθηση των σελίδων που προκαλούν σφάλματα σελίδας με ένα bitmap, όπως περιγράφεται στην Ενότητα 3.2.
Κατά τον χειρισμό ενός σφάλματος σελίδας, το σύστημα ορίζει το bit που αντιστοιχεί στην ελαττωματική σελίδα. Κατά τη διάρκεια της διχάλας, το σύστημα σαρώνει το bitmap για να μετρήσει τον αριθμό των σφαλμάτων για κάθε περιοχή και υπολογίζει την κάλυψη. Το bitmap επαναφέρεται μετά τον υπολογισμό.
Αυτή η προσέγγιση είναι απλή αλλά επιβάλλει μεγάλους περιορισμούς χώρου και χρόνου. Το σύστημα θα πρέπει να διατηρεί μια καταχώρηση bitmap ενός bit για κάθε σελίδα 4 KB και να επιθεωρεί ολόκληρο το bitmap κατά τη διάρκεια της διχάλας. Λαμβάνοντας υπόψη το τεράστιο αποτύπωμα μνήμης των εφαρμογών έντασης μνήμης, αυτές οι λειτουργίες θα επιφέρουν υψηλό κόστος κατά τη διάρκεια της διχάλας, αντισταθμίζοντας το όφελος απόδοσης του CCoW. Βελτιστοποιούμε αυτήν την υλοποίηση εκμεταλλευόμενοι τα χαρακτηριστικά του σφάλματος σελίδας.
Εάν προκύψει σφάλμα σελίδας από μια σελίδα, η σελίδα δεν επιφέρει πρόσθετα σφάλματα σελίδας έως ότου η διαδικασία δημιουργήσει μια νέα διαδικασία. Έτσι, κάθε σελίδα μπορεί να προκαλέσει ένα σφάλμα μιας σελίδας το πολύ και για μια περιοχή με n σελίδες, τα σφάλματα σελίδας μπορούν να συμβούν μόνο έως και n φορές. Αυτό σημαίνει ότι η καταμέτρηση του αριθμού των σφαλμάτων σελίδας ανά περιοχή είναι επαρκής για τον υπολογισμό της κάλυψης, αντί για τη διατήρηση του bitmap για μεμονωμένες σελίδες.
Έτσι, αντικαθιστούμε το bitmap με τους μετρητές σφάλματος. Κάθε περιοχή συσχετίζεται με ένα ζεύγος μετρητών ως εξής: ένας για την καταμέτρηση των σφαλμάτων σελίδας στην τελευταία εποχή και ένας άλλος για την καταμέτρηση των σφαλμάτων σελίδας στην τρέχουσα εποχή.
Το πρώτο χρησιμοποιείται για τον προσδιορισμό της χωρικής εντοπιότητας των περιοχών, ενώ το δεύτερο χρησιμοποιείται για την παρακολούθηση της χωρικής τοπικότητας της τρέχουσας εποχής. Κατά τη διάρκεια της διχάλας, ο τρέχων μετρητής σφαλμάτων αντιγράφεται στον προηγούμενο μετρητή σφαλμάτων.
Εάν μια περιοχή αντιγράφεται σε αυτήν την εποχή, τότε ο αριθμός των βρώμικων σελίδων στην περιοχή εγγράφεται στον προηγούμενο μετρητή σφαλμάτων. Οι μετρητές συμπληρώνονται κατά τη δημιουργία μιας νέας περιοχής εικονικής μνήμης (VMA) και ανακτώνται όταν το αντίστοιχο VMA συρρικνώνεται ή δεν αντιστοιχίζεται. Αυτή η βελτιστοποίηση μειώνει την επιβάρυνση χώρου του CCoW από ένα bit ανά σελίδα σε μερικά byte ανά περιοχή.

For more information:1950477648nn@gmail.com






