Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Σχετικά έγγραφα
Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Οργάνωση Υπολογιστών (ΙI)

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Τεχνολογίες Κύριας Μνήμης

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

Κεντρική Μονάδα Επεξεργασίας

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Λειτουργικά Συστήματα Η/Υ

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

Λειτουργικά Συστήματα (Λ/Σ)

Αρχιτεκτονικές Συνόλου Εντολών

Λειτουργικά Συστήματα

Οργάνωση Υπολογιστών (IΙI)

Εικονική Μνήμη (Virtual Μemory)

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

Οργάνωση Υπολογιστών (Ι)

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Παραλληλισμός σε επίπεδο εντολών

Αρχιτεκτονική Υπολογιστών

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Διαχείριση Κύριας Μνήμης

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης

Κεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση

ΠΛΕ- 027 Μικροεπεξεργαστές

Εισαγωγή στην Αρχιτεκτονική Η/Υ

Εικονική Μνήμη (Virtual Μemory)

Εισαγωγή στην Αρχιτεκτονική Η/Υ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα

Εικονική Μνήμη (virtual memory)

Διασύνδεση Εισόδου-Εξόδου

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Λειτουργικά Συστήματα (ΗΥ321)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

Λειτουργικά Συστήματα

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Μάθημα 8: Διαχείριση Μνήμης

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες

Το μάθημα συνοπτικά (1) Το μάθημα συνοπτικά (2) Τι είναι ένα υπολογιστικό σύστημα ;

Λειτουργικά Συστήματα

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

Το μάθημα συνοπτικά (1) Το μάθημα συνοπτικά (2) Τι είναι ένα υπολογιστικό σύστημα ;

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ

Διάλεξη 15 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης

Εισαγωγή στα Λειτουργικά

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης.

Εικονική Μνήμη (1/2)

Η ιεραρχία της μνήμης

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

Εικονική Μνήμη (Virtual Memory)

Αρχιτεκτονική-ΙI Ενότητα 6 :

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

Εισαγωγή στην Πληροφορική

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Λειτουργικά Συστήματα

Διαχείριση Μνήμης (Memory Management)

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

πίνακας σελίδων Bit Παρουσίας Αριθμός Πλαισίου

Εισαγωγή στα Λειτουργικά Συστήματα

Εικονική Μνήμη (Virtual memory)

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 5. Μεγάλη και γρήγορη: Αξιοποίηση της ιεραρχίας της µνήµης

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Αρχιτεκτονική Υπολογιστών

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Κεφάλαιο 1 Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Κεφάλαιο 3. Διδακτικοί Στόχοι

Λειτουργικά Συστήματα

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

Λειτουργικά Συστήματα

Αρχιτεκτονική υπολογιστών

Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Λειτουργικά Συστήματα. Ενότητα # 3: Διαχείριση Μνήμης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εισαγωγή στην πληροφορική

Ενότητα 7 (Κεφάλαιο 7) Διαχείριση Μνήμης. Περιεχόμενα. Ανάγκη για διαχείριση μνήμης. Βασικές αρχές διαχείρισης μνήμης.

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III

