Περίληψη
Ο μηχανισμός της εικονικής μνήμης με σελιδοποίηση, ο οποίος υποστηρίζεται πρακτικά από όλα τα σύγχρονα υπολογιστικά συστήματα, απεμπλέκει τον προγραμματιστή από τη διαχείριση της φυσικής μνήμης, προσφέροντας ένα απλουστευμένο προγραμματιστικό μοντέλο και επιτρέποντας την κεντρική και αποδοτική διαχείριση της φυσικής μνήμης από το Λειτουργικό Σύστημα (ΛΣ). Ωστόσο, ο μηχανισμός της εικονικής μνήμης εμπεριέχει και συμβιβασμούς, καθώς μπορεί να επηρεάσει αρνητικά την επίδοση του συστήματος. Ένας από τους πιο επιβαρυντικούς παράγοντες είναι η μετάφραση διευθύνσεων, η διαδικασία κατά την οποία εικονικές σελίδες αντιστοιχίζονται σε φυσικές διευθύνσεις. Η εικονικοποίηση του υλικού μέσω εικονικών μηχανών, η οποία τις τελευταίες δεκαετίες έχει γίνει σχεδόν τόσο διαδεδομένη όσο και η εικονική μνήμη, επιβαρύνει περαιτέρω την επίδοση της μετάφρασης διευθύνσεων, συνεπώς και της εικονικής μνήμης. Επιπλέον, η εικονικοποίηση δημιουργεί ένα σημασιολογικό κενό μεταξύ των υποσυστημάτων εικονικής μνήμης το ...
Ο μηχανισμός της εικονικής μνήμης με σελιδοποίηση, ο οποίος υποστηρίζεται πρακτικά από όλα τα σύγχρονα υπολογιστικά συστήματα, απεμπλέκει τον προγραμματιστή από τη διαχείριση της φυσικής μνήμης, προσφέροντας ένα απλουστευμένο προγραμματιστικό μοντέλο και επιτρέποντας την κεντρική και αποδοτική διαχείριση της φυσικής μνήμης από το Λειτουργικό Σύστημα (ΛΣ). Ωστόσο, ο μηχανισμός της εικονικής μνήμης εμπεριέχει και συμβιβασμούς, καθώς μπορεί να επηρεάσει αρνητικά την επίδοση του συστήματος. Ένας από τους πιο επιβαρυντικούς παράγοντες είναι η μετάφραση διευθύνσεων, η διαδικασία κατά την οποία εικονικές σελίδες αντιστοιχίζονται σε φυσικές διευθύνσεις. Η εικονικοποίηση του υλικού μέσω εικονικών μηχανών, η οποία τις τελευταίες δεκαετίες έχει γίνει σχεδόν τόσο διαδεδομένη όσο και η εικονική μνήμη, επιβαρύνει περαιτέρω την επίδοση της μετάφρασης διευθύνσεων, συνεπώς και της εικονικής μνήμης. Επιπλέον, η εικονικοποίηση δημιουργεί ένα σημασιολογικό κενό μεταξύ των υποσυστημάτων εικονικής μνήμης του εικονικοποιημένου και του μη εικονικοποιημένου ΛΣ. Το κενό αυτό επιδρά αρνητικά συνολικά στην αποτελεσματικότητα και αποδοτικότητα της εικονικής μνήμης. Η συμβολή αυτής της διατριβής έγκειται στο να επιτρέψει στο ΛΣ να εκμεταλλευτεί το υλικό της εικονικής μνήμης μέσω πολιτικών διαχείρισης μνήμης προσαρμοσμένων στο υλικό για την αντιμετώπιση και των δύο αυτών προβλημάτων. Το πρώτο μέρος της διατριβής εστιάζει στην αλληλεπίδραση του μεγέθους του κβάντου στο οποίο γίνεται η μετάφραση διευθύνσεων με τους αντίστοιχους μηχανισμούς και τις διεπαφές του ΛΣ. Συγκεκριμένα, γίνεται μελέτη των μηχανισμών υλικού που επιτρέπουν την αύξηση του μεγέθους του κβάντου μετάφρασης διευθύνσεων και αξιολογούνται οι διεπαφές του ΛΣ για την αξιοποίηση των συγκεκριμένων μηχανισμών. Από τη μελέτη αυτή προκύπτουν εγγενείς περιορισμοί των υπαρχουσών διεπαφών, που περιορίζουν την βέλτιστη αξιοποίηση των μηχανισμών αυτών. Για τον λόγο αυτό, η διατριβή προτείνει τον μηχανισμό των Elastic Translations (ET), μια νέα προσέγγιση που επιτρέπει την διαφανή και αποδοτική υποστήριξη των προαναφερθέντων μηχανισμών υλικού από το ΛΣ με σκοπό την βέλτιστη αξιοποίηση όλων των διαθέσιμων κβάντων που οι μηχανισμοί αυτοί υποστηρίζουν. Η υλοποίηση των ET στο Λειτουργικό Σύστημα Linux για την αρχιτεκτονική ARMv8-A και η αξιολόγηση της απόδοσής τους σε ένα πραγματικό ARMv8-A μηχάνημα, δείχνει ότι τα ΕΤ επιτρέπουν στο ΛΣ να αξιοποιήσει βέλτιστα το εκτεταμένο εύρος κβάντων μετάφρασης που υποστηρίζεται από το υλικό, βελτιώνοντας σημαντικά την επίδοση της μετάφρασης διευθύνσεων σε σχέση τόσο με καθιερωμένους μηχανισμούς όσο και με τις πλέον σύγχρονες προσεγγίσεις. Το δεύτερο μέρος της διατριβής επικεντρώνεται στην βελτίωση της επίδοσης της εικονικής μνήμης στην περίπτωση εικονικοποιημένης εκτέλεσης, και συγκεκριμένα στη γεφύρωση του σημασιολογικού κενού μεταξύ των υποσυστημάτων εικονικής μνήμης του εικονικοποιημένου και του μη εικονικοποιημένου ΛΣ, μέσω του υλικού εικονικής μνήμης. Αυτό το σημασιολογικό κενό γίνεται ιδιαίτερα εμφανές και προβληματικό στην περίπτωση όπου χρησιμοποιούνται στιγμιότυπα μνήμης για την επιτάχυνση του χρόνου εκκίνησης των εικονικών μηχανών, μια τεχνική που χρησιμοποιείται ευρέως σε καταστάσεις όπου η καθυστέρηση απόκρισης επηρεάζει σημαντικά την επίδοση, όπως στον υπολογισμό χωρίς διακομιστή. Καθώς τα στιγμιότυπα μνήμης των εικονικών μηχανών αποθηκεύονται ως αρχεία στον δίσκο, το μη εικονικοποιημένο ΛΣ αντιμετωπίζει ολόκληρη τη μνήμη της εικονικής μηχανής ως ένα αρχείο, αγνοώντας τις εφήμερες ανώνυμες εκχωρήσεις μνήμης που πραγματοποιούνται από το υποσύστημα μνήμης της εικονικής μηχανής. Η διατριβή προτείνει έναν μηχανισμό βασισμένο στην παραεικονικοποίηση, τα AnonPTEs, ώστε να γεφυρώσει τα συστήματα εικονικής μνήμης του εικονικοποιημένου και μη εικονικοποιημένου ΛΣ, επιτρέποντας στο μη εικονικοποιημένο ΛΣ να γνωρίζει τη φύση των εκχωρήσεων μνήμης της εικονικής μηχανής. Τα AnonPTEs εκμεταλλεύονται το υλικό εικονικής μνήμης, μέσω των δομών μετάφρασης διευθύνσεων της εικονικής μηχανής, συγκεκριμένα τους πίνακες σελίδων, για να δημιουργήσουν έναν κατοπτρικό φυσικό χώρο διευθύνσεων για τις εφήμερες ανώνυμες εκχωρήσεις μνήμης της εικονικής μηχανής, επιτρέποντας στο μη εικονικοποιημένο ΛΣ να ανιχνεύει τέτοιες εκχωρήσεις και να τις εξυπηρετεί χρησιμοποιώντας ανώνυμη μνήμη, αντί να ανακτά άσκοπα σελίδες από το αρχείο στιγμιότυπου μνήμης της εικονικής μηχανής από τον δίσκος. Η πειραματική αξιολόγηση των AnonPTEs δείχνει ότι, εξαλείφοντας τα μείζονα σφάλματα σελίδας για τις ανώνυμες εκχωρήσεις μνήμης της εικονικής μηχανής, μειώνεται δραστικά η μέγιστη καθυστέρηση απόκρισης όταν χρησιμοποιούνται εικονικές μηχανές με στιγμιότυπα μνήμης, βελτιώνοντας τη συνολική απόδοση του συστήματος.
περισσότερα
Περίληψη σε άλλη γλώσσα
Since its inception in the 1960s, the paged virtual memory abstraction has become ubiquitous in computer systems. Paged virtual memory decouples the process address space from the physical memory of the system and shifts the burden of managing physical memory from userspace to the Operating System (OS). While this greatly simplifies userspace programming and enables the centralized and efficient physical memory management by the OS, it is not without trade-offs. Address Translation (AT), the process of mapping pages of virtual addresses to physical memory frames, incurs significant performance overhead. Hardware virtualization, an abstraction that has, in recent decades, become as ubiquitous as virtual memory, exacerbates this overhead. Additionally, virtualized execution creates a semantic gap between the virtual memory subsystems of the virtualized (guest) and the physical (host) OS instances, which can further affect performance. The contribution of this thesis lies in enabling the ...
Since its inception in the 1960s, the paged virtual memory abstraction has become ubiquitous in computer systems. Paged virtual memory decouples the process address space from the physical memory of the system and shifts the burden of managing physical memory from userspace to the Operating System (OS). While this greatly simplifies userspace programming and enables the centralized and efficient physical memory management by the OS, it is not without trade-offs. Address Translation (AT), the process of mapping pages of virtual addresses to physical memory frames, incurs significant performance overhead. Hardware virtualization, an abstraction that has, in recent decades, become as ubiquitous as virtual memory, exacerbates this overhead. Additionally, virtualized execution creates a semantic gap between the virtual memory subsystems of the virtualized (guest) and the physical (host) OS instances, which can further affect performance. The contribution of this thesis lies in enabling the OS to take advantage of the virtual memory hardware (HW) via HW-tailored memory management to address both problems. The first part of the thesis focuses on the AT overhead of paged virtual memory and specifically on the impact of translation granularity on the performance of virtual memory, as well as on the interplay between translation granularity and OS memory management. The thesis surveys the available HW mechanisms that enable multi-grained address translation, namely large pages and TLB coalescing, and the existing OS interfaces that support these mechanisms in order to enable the OS to utilize multiple translation granules. The survey uncovers inherent limitations in these OS interfaces that hamper the effectiveness of the underlying HW mechanisms and the ability of the OS memory manager to effectively and efficiently utilize multiple translation granules. The thesis then proposes Elastic Translations (ET), a novel approach that adopts a markedly different approach regarding the way the OS interfaces with the aforementioned HW mechanisms, and enables the OS to seamlessly and optimally use and select among all HW-supported translation granules. Implementing ET in Linux for the ARMv8-A architecture and evaluating its performance on a real ARMv8-A server shows that ET unlock the full potential of the OS-assisted TLB coalescing feature of the ARMv8-A architecture and enable the OS memory manager to optimally utilize the extended range of translation granules, unlocked by coalescing, even when memory is fragmented, outperforming both state-of-practice and state-of-the-art approaches. The second part of the thesis focuses on bridging the semantic gap between the virtual memory subsystems of physical (host) and virtualized (guest) OS instances via the virtual memory hardware, i.e., the Memory Management Unit (MMU). This semantic gap becomes particularly apparent and problematic when using Virtual Machine (VM) memory snapshots to accelerate VM boot times, a technique heavily employed in latency-sensitive scenarios such as Function-as-a-Service (FaaS) serverless computing. As VM snapshots are stored as files on disk, the OS on the physical host treats the entire guest memory as a file, being oblivious to the ephemeral anonymous allocations performed by the guest memory subsystem. The thesis proposes a lightweight paravirtualized (PV) mechanism, AnonPTEs, to enlighten the host OS regarding the nature of the guest VM memory allocations by taking advantage of the virtual memory hardware. AnonPTEs piggyback on the VM AT structures, i.e., the guest VM page tables, to create a mirrored guest physical address space for the ephemeral anonymous allocations of the VM, enabling the host OS to detect such allocations and serve them using anonymous memory instead of unnecessarily fetching memory pages from the VM memory snapshot file on disk. The integration of AnonPTEs with SnapBPF, an eBPF-based state-of-the-art snapshot prefetcher for VM-sandboxed serverless functions, and its subsequent evaluation using representative serverless workloads shows that AnonPTEs eliminate gratuitous major page faults for anonymous VM allocations, thereby improving the tail latency for VM-sandboxed serverless functions.
περισσότερα