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

Σχετικά έγγραφα
Λειτουργικά Συστήματα (ΗΥ222)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κατακερματισμός (Hashing)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

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

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

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

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

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

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

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Προγραμματισμός Ι (HY120)

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

Προγραμματισμός συστημάτων UNIX/POSIX. Θέμα επιλεγμένο από τους φοιτητές: Προγραμματιστικές τεχνικές που στοχεύουν σε επιδόσεις

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

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

ΤΜΗΜΑ ΜΗΥΤΔ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (ΗΥ222) ΔΙΔΑΣΚΩΝ: ΧΡΗΣΤΟΣ Δ. ΑΝΤΩΝΟΠΟΥΛΟΣ Τελική Εξέταση Σεπτεμβρίου 2009, Χρόνος: 2:30

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

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

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

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

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Λιβανός Γιώργος Εξάμηνο 2017Β

Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

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

Δυναμικός Κατακερματισμός

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

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

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

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

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

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

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

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

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

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

Standard Template Library (STL) C++ library

Transcript:

Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 7: Εικονική Μνήμη Σελιδοποίηση & Πίνακες Σελίδων

Ιδεατή Μνήμη Βασισμένη σε Σελίδες (Σελιδοποίηση) Σπάσε τη μνήμη σε κομματάκια σταθερού μεγέθους (σελίδες) Δίλλημα: + Εξαφανίζεται ο εξωτερικός κατακερματισμός + Δεν είναι ανάγκη να έχουμε συνεχή περιοχή στη μνήμη για το τμήμα + Απλούστερη δέσμευση/αποδέσμευση/μεταφο ρά μνήμης στο δίσκο - Εσωτερικός κατακερματισμός Πόσος κατά μέσο όρο ανά τμήμα; - Ένα ακόμα επίπεδο ανακατεύθυνσης Σελίδες: Συνήθως 4-8Κ Εσωτερικός Κατακερματισμός Word 2 Excel

Μηχανισμοί Σελιδοποίησης Η μνήμη χωρίζεται σε κομμάτια ίδιου μεγέθους (σελίδες) Κάθε διεργασία έχει πίνακα σελίδων (αποθηκεύεται και αυτός στη μνήμη της) που αντιστοιχεί αριθμούς ιδεατών σελίδων σε αριθμούς φυσικών σελίδων Ο πίνακας περιέχει επίσης και bits δικαιωμάτων (Prot) R / W / X / Valid Διαδικασία μετάφρασης: Κάποια bits στη διεύθυνση υποδεικνύουν τον αριθμό ιδεατής σελίδας (Virtual Page No) Αυτός χρησιμοποιείται σαν δείκτης στον πίνακα, για να βρεθεί ο αριθμός πραγματικής σελίδας (Physical Page No) Τα υπόλοιπα bits της διεύθυνσης δίνουν τη μετατόπιση μέσα στη σελίδα Ιδεατή Διεύθυνση 3 128 (12bits) VPN ((PPN<<12) Μετατόπιση) Μετατόπιση Πίνακας Σελίδων? 0 Prot PPN 1 PPN 2 3 r 1 invalid Φυσική Διεύθυνση 0x1080 Φυσική Μνήμη 3

Παράδειγμα 4 Intel IA32 (32 bits address space) 12 bits για μετατόπιση Πόσο μεγάλες σελίδες; 20 bits για VPN (αριθμό ιδεατής σελίδας) Πόσες ιδεατές σελίδες; Αριθμός Σελίδας Μετατόπιση 20 bits 12 bits

Σελιδοποίηση: Πανάκεια; 5 Πλεονεκτήματα σελίδων Εύκολη δέσμευση Λίστα από ελεύθερες σελίδες Φέρε την πρώτη Εύκολη μεταφορά στο δίσκο Όλες οι σελίδες ίδιου μεγέθους Συχνά όσο ένα block στο δίσκο Μειονεκτήματα σελίδων Περισσότερος χώρος για διαχείριση Πόσα δεδομένα για τη διαχείριση ενός τμήματος από 0x0000 έως 0xffff; Πόσα δεδομένα για τη διαχείριση της ίδιας περιοχής με σελιδοποίηση και σελίδες των 4K; Άλλα μειονεκτήματα ( για όταν μεγαλώσετε) Απεικόνιση στις μνήμες cache / συγκρούσεις

