heal.abstract |
Η εικονική μνήμη αποτελεί την θεμελιώδη αφαίρεση για τον ασφαλή διαμοιρασμό της φυ-
σικής μνήμης ενός υπολογιστικού συστήματος. Με την εικονική μνήμη οι εφαρμογές χρη-
σιμοποιούν εικονικές διευθύνσεις για να αναφερθούν στην μνήμη και το λειτουργικό είναι
υπεύθυνο για την παροχή της μετάφρασης από τον εικονικό στον φυσικό χώρο διευθύνσεων.
Για την υλοποίηση της συνήθως χρησιμοποιείται ο μηχανισμός της σελιδοποίησης, με τον
οποίο το λειτουργικό σύστημα διατηρεί πολυεπίπεδες δομές που περιέχουν τις μεταφράσεις
και ονομάζονται Πίνακες Σελίδων (Page Tables). Αυτοί χρησιμοποιούνται κατά την πρό-
σβαση από το υλικό (Page Walk) ώστε να γίνει η μετάφραση της εικονική διεύθυνσης και
να αποθηκευτεί σε κρυφές μνήμες (Translation Lookaside Buffer - TLB) για την επόμενη
φορά που θα χρησιμοποιηθεί.
Στην περίπτωση του εικονικού περιβάλλοντος απαιτείται ο συνδυασμός δύο μεταφρά-
σεων, αυτή του εικονικού μηχανήματος (Guest) και αυτή του μηχανήματος που το φιλοξενεί
(Host). Η αρχική προσέγγιση για την επίτευξη της εικονικοποίησης της μνήμης, τα Shadow
Page Tables, απαιτούν συχνές παρεμβάσεις του Host, ειδικά στην περίπτωση εφαρμογών
που αλλάζουν συχνά την διάταξη της μνήμης τους. Η δεύτερη λύση που προτάθηκε, και
στηρίζεται στον συνδυασμό των μεταφράσεων από το ίδιο το υλικό, αν και μειώνει τις πα-
ρεμβάσεις που απαιτούνται από τον Host, αυξάνει σημαντικά το πλήθος των προσβάσεων
που γίνονται κατά τα Page Walks και έτσι είναι ιδιαίτερα κοστοβόρα για εφαρμογές που
προσπελαύνουν μεγαλύτερο χώρο διευθύνσεων από αυτόν που μπορεί να καλύψει το TLB.
Ως αποτέλεσμα, καμία από τις δύο υπάρχουσες τεχνικές δεν υπερτερεί έναντι της άλλης για
κάθε φόρτο εργασίας.
Για να αντιμετωπίσουμε αυτό το πρόβλημα, έχουμε υλοποιήσει ένα μηχανισμό για τον
πυρήνα Linux, χρησιμοποιώντας το KVM module και την εφαρμογή QEMU. Ο μηχανισμός
μας επιτρέπει σε διαφορετικά εικονικά μηχανήματα να χρησιμοποιούν διαφορετική μέθοδο
σελιδοποίησης, η οποία γίνεται να αλλάξει και κατά την διάρκεια εκτέλεσής τους. Επιπλέον
προτείνουμε πολιτικές χρήσης του μηχανισμού ώστε να επιλέγεται η βέλτιστη από τις δύο
τεχνικές με βάση τον τρέχοντα φόρτο εργασίας. Η δουλειά μας καταφέρνει να έχει επίδοση
κοντά σε αυτή της βέλτιστης στατικής επιλογής μεταξύ των δύο μεθόδων, και σε μερικές
περιπτώσεις να την ξεπεράσει. |
el |