Transcript:

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2011-12 Εικονική (και ο ρόλος της στην ιεραρχία μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης

Ιεραρχία η νέα τάση: [2011] και το σύστημα γραφικών μέσα στον επεξεργαστή! οθόνη διασυνδετικός δίαυλος CPU core L1 L2... CPU core L1 L2 > 90GB/s κρυφή μνήμη (3 ου επιπέδου, L3) Δευτερεύουσα μνήμη : Το τελευταίο επίπεδο στην ιεραρχία εντός του υπολογιστικού συστήματος σύστημα γραφικών PCIe (x16) έως 8GB/s USB έως 5Gbit/s north bridge south bridge έως 500ΜB/s M-bus (mem bus) έως 21 GB/s (dual-channel) SATA 600ΜB/s DRAM δίσκοι δευτερεύουσα μνήμη οι ρυθμοί μεταφοράς που δίνονται είναι οι θεωρητικά μέγιστοι! Αρχιτεκτονική Υπολογιστών Εικονική 2

Επεκτείνοντας την Ιεραρχία Εννοιολογικά: Κάθε υψηλότερο επίπεδο δρα ως κρυφή μνήμη για το αμέσως χαμηλότερο Η κύρια μνήμη λειτουργεί ως κρυφή μνήμη των μαγνητικών δίσκων Τα περιεχόμενα στην κύρια μνήμη είναι υποσύνολο εκείνων στους δίσκους του συστήματος CPU Επέκταση ιεραρχίας εκτός του συστήματος: δικτυακές θέσεις αποθήκευσης 0,5-5ns $4.000-$10.000/GB 50-70ns $100-$200/GB 5.000.000-20.000.000 ns $0,5-$2/GB Κρυφή μνήμη (SRAM) Κύρια μνήμη (DRAM) Μαγνητικοί δίσκοι Αρχιτεκτονική Υπολογιστών Εικονική 3

Εικονική μνήμη (virtual memory) Το πρώτο σύστημα εικονικής μνήμης παρουσιάστηκε το 1962 (Atlas computer) Για ποιον λόγο εμφανίστηκε; Στους πρώτους υπολογιστές το μέγεθος της κύριας μνήμης ήταν περιορισμένο Ακόμα και στην περίπτωση του μονοπρογραμματισμού η κύρια μνήμη ήταν ανεπαρκής Εμφάνιση ΛΣ με υποστήριξη πολυπρογραμματισμού: αδυναμία ταυτόχρονης διατήρησης πολλών προγραμμάτων στην κύρια μνήμη Η λύση: εικονική μνήμη Μέρος των δεδομένων βρίσκεται στους δίσκους του συστήματος Μεταφορά στην κύρια μνήμη όταν χρειαστεί Πιθανότατα αντικαθιστώντας άλλα τμήματα δεδομένων Τα τελευταία μεταφέρονται πίσω στους δίσκους Αρχιτεκτονική Υπολογιστών Εικονική 4

Πριν την εικονική μνήμη: overlays Κύρια μνήμη main( ) { δίσκος swap-in(d) call D1 Α Β Η τεχνική των overlays απαιτούσε από τον προγραμματιστή να χειρίζεται τις λεπτομέρειες (π.χ διευθύνσεις!) φόρτωσης και κλήσης των υποπρογραμμάτων! swap-in(b) Call B2 Καταλληλότερο για στατικά δεδομένα υποπρογράμματα C D Αρχιτεκτονική Υπολογιστών Εικονική 5

Πριν την εικονική μνήμη: overlays Κύρια μνήμη main( ) { δίσκος swap-in(d) call D1 Α Β Η τεχνική των overlays απαιτούσε από τον προγραμματιστή να χειρίζεται τις λεπτομέρειες (π.χ διευθύνσεις!) φόρτωσης και κλήσης των υποπρογραμμάτων! swap-in(b) Call B2 D1( ) { } Καταλληλότερο για στατικά δεδομένα υποπρογράμματα C D Αρχιτεκτονική Υπολογιστών Εικονική 6

Πριν την εικονική μνήμη: overlays Κύρια μνήμη main( ) { δίσκος swap-in(d) call D1 Α Β Η τεχνική των overlays απαιτούσε από τον προγραμματιστή να χειρίζεται τις λεπτομέρειες (π.χ διευθύνσεις!) φόρτωσης και κλήσης των υποπρογραμμάτων! swap-in(b) Call B2 D1( B2( ) { } Καταλληλότερο για στατικά δεδομένα υποπρογράμματα C D Αρχιτεκτονική Υπολογιστών Εικονική 7

Χώρος διευθύνσεων προγράμματος Ποιες οι διευθύνσεις που δημιουργούσε ο μεταγλωττιστής; Τι συνέβαινε αν το πρόγραμμα δεν φορτωνόταν πάντοτε στον ίδιο χώρο μνήμης; Address Space Εκτελούμενο πρόγραμμα στη μνήμη: Διευθύνσεις κώδικα Εντολές διακλάδωσης Διευθύνσεις δεδομένων Εντολές load-store Πριν την εικονική μνήμη: Φυσικές διευθύνσεις Άμεση αντιστοιχία με διευθύνσεις κύριας μνήμης Κύρια μνήμη... call 0x12F0. 0x12F0: load R5, 0x8008.... 0x8008: 0x45, 0x34, 0xF3 Αρχιτεκτονική Υπολογιστών Εικονική 8

Πολυπρογραμματισμός πριν την εικονική μνήμη ΚΜΕ load R5, (0x8008) read mem[0x8008] κύρια μνήμη Χρήση καταχωρητών βάσης (χωρίς άλλη υποστήριξη) σε χαμηλού κόστους επεξεργαστές (π.χ. Intel 8086). Διευκόλυνση τοποθέτησης προγραμμάτων οπουδήποτε στη μνήμη. ΚΜΕ load R5, (0x8008) DS + 0x1FF0 read mem[0x9ff8] καταχωρητής βάσης τμήματος δεδομένων (data segment) κύρια μνήμη Καταχωρητές βάσης για κώδικα και δεδομένα Αλλαγή τιμής καταχωρητών βάσης ανά πρόγραμμα Αρχιτεκτονική Υπολογιστών Εικονική 9

Μεταβαίνοντας σε εικονικές διευθύνσεις Το προηγούμενο σχήμα Εισήγαγε την αποσύνδεση των λογικών διευθύνσεων των προγραμμάτων από τις φυσικές διευθύνσεις κύριας μνήμης Με απλή αντιστοιχία: φυσική διεύθυνση = λογική διεύθυνση + καταχωρητής βάσης Απαιτείται υποστήριξη από το υλικό (ΚΜΕ) Το πρόγραμμα μπορεί να φορτωθεί σε οποιαδήποτε θέση μνήμης (relocation) Δεν περιέχει αναφορές σε φυσικές διευθύνσεις Εισάγεται η έννοια των ξεχωριστών χώρων διευθύνσεων (κώδικα, δεδομένων...) ανά πρόγραμμα χωρίς περαιτέρω υποστήριξη όμως! Αρχιτεκτονική Υπολογιστών Εικονική 10

Εικονικές Διευθύνσεις ΚΜΕ load R5, 0x8008 Ο κύριος ρόλος της εικονικής μνήμης στα σημερινά υπολογιστικά συστήματα, με την άφθονη κύρια μνήμη, είναι η υποστήριξη και προστασία των εικονικών χώρων διευθύνσεων ανά πρόγραμμα μετάφραση read mem[0xc3e8] Μηχανισμός μετάφρασης εικονικών διευθύνσεων σε φυσικές διευθύνσεις κύρια μνήμη Μετάφραση εικονικών διευθύνσεων προγραμμάτων Προστασία χώρων διευθύνσεων Προνόμια προσπέλασης μνήμης Απαιτείται συνδυασμένη υποστήριξη από ΚΜΕ, κρυφή μνήμη και λειτουργικό σύστημα Αρχιτεκτονική Υπολογιστών Εικονική 11

Η εικονική μνήμη (ξανά) Η διαχείριση της εικονικής μνήμης έχει ομοιότητες με τη διαχείριση κρυφής-κύριας μνήμης. Τα δύο επίπεδα εδώ όμως (μνήμη-δίσκοι) έχουν σημαντικές διαφορές στα χαρακτηριστικά τους! Ποιος ο ρόλος της; 1. Η χρήση εικονικής μνήμης, πέρα από όση είναι πραγματικά διαθέσιμη 2. Η αντιστοίχιση εικονικών διευθύνσεων σε φυσικές και η διαχείριση των προνομίων προσπέλασης Σημαντικότερο σήμερα! Ποιος τη διαχειρίζεται; Διαχείριση από το λειτουργικό σύστημα Υποστήριξη από το υλικό (ΚΜΕ/κρυφή μνήμη) Πώς υλοποιείται; Μετακίνηση τμημάτων μνήμης από/προς τους δίσκους Εκμετάλλευση αρχής τοπικότητας Μερικά μέρη μόνο των προγραμμάτων είναι ενεργά κάθε στιγμή Αρχιτεκτονική Υπολογιστών Εικονική 12

Βασικό σχήμα Εικονικής σελίδα Χώρος διευθύνσεων προγράμματος Α Β Κύρια μνήμη D Β πλαίσιο C D Α Σελιδοποίηση (paging) paging): Το μέγεθος των σελίδων καθορίζεται από τους μηχανισμούς του υλικού. Συνήθη μεγέθη 4ΚΒ έως 16ΚΒ εικονικές διευθύνσεις Χώρος διευθύνσεων προγράμματος Σελίδες (pages)( Φυσική μνήμη Πλαίσια (page( frames) Ίδιο μέγεθος με σελίδες φυσικές διευθύνσεις C δίσκος Αρχιτεκτονική Υπολογιστών Εικονική 13

Σελίδες και εικονικές διευθύνσεις Ο επεξεργαστής παράγει εικονική διεύθυνση Ν-1 αριθμός σελίδας Μ (Μ-1) μετατόπιση (offset) (μέσα στη σελίδα) 0 μετάφραση ως έχει Η μετάφραση γίνεται στον επεξεργαστή, άρα εκεί (δηλ. στο υλικό) καθορίζεται το μέγεθος της σελίδας Κ-1 αριθμός φυσικής σελίδας (Μ-1) Στη μνήμη στέλνεται φυσική διεύθυνση μετατόπιση (offset) Ο επεξεργαστής μπορεί να παράγει έως και 2 Ν εικονικές διευθύνσεις Η φυσική μνήμη μπορεί να έχει έως 2 Κ διευθύνσεις Το μέγεθος σελίδας είναι 2 Μ bytes Μ 0 Αρχιτεκτονική Υπολογιστών Εικονική 14

Σελίδες και Τμήματα Σελίδες (pages)( Σταθερό μέγεθος (4KB-16KB) Μία λέξη εικονικής διεύθυνσης (page+offset) Ευκολία τοποθέτησης και αντικατάστασης σελίδων στην κύρια μνήμη Βέλτιστο μέγεθος για μεταφορά από-προς δίσκο Ενδεχομένως μέρος σελίδας μένει αχρησιμοποίητο Τμήματα (segments)( Μεταβλητό μέγεθος (από 1 byte(!) έως 2 32 bytes) Δύο λέξεις ανά διεύθυνση (segment, offset) Αναγκαίος ο έλεγχος ορίων ταιριάζει καλύτερα στα χαρακτηριστικά των εφαρμογών Σε ορισμένους επεξεργαστές χρησιμοποιείται ως πρώτο επίπεδο μετάφρασης (πριν τη μετάφραση των σελίδων) Αρχιτεκτονική Υπολογιστών Εικονική 15

Σελιδοποίηση κατ απαίτηση Η μεγάλη επιβάρυνση για τη μετακίνηση των σελίδων από και προς τον δίσκο είναι καθοριστική για την απόδοση ενός συστήματος Οι σελίδες των προγραμμάτων (κώδικας-δεδομένα) βρίσκονται αρχικά μόνο στον δίσκο Το ΛΣ τις σημειώνει ως απούσες από τη μνήμη Όταν προσπελαστεί μια απούσα σελίδα, δημιουργείται ένα σφάλμα σελιδοποίησης (page fault)......και το ΛΣ τη φορτώνει σε ένα πλαίσιο στη μνήμη Ενδεχομένως εκτοπίζοντας πίσω στον δίσκο μια άλλη σελίδα από τη μνήμη Η τελευταία σημειώνεται ως απούσα Page faults: μεγάλο κόστος σε κύκλους αναμονής 1-10Mκύκλοι Αρχιτεκτονική Υπολογιστών Εικονική 16

Κρίσιμα σημεία στη σχεδίαση εικονικής μνήμης Ακόμα και μικρή μείωση στην εμφάνιση page faults μπορεί να έχει σημαντικό όφελος για την απόδοση του συστήματος Οι σελίδες πρέπει να έχουν ικανό μέγεθος Για εξισορρόπηση του κόστους προσπέλασης του δίσκου Η μείωση των page faults είναι επιβεβλημένη Οι σελίδες τοποθετούνται οπουδήποτε μέσα στη μνήμη Σχήμα ανάλογο των fully-associative κρυφών μνημών Η διαχείριση της εικονικής μνήμης μπορεί να γίνεται από λογισμικό (ΛΣ) Μικρή επιβάρυνση συγκρινόμενη με χρόνο μετακίνησης σελίδων στους δίσκους Δυνατότητα χρήσης πολυπλοκότερων αλγορίθμων για τοποθέτηση-αντικατάσταση σελίδων στη μνήμη Δεν είναι δυνατή η ενημέρωση στον δίσκο με κάθε εγγραφή νέων δεδομένων στη σελίδα Αρχιτεκτονική Υπολογιστών Εικονική 17

Μετάφραση εικονικών διευθύνσεων εικονική διεύθυνση 0x000013F0 0 (1) 0x2000 1 (1) 0x6000 2 (0)?? φυσική διεύθυνση + 0x63F0 Κύρια μνήμη D Β Α 0x3000 0x4000 0x5000 0x6000 Presence bit: βρίσκεται η σελίδα στην κύρια μνήμη; 3 (1) 0x3000 πίνακας σελίδων (page table) C δίσκος Αρχιτεκτονική Υπολογιστών Εικονική 18

Πίνακας σελίδων Τι συμβαίνει στην περίπτωση πολλαπλών προγραμμάτων; Πού βρίσκεται; Στην κύρια μνήμη! Πόσες θέσεις διαθέτει; Θεωρητικά: ίσες με τον μέγιστο αριθμό σελίδων Για 2 20 σελίδες με 4 bytes ανά γραμμή, απαιτούνται 4ΜΒ Πρακτικά: πίνακες πολλαπλών επιπέδων Πιθανόν: σελιδοποίηση πινάκων (!) Αρκεί να υπάρχει πάντα στη μνήμη ένα μέρος του πίνακα Ποια πρόσθετη πληροφορία χρειάζεται; Βρίσκεται η σελίδα στη μνήμη; Έχει αλλάξει; Αν όχι, σε ποιο σημείο του δίσκου είναι; Συχνά η πληροφορία αυτή φυλάσσεται μέσα στον πίνακα σελίδων Ποια σελίδα βρίσκεται σε κάθε πλαίσιο μνήμης; Πόσο πρόσφατα χρησιμοποιήθηκε; Δομές του ΛΣ για αλγόριθμο αντικατάστασης σελίδων Αρχιτεκτονική Υπολογιστών Εικονική 19

Πίνακες σελίδων και πολλαπλά προγράμματα Κάθε διεργασία έχει τους δικούς του πίνακες σελίδων! Κατά την εναλλαγή διεργασιών αλλάζει και ο καταχωρητήςδείκτης στους πίνακες (0)?? (1) 0x3000 πίνακας σελίδων (διεργασία 1) (1) 0x6000 (1) 0x4000 (0)?? πίνακας σελίδων (διεργασία 2) Κύρια μνήμη 1Β 2Β 2Α 2C 1Α δίσκος Αρχιτεκτονική Υπολογιστών Εικονική 20

Translation-Lookaside Buffer Το πρόβλημα με τους πίνακες σελίδων Βρίσκονται στην κύρια μνήμη Για κάθε προσπέλαση μνήμης απαιτείται μια δεύτερη! Για τον πίνακα σελίδων Μη αποδεκτή χρονική επιβάρυνση! Translation-Lookaside Buffer (TLB) Μικρή κρυφή μνήμη για πρόσφατες μεταφράσεις εικονικών διευθύνσεων Μέσα στον επεξεργαστή 16-512 θέσεις, 1-2 γραμμές του πίνακα σελίδων ανά θέση Προσπέλαση < 1 κύκλο ρολογιού Παρατηρούμενο Miss rate: 0.01% - 1% Αρχιτεκτονική Υπολογιστών Εικονική 21

Προσπέλαση μνήμης: η συνολική εικόνα TLB φυσική διεύθυνση δεδομένα, cache hit Κρυφή μνήμη Στο σχήμα η κρυφή μνήμη δέχεται φυσικές διευθύνσεις. Υπάρχουν αρχιτεκτονικές με εικονική κρυφή μνήμη ή συνδυασμό εικονικής-φυσικής κρυφής μνήμης εικονική διεύθυνση ΚΜΕ μετάφραση, TLB miss πίνακας σελίδων (στην κύρια μνήμη) σελίδα, page fault δίσκος δεδομένα, cache miss Κύρια μνήμη Αρχιτεκτονική Υπολογιστών Εικονική 22

Εικονική και Προστασία Προσπέλασης Προστασία προσπέλασης σελίδων Με διαφορετικούς πίνακες σελίδων ανά διεργασία είναι αδύνατη η προσπέλαση ξένων σελίδων Δικαιώματα προσπέλασης ανά σελίδα User mode και Supervisor Mode Σε user mode δεν είναι δυνατή η προσπέλαση του TLB, του πίνακα σελίδων και των αντίστοιχων καταχωρητών συστήματος Υπάρχουν αρχιτεκτονικές με περισσότερα από 2 επίπεδα προνομίων Ελεγχόμενη προσπέλαση συναρτήσεων ΛΣ Call gates: ελεγχόμενη εκτέλεση συναρτήσεων ΛΣ από χρήστη, στο επίπεδο όμως των προνομίων του χρήστη δεν είναι δυνατή η προσπέλαση ξένων δεδομένων! Αρχιτεκτονική Υπολογιστών Εικονική 23