Και πόσο μεγάλες σελίδες; Επιβάρυνση χώρου Τοπικότητα Εσωτερικός Κατακερματισμός Κόστος μεταφοράς από/προς δίσκο Μέγεθος Σελίδας 6 Εσωτερικός κατακερματισμός σε μεγάλα μεγέθη σελίδας: Δεν είναι συνήθως πρόβλημα Εκτός από τη μνήμη των πινάκων σελίδων

Σελιδοποίηση Τμηματοποίηση: Ας τα βάψουμε μαύρα 7 Προβλήματα προβλήματα Σελιδοποίηση Απλός πίνακας αντιστοίχισης Μεγάλη επιβάρυνση σε χώρο Τμηματοποίηση Απαίτηση για συνεχείς περιοχές φυσικής μνήμης / δίσκου για κάθε τμήμα Προβληματική η σελιδοποίηση: Ή όλο το τμήμα στη μνήμη ή όλο εκτός Tμήμα 4MB Φυσ. Μνήμη

Σελιδοποίηση + Τμηματοποίηση;;; Μνήμη προγράμματος σελιδοποιημένη (χρήση πίνακα σελίδων) Μνήμη πίνακα σελίδων τμηματοποιημένη (χρήση πίνακα τμημάτων) Και μια αλλαγή ορολογίας: Τμήμα: Συνεχής περιοχή ιδεατών διευθύνσεων Τμήμα περιέχει >=1 σελίδες 8 Σωρός Pro Στοίβα Κώδικας (text)

Σελιδοποίηση & Τμηματοποίηση 9 Η σελιδοποιημένη ιδεατή μνήμη επιτρέπει τμήματα από μη συνεχείς περιοχές φυσικής μνήμης Ευέλικτη διαδικασία διαχείρισης μνήμης Μέρος του τμήματος μπορεί να είναι στο δίσκο Τμηματοποίηση: Εύκολη (& φθηνή) διαχείριση της μνήμης Πίνακες σελίδων αντιστοιχούν σε «λογικά» τμήματα της μνήμης (π.χ. κώδικας, σωρός, στοίβα) Ενίοτε αυτά τα τμήματα είναι μεγάλα (άρα και οι πίνακες σελίδων) Αν γίνουν οι πίνακες σελίδων πολύ μεγάλοι; Από σελιδοποίηση σε σελιδοποίηση + τμηματοποίηση : ισοδύναμο του από 1 τμήμα σε πολλαπλά Αντί για έναν πίνακα σελίδων πολλαπλοί, ο καθένας συνοδευόμενος από βάση (του πίνακα) και όριο (του πίνακα)

Ένα Παράδειγμα από το Παρελθόν: IBM System 370 10 Χώρος ιδεατών διευθύνσεων 24 bits (αρχισαμεεεεε) Οι απεικονίσεις: # Τμήμ. # Σελίδας Μετατόπιση στη σελίδα (4 bits) (8 bits) (12 bits) Πίνακας τμημάτων : Αριθμό τμήματος σε φυσική διεύθυνση της βάσης και όριο του πίνακα σελίδων για το αντίστοιχο τμήμα Πίνακας σελίδων : Αριθμό ιδεατής σελίδας σε αριθμό φυσικής σελίδας (12 bits) Ενώνουμε (κολλάμε) τον αριθμό φυσικής σελίδας με τη μετατόπιση και έχουμε την τελική φυσική διεύθυνση

0 1 2 Μετάφραση Διευθύνσεων στο IBM System 370 Βάση Όριο prot 0x2000 0x14 R 0x0000 0x00 0x1000 0x0d RW Πίνακας Τμημάτων Ανάγνωση στη VA 0x2070 0x0 02 070 SEG: 0 page 2 * 2 bytes +0x2000 = 0x2004 (0x3 << 12 0x070) = 0x3070 Πίνακας Σελίδων (2-bytes / πεδίο) 0x2020 0x2000 0x1020 0x1000 11 0x01f 0x011 0x003 0x02a 0x013 0x00c 0x007 0x004 0x00b 0x006 0x202016 read? 0x104c84 read? 0x011424 read? 0x210014 write?

