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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Virtual Memory. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

Transcript:

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ρχιτεκτονική Υπολογιστών 2016-17 Εικονική Μνήμη (και ο ρόλος της στην ιεραρχία μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Δευτερεύουσα μνήμη : Το τελευταίο επίπεδο στην ιεραρχία εντός του υπολογιστικού οθόνη Ιεραρχία η νέα τάση: [2011] και το σύστημα γραφικών μέσα στον επεξεργαστή! σύστημα γραφικών διασυνδετικός δίαυλος PIe (x16) έως 8GB/s USB έως 5Gbit/s PU core L1 north bridge south bridge έως 500ΜB/s PU core L1 > 90GB/s κρυφή μνήμη (3 ου επιπέδου, L3) M-bus (mem bus) έως 21 GB/s (dual-channel) SATA 600ΜB/s RAM οι ρυθμοί μεταφοράς που δίνονται είναι οι θεωρητικά μέγιστοι! ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 2 L2... L2 δίσκοι δευτερεύουσα μνήμη Επεκτείνοντας την Ιεραρχία Εικονική μνήμη (virtual memory) Επέκταση ιεραρχίας εκτός του : δικτυακές θέσεις αποθήκευσης Εννοιολογικά: Κάθε υψηλότερο επίπεδο δρα ως κρυφή μνήμη για το αμέσως χαμηλότερο Η κύρια μνήμη λειτουργεί ως κρυφή μνήμη των μαγνητικών δίσκων Τα περιεχόμενα στην κύρια μνήμη είναι υποσύνολο εκείνων στους δίσκους του 0,5-5ns $4.000-$10.000/GB 50-70ns $100-$200/GB 5.000.000-20.000.000 ns $0,5-$2/GB PU Κρυφή μνήμη (SRAM) (RAM) Μαγνητικοί δίσκοι Το πρώτο σύστημα εικονικής μνήμης παρουσιάστηκε το 1962 (Atlas computer) Για ποιον λόγο εμφανίστηκε; Στους πρώτους υπολογιστές το μέγεθος της κύριας μνήμης ήταν περιορισμένο κόμα και στην περίπτωση του μονοπρογραμματισμού η κύρια μνήμη ήταν ανεπαρκής Εμφάνιση ΛΣ με υποστήριξη πολυπρογραμματισμού: αδυναμία ταυτόχρονης διατήρησης πολλών προγραμμάτων στην κύρια μνήμη Η λύση: εικονική μνήμη Μέρος των δεδομένων βρίσκεται στους δίσκους του Μεταφορά στην κύρια μνήμη όταν χρειαστεί Πιθανότατα αντικαθιστώντας άλλα τμήματα δεδομένων Τα τελευταία μεταφέρονται πίσω στους δίσκους ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 3 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 4

Πριν την εικονική μνήμη: overlays Πριν την εικονική μνήμη: overlays main( ) { main( ) { Η τεχνική των overlays απαιτούσε από τον προγραμματιστή να χειρίζεται τις λεπτομέρειες (π.χ διευθύνσεις!) φόρτωσης και κλήσης των υποπρογραμμάτων! swap-in() call 1 swap-in(b) all B2 Καταλληλότερο για στατικά δεδομένα υποπρογράμματα Η τεχνική των overlays απαιτούσε από τον προγραμματιστή να χειρίζεται τις λεπτομέρειες (π.χ διευθύνσεις!) φόρτωσης και κλήσης των υποπρογραμμάτων! swap-in() call 1 swap-in(b) all B2 1( ) { } Καταλληλότερο για στατικά δεδομένα υποπρογράμματα ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 5 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 6 Πριν την εικονική μνήμη: overlays Χώρος διευθύνσεων προγράμματος Η τεχνική των overlays απαιτούσε από τον προγραμματιστή να χειρίζεται τις λεπτομέρειες (π.χ διευθύνσεις!) φόρτωσης και κλήσης των υποπρογραμμάτων! main( ) { swap-in() call 1 swap-in(b) all B2 1( B2( ) { } Καταλληλότερο για στατικά δεδομένα υποπρογράμματα Ποιες οι διευθύνσεις που δημιουργούσε ο μεταγλωττιστής; Τι συνέβαινε αν το πρόγραμμα δεν φορτωνόταν πάντοτε στον ίδιο χώρο μνήμης; Address Space Εκτελούμενο πρόγραμμα στη μνήμη: Διευθύνσεις κώδικα Εντολές διακλάδωσης Διευθύνσεις δεδομένων Εντολές load-store Πριν την εικονική μνήμη: Φυσικές διευθύνσεις Άμεση αντιστοιχία με διευθύνσεις κύριας μνήμης... call 0x12F0. 0x12F0: load R5, 0x8008.... 0x8008: 0x45, 0x34, 0xF3 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 7 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 8

Πολυπρογραμματισμός πριν την εικονική μνήμη Μεταβαίνοντας σε εικονικές διευθύνσεις load R5, (0x8008) read mem[0x8008] κύρια μνήμη Το προηγούμενο σχήμα Εισήγαγε την αποσύνδεση των λογικών διευθύνσεων των προγραμμάτων από τις φυσικές διευθύνσεις κύριας μνήμης Χρήση καταχωρητών βάσης (χωρίς άλλη υποστήριξη) σε χαμηλού κόστους επεξεργαστές (π.χ. Intel 8086). Διευκόλυνση τοποθέτησης προγραμμάτων οπουδήποτε στη μνήμη. load R5, (0x8008) S + 0x1FF0 read mem[0x9ff8] καταχωρητής βάσης τμήματος δεδομένων (data segment) κύρια μνήμη Καταχωρητές βάσης για κώδικα και δεδομένα λλαγή τιμής καταχωρητών βάσης ανά πρόγραμμα Με απλή αντιστοιχία: φυσική διεύθυνση = λογική διεύθυνση + καταχωρητής βάσης παιτείται υποστήριξη από το υλικό () Το πρόγραμμα μπορεί να φορτωθεί σε οποιαδήποτε θέση μνήμης (relocation) Δεν περιέχει αναφορές σε φυσικές διευθύνσεις Εισάγεται η έννοια των ξεχωριστών χώρων διευθύνσεων (κώδικα, δεδομένων...) ανά πρόγραμμα χωρίς περαιτέρω υποστήριξη όμως! ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 9 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 10 Εικονικές Διευθύνσεις Η εικονική μνήμη (ξανά) Ο κύριος ρόλος της εικονικής μνήμης στα σημερινά υπολογιστικά συστήματα, με την άφθονη κύρια μνήμη, είναι η υποστήριξη και προστασία των εικονικών χώρων διευθύνσεων ανά πρόγραμμα load R5, 0x8008 μετάφραση read mem[0x3e8] κύρια μνήμη Μηχανισμός μετάφρασης εικονικών διευθύνσεων σε φυσικές διευθύνσεις Μετάφραση εικονικών διευθύνσεων προγραμμάτων Προστασία χώρων διευθύνσεων Προνόμια προσπέλασης μνήμης παιτείται συνδυασμένη υποστήριξη από, κρυφή μνήμη και λειτουργικό σύστημα Η διαχείριση της εικονικής μνήμης έχει ομοιότητες με τη διαχείριση κρυφής-κύριας μνήμης. Τα δύο επίπεδα εδώ όμως (μνήμη-δίσκοι) έχουν σημαντικές διαφορές στα χαρακτηριστικά τους! Ποιος ο ρόλος της; 1. Η χρήση εικονικής μνήμης, πέρα από όση είναι πραγματικά διαθέσιμη 2. Η αντιστοίχιση εικονικών διευθύνσεων σε φυσικές και η διαχείριση των προνομίων προσπέλασης Σημαντικότερο σήμερα! Ποιος τη διαχειρίζεται; Διαχείριση από το λειτουργικό σύστημα Υποστήριξη από το υλικό (/κρυφή μνήμη) Πώς υλοποιείται; Μετακίνηση τμημάτων μνήμης από/προς τους δίσκους Εκμετάλλευση αρχής τοπικότητας Μερικά μέρη μόνο των προγραμμάτων είναι ενεργά κάθε στιγμή ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 11 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 12

ασικό σχήμα Εικονικής Σελίδες και εικονικές διευθύνσεις Σελιδοποίηση (paging) paging): Το μέγεθος των σελίδων καθορίζεται από τους μηχανισμούς του υλικού. Συνήθη μεγέθη 4Κ έως 16Κ σελίδα Χώρος διευθύνσεων προγράμματος Χώρος διευθύνσεων προγράμματος Σελίδες (pages)( Φυσική μνήμη Πλαίσια (page( frames) Ίδιο μέγεθος με σελίδες εικονικές διευθύνσεις φυσικές διευθύνσεις πλαίσιο Η μετάφραση γίνεται στον επεξεργαστή, άρα εκεί (δηλ. στο υλικό) καθορίζεται το μέγεθος της σελίδας Ο επεξεργαστής παράγει εικονική διεύθυνση Ν-1 Κ-1 αριθμός σελίδας μετάφραση αριθμός φυσικής σελίδας Μ (Μ-1) 0 μετατόπιση (offset) (μέσα στη σελίδα) Μ (Μ-1) Στη μνήμη στέλνεται φυσική διεύθυνση ως έχει μετατόπιση (offset) Ο επεξεργαστής μπορεί να παράγει έως και 2 Ν εικονικές διευθύνσεις Η φυσική μνήμη μπορεί να έχει έως 2 Κ διευθύνσεις Το μέγεθος σελίδας είναι 2 Μ bytes 0 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 13 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 14 Σελίδες και Τμήματα Σελιδοποίηση κατ απαίτηση Σελίδες (pages)( Σταθερό μέγεθος (4KB-16KB) Μία λέξη εικονικής διεύθυνσης (page+offset) Ευκολία τοποθέτησης και αντικατάστασης σελίδων στην κύρια μνήμη έλτιστο μέγεθος για μεταφορά από-προς δίσκο Ενδεχομένως μέρος σελίδας μένει αχρησιμοποίητο Τμήματα (segments)( Μεταβλητό μέγεθος (από 1 byte(!) έως 2 32 bytes) Δύο λέξεις ανά διεύθυνση (segment, offset) ναγκαίος ο έλεγχος ορίων ταιριάζει καλύτερα στα χαρακτηριστικά των εφαρμογών Σε ορισμένους επεξεργαστές χρησιμοποιείται ως πρώτο επίπεδο μετάφρασης (πριν τη μετάφραση των σελίδων) Η μεγάλη επιβάρυνση για τη μετακίνηση των σελίδων από και προς τον δίσκο είναι καθοριστική για την απόδοση ενός Οι σελίδες των προγραμμάτων (κώδικας-δεδομένα) βρίσκονται αρχικά μόνο στον δίσκο Το ΛΣ τις σημειώνει ως απούσες από τη μνήμη Όταν προσπελαστεί μια απούσα σελίδα, δημιουργείται ένα σφάλμα σελιδοποίησης (page fault)......και το ΛΣ τη φορτώνει σε ένα πλαίσιο στη μνήμη Ενδεχομένως εκτοπίζοντας πίσω στον δίσκο μια άλλη σελίδα από τη μνήμη Η τελευταία σημειώνεται ως απούσα Page faults: μεγάλο κόστος σε κύκλους αναμονής 1-10Mκύκλοι ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 15 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 16

Κρίσιμα σημεία στη σχεδίαση εικονικής μνήμης Μετάφραση εικονικών διευθύνσεων κόμα και μικρή μείωση στην εμφάνιση page faults μπορεί να έχει σημαντικό όφελος για την απόδοση του Οι σελίδες πρέπει να έχουν ικανό μέγεθος Για εξισορρόπηση του κόστους προσπέλασης του δίσκου Η μείωση των page faults είναι επιβεβλημένη Οι σελίδες τοποθετούνται οπουδήποτε μέσα στη μνήμη Σχήμα ανάλογο των fully-associative κρυφών μνημών Η διαχείριση της εικονικής μνήμης γίνεται από λογισμικό (ΛΣ) Μικρή επιβάρυνση συγκρινόμενη με χρόνο μετακίνησης σελίδων στους δίσκους Δυνατότητα χρήσης πολυπλοκότερων αλγορίθμων για τοποθέτηση-αντικατάσταση σελίδων στη μνήμη Δεν είναι δυνατή η ενημέρωση στον δίσκο με κάθε εγγραφή νέων δεδομένων στη σελίδα Presence bit: βρίσκεται η σελίδα στην κύρια μνήμη; 0 1 2 3 εικονική διεύθυνση 0x000013F0 (1) 0x2000 (1) 0x6000 (0)?? (1) 0x3000 (page table) φυσική διεύθυνση 0x63F0 + 0x3000 0x4000 0x5000 0x6000 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 17 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 18 Πίνακας σελίδων Πίνακες σελίδων και πολλαπλά προγράμματα Τι συμβαίνει στην περίπτωση πολλαπλών προγραμμάτων; Πού βρίσκεται; Στην κύρια μνήμη! Πόσες θέσεις διαθέτει; Θεωρητικά: ίσες με τον μέγιστο αριθμό σελίδων Για 2 20 σελίδες με 4 bytes ανά γραμμή, απαιτούνται 4Μ Πρακτικά: πίνακες πολλαπλών επιπέδων Πιθανόν: σελιδοποίηση πινάκων (!) ρκεί να υπάρχει πάντα στη μνήμη ένα μέρος του πίνακα Ποια πρόσθετη πληροφορία χρειάζεται; ρίσκεται η σελίδα στη μνήμη; Έχει αλλάξει; ν όχι, σε ποιο σημείο του δίσκου είναι; Συχνά η πληροφορία αυτή φυλάσσεται μέσα στον πίνακα σελίδων Ποια σελίδα βρίσκεται σε κάθε πλαίσιο μνήμης; Πόσο πρόσφατα χρησιμοποιήθηκε; Δομές του ΛΣ για αλγόριθμο αντικατάστασης σελίδων Κάθε διεργασία έχει τους δικούς του πίνακες σελίδων! Κατά την εναλλαγή διεργασιών αλλάζει και ο καταχωρητήςδείκτης στους πίνακες (0)?? (1) 0x3000 (διεργασία 1) (1) 0x6000 (1) 0x4000 (0)?? (διεργασία 2) 1 2 2 2 1 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 19 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 20

Translation-Lookaside Buffer Το πρόβλημα με τους πίνακες σελίδων ρίσκονται στην κύρια μνήμη Για κάθε προσπέλαση μνήμης απαιτείται μια δεύτερη! Για τον πίνακα σελίδων Μη αποδεκτή χρονική επιβάρυνση! Translation-Lookaside Buffer (TLB) Μικρή κρυφή μνήμη για πρόσφατες μεταφράσεις εικονικών διευθύνσεων Μέσα στον επεξεργαστή 16-512 θέσεις, 1-2 γραμμές του πίνακα σελίδων ανά θέση Προσπέλαση < 1 κύκλο ρολογιού Παρατηρούμενο Miss rate: 0.01% - 1% Στο σχήμα η κρυφή μνήμη δέχεται φυσικές διευθύνσεις. Υπάρχουν αρχιτεκτονικές με εικονική κρυφή μνήμη ή συνδυασμό εικονικής-φυσικής κρυφής μνήμης Προσπέλαση μνήμης: η συνολική εικόνα TLB εικονική διεύθυνση μετάφραση, TLB miss (στην κύρια μνήμη) φυσική διεύθυνση δεδομένα, cache hit σελίδα, page fault Κρυφή μνήμη δεδομένα, cache miss ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 21 ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 22 Εικονική Μνήμη και Προστασία Προσπέλασης Προστασία προσπέλασης σελίδων Με διαφορετικούς πίνακες σελίδων ανά διεργασία είναι αδύνατη η προσπέλαση ξένων σελίδων Δικαιώματα προσπέλασης ανά σελίδα User mode και Supervisor Mode Σε user mode δεν είναι δυνατή η προσπέλαση του TLB, του πίνακα σελίδων και των αντίστοιχων καταχωρητών Υπάρχουν αρχιτεκτονικές με περισσότερα από 2 επίπεδα προνομίων Ελεγχόμενη προσπέλαση συναρτήσεων ΛΣ all gates: ελεγχόμενη εκτέλεση συναρτήσεων ΛΣ από χρήστη, στο επίπεδο όμως των προνομίων του χρήστη δεν είναι δυνατή η προσπέλαση ξένων δεδομένων! ρχιτεκτονική Υπολογιστών Εικονική Μνήμη 23