Λίγες Λεπτομέρειες για Σελιδοποίηση + Τμηματοποίηση Αν ένα τμήμα δε χρησιμοποιείται δε χρειάζεται πίνακας σελίδων για το τμήμα αυτό Κοινή μνήμη μεταξύ διεργασιών σε 2 επίπεδα Κοινές σελίδες ή Κοινό τμήμα (κοινός πίνακας σελίδων) Η σελιδοποίηση Εξαλείφει τον εξωτερικό κατακερματισμό Επιτρέπει στα τμήματα να μεγαλώνουν Χωρίς να χρειάζεται να μεταφερθούν στη μνήμη Για «λογικά» μεγέθη σελίδας, ασήμαντος εσωτερικός κατακερματισμός (.5 σελίδα / τμήμα) Πίνακες σελίδων αόρατοι από το χρήστη Γιατί; Ενίοτε μόνο ανάγνωση Αν οι πίνακες σελίδων / τμημάτων είναι στη μνήμη, σημαντική επιβάρυνση χρόνου 1 ή 2 «διαχειριστικές» αναφορές στη μνήμη για κάθε πραγματική αναφορά αλλά και σημαντική επιβάρυνση χώρου για μεγάλα τμήματα 12

Και ο Νικητής είναι 13 Απλότητα: Τα περισσότερα συστήματα χρησιμοποιούν σελιδοποίηση Ακόμα και κάποια παλιά που ξεκίνησαν αποκλειστικά με τμηματοποίηση Αλλά πολλά συστήματα επιστρέφουν σε «υπερ»- σελίδες (πολύ μεγάλες σελίδες) για την απεικόνιση μεγάλων περιοχών μνήμης Π.χ. hugetlb στο Linux (σελίδες 16 ΜΒ) Γιατί; Πίνακας ακεραίων (32 bits), n x n, μεγέθους 8ΜΒ στη μνήμη. Σελιδοποίηση με σελίδες 4Κ. Εγγραφή κατά στήλες Πόσες σελίδες θα «αγγίξει»;

Τι να Θυμάστε Ιδεατή μνήμη: 14 Ευελιξία + Προστασία + Ταχύτητα (αν γίνει σωστά) Βάση + όριο: Απλή απεικόνιση + προστασία + Απλό, γρήγορο - Δύσκαμπτο Τμηματοποίηση με πολλαπλά τμήματα: Γενίκευση του βάση + όριο + Πιο ευέλικτη διαμοίραση μνήμης μεταξύ διεργασιών, καλύτερη χρήση του χώρου - Συνεχής φυσική μνήμη για τα τμήματα Σελιδοποίηση: Χρησιμοποίηση «βασικές μονάδες» σταθερού μεγέθους Χρησιμοποίησε πίνακα για την απεικόνιση ιδεατών σελίδων σε φυσικές + Εξαφανίζει τον εξωτερικό κατακερματισμό, Ευέλικτες απεικονίσεις - Εσωτερικός κατακερματισμός, Αναίτια υψηλό κόστος για την απεικόνιση συνεχών περιοχών μνήμης

Ιδεατή Μνήμη: Τόσο Πολύπλοκη αλλά και τόσο Απλή Παρά τους φανταχτερούς όρους, τα πάντα είναι συναρτήσεις απεικόνισης Ακεραίων (ιδεατή διεύθυνση) σε ακεραίους (φυσική διεύθυνση) Συμβαίνει και σε άλλες περιοχές του λειτουργικού και της επιστήμης μας DNS, Filesystems, Μεταβλητές σε καταχωρητές, Το λειτουργικό δεν έχει ένα καλό τρόπο να φτιάξει μια «κομψή» συνάρτηση απεικόνισης Άρα χρησιμοποιούμε πίνακες αναζήτησης (lookup tables) Πίνακας σελίδων / τμημάτων: Πίνακας αναζήτησης Συνήθεις εναλλακτικές Διάνυσμα, hash function, πολυεπίπεδα δέντρα διανυσμάτων Επιλογές μεταξύ κόστους σε χώρο / χρόνο 1 2 3 15 30 42 351

Save our Mem Μεγάλες Περιοχες Μεγάλοι Πίνακες Σελίδων Μεγάλες περιοχές με μικρή χρησιμοποίηση μεγάλα αχρησιμοποίητα κομμάτια στον πίνακα σελίδων Πόσο μεγάλη σπατάλη; Χώρος διευθύνσεων 32 bits (4 GB), σελίδες 4ΚΠόσος χώρος για page table? (αν υποθέσουμε 32 bits ανά θέση) Πόση σπατάλη χώρου αν η χρήση του χώρου διευθύνσεων είναι 10% Και αν πάμε σε χώρο διευθύνσεων 64 bits; Oops 16 2^20 (1M) θέσεις Matlab Αχρησιμοποίητο Χώρος διευθύνσεων εύρους 2^32 Σελίδες 2^12 (4K)

Ιδέα: Ιεραρχικοί Πίνακες Σελίδων 17 Απεικόνισε μικρές περιοχές με πίνακες σελίδων και αυτούς με άλλους πίνακες σελίδων και αυτούς κ.ο.κ. Κέρδος; Χώρος: Δε φτιάχνουμε πίνακες σελίδων για αχρησιμοποίητα τμήματα του χώρου διευθύνσεων Πάντα κερδίζουμε σε χώρο; Καμιά «κακή» περίπτωση; Απώλειες; Χρόνος Matlab Αχρησιμοποίητο

Το Μεγάλο Πρόβλημα: Επίδοση 18 Για κάθε πρόσβαση από το πρόγραμμα στη μνήμη μία ή και (αρκετά) περισσότερες προσβάσεις στον/στους πίνακα/ες σελίδων (στη μνήμη) Η προφανής ιδέα; Caching!!! Τι; Μεταφράσεις ιδεατών σελίδων σε φυσικά πλαίσια Μα πώς; Το πρόγραμμα κατά κανόνα δε χρησιμοποιεί συνεχώς όλο το χώρο διευθύνσεων του κάθε χρονική περίοδο περιορίζεται σε ένα συγκεκριμένο υποσύνολο του χώρου διευθύνσεων και το υποσύνολο αυτό αλλάζει συνήθως αργά Άρα Θυμήσου τις πιο πρόσφατες μεταφράσεις ιδεατών σελίδων σε φυσικά πλαίσια

Ο TLB (Translation Look-Aside Buffer) 19 Τι είναι; Πολύ γρήγορη / πολύ μικρή μνήμη Μπορείς να ψάξεις όλες τις θέσεις της ταυτόχρονα Τι περιέχει; Μετάφραση ιδεατής σελίδας σε φυσικό πλαίσιο + πληροφορία προστασίας Σε κάθε αναφορά στη μνήμη: Κοίτα στον TLB, αν την βρεις μεγάλη ταχύτητα. Αν όχι, κοίτα στους πίνακες σελίδων, βάλε τη μετάφραση στον TLB για την επόμενη φορά Μπορεί να χρειαστεί να πετάξεις τα περιεχόμενα κάποιας θέσης αν είναι γεμάτος Ποιάς; Κατά κανόνα: 16-2K θέσεις, ευστοχία 95%

Ένα Σύστημα με TLB 20 Ιδεατή Διεύθυση 3 128 (12bits) VPN Μετατόπιση? TLB Prot VPN PPN ((PPN<<12) Μετατόπιση) PPN Ευστοχία Πίνακας Σελίδων 0x1080 Φυσική Μνήμη r 3 1 invalid Αστοχία invalid

TLB: Λεπτομέρειες Ταχύτητα: Ταχύτητα της «καρδιάς» του επεξεργαστή Πρόβλημα: Τι κάνουμε όταν αλλάζουμε χώρους διευθύνσεων; (διεργασίες) Καθάρισε τον TLB σε κάθε μεταγωγή περιβάλλοντος (π.χ. Intel x86) Μάρκαρε κάθε θέση με το αναγνωριστικό της διεργασίας στην οποία «ανήκει» αυτή η θέση (π.χ. MIPS) Γενικά, το ΛΣ πρέπει να φροντίζει το ίδιο να διατηρεί τον TLB σε «νόμιμη» κατάσταση Άλλη περίπτωση: Αν αλλάξει μια εγγραφή στον πίνακα σελίδων Φόρτωση του TLB μετά από αστοχία Από το υλικό ή από το λογισμικό (ΛΣ) Υλικό: Ψάξε στους πίνακες σελίδων (Intel x86) Λογισμικό: Στείλε μήνυμα στο ΛΣ να το φροντίσει Πλεονέκτημα: Μόνο το ΛΣ ακουμπά τους πίνακες σελίδων και άρα μπορεί να αποφασίσει για τη μορφή τους 21

Πού / Πώς είναι το ΛΣ στη Μνήμη; Word Excel Pro ΛΣ 22 Κατά κανόνα: Ο χώρος ιδεατών διευθύνσεων κάθε διεργασίας περιλαμβάνει και τη μνήμη που είναι διαθέσιμη σε επίπεδο χρήστη, και αυτή που ανήκει στο ΛΣ. Το ΛΣ βρίσκεται στην ίδια περιοχή ιδεατής μνήμης σε κάθε διεργασία Π.χ. MIPS: Τα πάνω 2 GB του ιδεατού χώρου διευθύνσεων για το ΛΣ. Π.χ. Linux, IA32; Το πάνω 1 GB του ιδεατού χώρου διευθύνσεων για το λειτουργικό Βελτίωση: Το ΛΣ τρέχει χωρίς «μετάφραση» ιδεατών/φυσικών διευθύνσεων Περιοχή ιδεατών διευθύνσεων που όταν τρέχουμε σε επίπεδο ΛΣ απεικονίζεται στη φυσική μνήμη με την αφαίρεση μιας σταθεράς (κάτι σαν το 1 τμήμα) Τι γίνεται αν μια εφαρμογή πάει να διαβάσει / γράψει μνήμη του ΛΣ; Πώς πετυχαίνουμε την προστασία;

Προσπέλαση Δεδομένων Χρήστη από το ΛΣ - Προβλήματα 23 Γιατί; Π.χ. Κλήσεις συστήματος Ι/Ο πρέπει να επιστρέψουν δεδομένα σε περιοχές μνήμης που έχει καθορίσει ο χρήστης Πώς; Μπορούμε να εμπιστευθούμε διευθύνσεις που μας δίνει ο χρήστης; O χρήστης δίνει NULL η μια προφανώς λανθασμένη διεύθυνση (π.χ. 0xffffff00) Λιγότερο προφανές: Ο χρήστης δίνει μια ιδεατή διεύθυνση που ανήκει στον πυρήνα Η περιοχή μνήμης που έδωσε ο χρήστης μπορεί να βρίσκεται τη στιγμή αυτή στο δίσκο Σφάλμα σελίδας στη μέση μιας κλήσης συστήματος Αν δοθεί ο επεξεργαστής σε άλλη διεργασία (μαύρο φίδι που μας έφαγε ) Αν η διεργασία που «βγάλαμε» είχε κάποιο lock του ΛΣ; Αν η κλήση συστήματος είχε αλλάξει κάποιες δομές του πυρήνα, αλλά δεν είχε προλάβει να τις φέρει όλες σε «νόμιμη» κατάσταση; Μπορούμε να μεταφράσουμε αυτόματα ιδεατές διευθύνσεις που μας δίνει ο χρήστης;

Σύνοψη: Απεικόνιση Ιδεατής Μνήμης 24 Τι είναι; Δώσε στον προγραμματιστή λογικές (ιδεατές) διευθύνσεις αντί των πραγματικών (φυσικών) για να παίζει Πώς γίνεται; Μετάφρασε κάθε προσπέλαση μνήμης χρησιμοποιώντας έναν πίνακα (πίνακας σελίδων, πίνακας τμημάτων). Ταχύτητα: Αποθήκευσε σε γρήγορη μνήμη συχνά χρησιμοποιούμενες μεταφράσεις Τι πετύχαμε; Κάθε διεργασία έχει ένα δικό της χώρο διευθύνσεων Οι διεργασίες τρέχουν με τον ίδιο τρόπο, ανεξάρτητα από το που έχουν τοποθετηθεί στη φυσική μνήμη και πόσο μεγάλη είναι η φυσική μνήμη Προστασία: Διασφαλίζουμε ότι κάθε διεργασία «ακουμπά» μόνο τη δική της μνήμη. Στο επόμενο μάθημα Οι σελίδες-γυρολόγοι, ή πώς να κάνετε τη μνήμη σας να συμπεριφέρεται σαν να είναι ακόμα μεγαλύτερη