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

Σχετικά έγγραφα
Εικονική Μνήμη (1/2)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 9

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

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

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

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών II Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

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

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

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

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

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

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

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

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

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

Υλισμικό Διαχείρισης Μνήμης (Memory Management Hardware)

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

Υλισµικό διαχείρισης µνήµης (Memory management hardware)

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

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

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

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

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

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

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

ΛΟΓΙΣΜΙΚΟ (software)

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

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

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Ιεραρχία μνήμης: προχωρημένα θέματα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 3ο: Διαχείριση Μνήμης

Λειτουργικά συστήµατα. Λογισμικό Συστήματος 1

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

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

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

ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT

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

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

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

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διαχείριση Κύριας Μνήμης Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017

Διαχείριση Κύριας Μνήμης - Σύνοψη Ιεραρχία μνήμης Μεταγλώττιση φόρτωση εκτέλεση κώδικα Καθορισμός διευθύνσεων Εναλλαγή διεργασιών Συνεχόμενη ανάθεση μνήμης Στρατηγικές κατανομής, κατακερματισμός Σελιδοποίηση Μετάφραση διευθύνσεων, πίνακες σελίδων, TLBs Οργάνωση πινάκων σελίδων Κατάτμηση

Κύρια Μνήμη (1) CPU0 καταχωρητές $ CPU1 καταχωρητές $ Μονάδες Ε/Ε Κύρια Μνήμη Κάθε CPU αναφέρεται απευθείας σε καταχωρητές και μνήμη Συσκευές Ε/Ε εκτελούν Απευθείας Πρόσβαση στη Μνήμη (Direct Memory Access - DMA)

Κύρια Μνήμη (1) CPU0 καταχωρητές $ CPU1 καταχωρητές $ Μονάδες Ε/Ε DMA Κύρια Μνήμη Κάθε CPU αναφέρεται απευθείας σε καταχωρητές και μνήμη Συσκευές Ε/Ε εκτελούν Απευθείας Πρόσβαση στη Μνήμη (Direct Memory Access - DMA)

Κύρια Μνήμη (2) Τα προγράμματα βρίσκονται στην Κύρια Μνήμη όταν εκτελούνται Ένα εκτελέσιμο φορτώνεται από το δίσκο και εκτελείται μέσα σε μια διεργασία H CPU αναφέρεται απευθείας μόνο σε καταχωρητές και διευθύνσεις μνήμης Η κρυφή μνήμη μειώνει το κόστος πρόσβασης Όταν υπάρχει χωρική ή χρονική τοπικότητα Πόσα προγράμματα είναι ταυτόχρονα φορτωμένα; Πολυπρογραμματισμός Ανάγκη για προστασία μνήμης

Διαχείριση Κύριας Μνήμης - Σύνοψη Ιεραρχία μνήμης Μεταγλώττιση φόρτωση εκτέλεση κώδικα Καθορισμός διευθύνσεων Εναλλαγή διεργασιών Συνεχόμενη ανάθεση μνήμης Στρατηγικές κατανομής, κατακερματισμός Σελιδοποίηση Μετάφραση διευθύνσεων, πίνακες σελίδων, TLBs Οργάνωση πινάκων σελίδων Κατάτμηση

Μεταγλώττιση Φόρτωση - Εκτέλεση πηγαίος κώδικας μεταγλωττιστής χρόνος μεταγλώττισης (compile time) κι άλλα objects object συνδέτης δυναμικές βιβλιοθήκες εκτελέσιμο δυναμικός συνδέτης / φορτωτής χρόνος φόρτωσης (load time) τελικό πρόγραμμα στην κύρια μνήμη χρόνος εκτέλεσης (execution time)

Καθορισμός διευθύνσεων - Address Binding Address Binding: μεταβλητές και συναρτήσεις (σύμβολα) διευθύνσεις μνήμης Πότε; Ξέρουμε πού θα βρίσκεται το πρόγραμμα στη μνήμη; Στο χρόνο μεταγλώττισης: απόλυτος κώδικας Στο χρόνο φόρτωσης: μετατοπίσιμος (relocatable) κώδικας Στο χρόνο εκτέλεσης: με την υποστήριξη ειδικού υλικού για μετάφραση διευθύνσεων λογικές / εικονικές διευθύνσεις φυσικές διευθύνσεις

Απόλυτος κώδικας Πηγαίος Κώδικας int val; int func(void) { val = 5; func2(); } Μεταγλωττιστής func 64 70 76 func2 5000 Τελικός Κώδικας movl $0x5, 7010 call $5000 ret func2 int func2(void) { } val 7010 4 bytes Ακριβής, απόλυτος προσδιορισμός θέσεων μνήμης για τα σύμβολα (func, func2, val) Ο παραγόμενος κώδικας ξέρει πού βρίσκεται και πού είναι τα δεδομένα του

Μετατοπίσιμος κώδικας (1) Πηγαίος Κώδικας int val; int func(void) { val = 5; func2(); } Μεταγλωττιστής int func2(void) { } Ο παραγόμενος κώδικας δεν ξέρει πού βρίσκεται πίνακας μετατόπισης (relocation table)

Μετατοπίσιμος κώδικας (1) Πηγαίος Κώδικας int val; int func(void) { val = 5; func2(); } int func2(void) { } Μεταγλωττιστής func func2 val Μετατοπίσιμος κώδικας (πχ. οbject) movl $0x5, val call func2 ret func2 4 bytes Ο παραγόμενος κώδικας δεν ξέρει πού βρίσκεται πίνακας μετατόπισης (relocation table)

Μετατοπίσιμος κώδικας (1) Πηγαίος Κώδικας int val; int func(void) { val = 5; func2(); } int func2(void) { } Μεταγλωττιστής func func2 val Μετατοπίσιμος κώδικας (πχ. οbject) movl $0x5, val call func2 ret func2 4 bytes func+2 &val func+8 &func2 Πίνακας Μετατόπισης Ο παραγόμενος κώδικας δεν ξέρει πού βρίσκεται πίνακας μετατόπισης (relocation table)

Μετατοπίσιμος κώδικας (2) func1 func2 Μετατοπίσιμος κώδικας (πχ. οbject) movl $0x5, val call func2 ret func2 func 64 70 76 Συνδέτης / φορτωτής func2 5000 Απόλυτος κώδικας movl $0x5, val call func2 ret func2 val 4 bytes val 7010 4 bytes func+2 &val func+8 &func2 Πίνακας Μετατόπισης Ο κώδικας διορθώνεται με βάση τον πίνακα μετατόπισης Στο χρόνο μεταγλώττισης (συνδέτης) ή εκτέλεσης (φορτωτής)

Μετατοπίσιμος κώδικας (2) func1 func2 Μετατοπίσιμος κώδικας (πχ. οbject) movl $0x5, val call func2 ret func2 func 64 70 76 Συνδέτης / φορτωτής func2 5000 Απόλυτος κώδικας movl $0x5, 7010 val call func2 ret func2 val 4 bytes val 7010 4 bytes func+2 &val func+8 &func2 Πίνακας Μετατόπισης Ο κώδικας διορθώνεται με βάση τον πίνακα μετατόπισης Στο χρόνο μεταγλώττισης (συνδέτης) ή εκτέλεσης (φορτωτής)

Μετατοπίσιμος κώδικας (2) func1 func2 Μετατοπίσιμος κώδικας (πχ. οbject) movl $0x5, val call func2 ret func2 func 64 70 76 Συνδέτης / φορτωτής func2 5000 Απόλυτος κώδικας movl $0x5, 7010 val call $5000 func2 ret func2 val 4 bytes val 7010 4 bytes func+2 &val func+8 &func2 Πίνακας Μετατόπισης Ο κώδικας διορθώνεται με βάση τον πίνακα μετατόπισης Στο χρόνο μεταγλώττισης (συνδέτης) ή εκτέλεσης (φορτωτής)

Μετάφραση στο χρόνο εκτέλεσης (1) Χωριστές περιοχές μνήμης ανά διεργασία Καταχωρητής βάσης, καταχωρητής ορίου Δυνατότητα πολυπρογραμματισμού με προστασία μνήμης 4ΜΒ διεργασία 3 ελεύθερος χώρος 768K 512K 0 διεργασία 2 διεργασία 1 λειτουργικό Κύρια Μνήμη όριο = 256K βάση = 512K

Μετάφραση στο χρόνο εκτέλεσης (1) Χωριστές περιοχές μνήμης ανά διεργασία Καταχωρητής βάσης, καταχωρητής ορίου Δυνατότητα πολυπρογραμματισμού με προστασία μνήμης 4ΜΒ διεργασία 3 ελεύθερος χώρος διεργασία 2 768K 512K διεργασία 1 όριο = 256K βάση = 512K Τίθενται μέσω προνομιούχων εντολών 0 λειτουργικό Κύρια Μνήμη

Μετάφραση στο χρόνο εκτέλεσης (2) Λογικές / εικονικές διευθύνσεις: διευθύνσεις που βλέπει ο κώδικας που εκτελείται Φυσικές διευθύνσεις: διευθύνσεις που βλέπει η κύρια μνήμη πάνω στο διάδρομο Ειδικό υλικό για τη μετάφραση Μονάδα διαχείρισης μνήμης MMU Για την απλή περίπτωση «βάση όριο» όριο βάση λογική διεύθυνση ναι φυσική διεύθυνση CPU < Μνήμη +

Μετάφραση στο χρόνο εκτέλεσης (2) Λογικές / εικονικές διευθύνσεις: διευθύνσεις που βλέπει ο κώδικας που εκτελείται Φυσικές διευθύνσεις: διευθύνσεις που βλέπει η κύρια μνήμη πάνω στο διάδρομο Ειδικό υλικό για τη μετάφραση Μονάδα διαχείρισης μνήμης MMU Για την απλή περίπτωση «βάση όριο» όριο βάση λογική διεύθυνση φυσική διεύθυνση CPU < Μνήμη όχι ναι Trap! +

Μετάφραση στο χρόνο εκτέλεσης (3) καταχωρητές ορίου 8192 μετατόπισης 40960 CPU λογική (32) < ναι + φυσική 40992 Μνήμη όχι Trap! MMU

Διαχείριση Κύριας Μνήμης - Σύνοψη Ιεραρχία μνήμης Μεταγλώττιση φόρτωση εκτέλεση κώδικα Καθορισμός διευθύνσεων Εναλλαγή διεργασιών Συνεχόμενη ανάθεση μνήμης Στρατηγικές κατανομής, κατακερματισμός Σελιδοποίηση Μετάφραση διευθύνσεων, πίνακες σελίδων, TLBs Οργάνωση πινάκων σελίδων Κατάτμηση

Εναλλαγή (swapping) (1) Οι συνολικές απαιτήσεις μνήμης των διεργασιών, μπορεί να ξεπερνούν το μέγεθος της κύριας μνήμης Εναλλαγή: διεργασίες φεύγουν από τη μνήμη και πάνε στο δίσκο Το ΛΣ τις επαναφέρει όταν μπορούν να συνεχίσουν Roll out, roll in: αν έρθει διεργασία με υψηλότερη προτεραιότητα, στείλε μία χαμηλότερης προτεραιότητας στο δίσκο Ο δίσκος είναι πολύ πιο αργός από την ΚΜ Κόστος ανάλογο του μεγέθους της μνήμης της διεργασίας Όταν μια διεργασία επανέλθει, πού πηγαίνει; Δέσμευση διευθύνσεων στο χρόνο εκτέλεσης

Εναλλαγή (swapping) (2) λειτουργικό P 0 P 1 χώρος χρήστη Κύρια Μνήμη Δευτερεύουσα Μνήμη (σκληρός δίσκος)

Εναλλαγή (swapping) (2) λειτουργικό (α) P 0 P 1 χώρος χρήστη Κύρια Μνήμη Δευτερεύουσα Μνήμη (σκληρός δίσκος)

Εναλλαγή (swapping) (2) λειτουργικό (α) P 0 P 1 (β) χώρος χρήστη Κύρια Μνήμη Δευτερεύουσα Μνήμη (σκληρός δίσκος)

Διαχείριση Κύριας Μνήμης - Σύνοψη Ιεραρχία μνήμης Μεταγλώττιση φόρτωση εκτέλεση κώδικα Καθορισμός διευθύνσεων Εναλλαγή διεργασιών Συνεχόμενη ανάθεση μνήμης Στρατηγικές κατανομής, κατακερματισμός Σελιδοποίηση Μετάφραση διευθύνσεων, πίνακες σελίδων, TLBs Οργάνωση πινάκων σελίδων Κατάτμηση

Συνεχόμενη ανάθεση μνήμης (1) Υποθέσεις Το ΛΣ παραμένει μονίμως φορτωμένο σε ένα εύρος διευθύνσεων (συνήθως χαμηλές) Κάθε νέα διεργασία έχει συγκεκριμένες απαιτήσεις σε μνήμη Το ΛΣ φορτώνει τη διεργασία σε συνεχές (contiguous) τμήμα μνήμης για να εκτελεστεί Απλή μέθοδος προστασία μνήμης με βάση + όριο Διαμερίσεις για κάθε διεργασία Σταθερού ή μεταβλητού μεγέθους;

Συνεχόμενη ανάθεση μνήμης (2) Στατικές διαμερίσεις διαμέριση 1: αρχή = 256KB, μέγεθος = 256KB διαμέριση 2: αρχή = 512KB, μέγεθος = 1024ΚΒ διαμέριση 3: αρχή = 1536ΚΒ, μέγεθος = 2048ΚΒ Οι διεργασίες περιμένουν μέχρι κατάλληλη διαμέριση να γίνει διαθέσιμη

Συνεχόμενη ανάθεση μνήμης (2) Στατικές διαμερίσεις διαμέριση 1: αρχή = 256KB, μέγεθος = 256KB διαμέριση 2: αρχή = 512KB, μέγεθος = 1024ΚΒ διαμέριση 3: αρχή = 1536ΚΒ, μέγεθος = 2048ΚΒ Οι διεργασίες περιμένουν μέχρι κατάλληλη διαμέριση να γίνει διαθέσιμη Άκαμπτο σχήμα ανάθεσης μνήμης Πλέον δεν χρησιμοποιείται σχεδόν ποτέ

Συνεχόμενη ανάθεση μνήμης (3) διεργασία 3 οπή διεργασία 4 διεργασία 2 διεργασία 1 λειτουργικό Δυναμική ανάθεση μνήμης διαμερίσεις μεταβλητού μεγέθους το ΛΣ τηρεί στοιχεία για τις δεσμευμένες και ελεύθερες περιοχές της μνήμης δεσμευμένες περιοχές και οπές ανάμεσά τους

Συνεχόμενη ανάθεση μνήμης (3) διεργασία 3 οπή διεργασία 3 οπή διεργασία 4 διεργασία 2 διεργασία 1 λειτουργικό διεργασία 4 οπή διεργασία 1 λειτουργικό Δυναμική ανάθεση μνήμης διαμερίσεις μεταβλητού μεγέθους το ΛΣ τηρεί στοιχεία για τις δεσμευμένες και ελεύθερες περιοχές της μνήμης δεσμευμένες περιοχές και οπές ανάμεσά τους

Συνεχόμενη ανάθεση μνήμης (3) διεργασία 3 οπή διεργασία 3 οπή διεργασία 3 διεργασία 5 οπή διεργασία 4 διεργασία 4 διεργασία 4 διεργασία 2 οπή οπή διεργασία 1 διεργασία 1 διεργασία 1 λειτουργικό λειτουργικό λειτουργικό Δυναμική ανάθεση μνήμης διαμερίσεις μεταβλητού μεγέθους το ΛΣ τηρεί στοιχεία για τις δεσμευμένες και ελεύθερες περιοχές της μνήμης δεσμευμένες περιοχές και οπές ανάμεσά τους

Πρόβλημα δυναμικής εκχώρησης (1) διεργασία οπή διεργασία οπή διεργασία οπή λειτουργικό Κύρια Μνήμη

Πρόβλημα δυναμικής εκχώρησης (1) διεργασία οπή διεργασία νέα διεργασία οπή διεργασία οπή λειτουργικό Κύρια Μνήμη

Πρόβλημα δυναμικής εκχώρησης (1) διεργασία οπή διεργασία νέα διεργασία οπή διεργασία οπή λειτουργικό Κύρια Μνήμη

Πρόβλημα δυναμικής εκχώρησης (2) διεργασία οπή διεργασία νέα διεργασία οπή διεργασία οπή νέα διεργασία λειτουργικό πρώτο ταίριασμα (first-fit) Κύρια Μνήμη

Πρόβλημα δυναμικής εκχώρησης (1) διεργασία οπή διεργασία νέα διεργασία νέα διεργασία βέλτιστο ταίριασμα (best-fit) διεργασία οπή λειτουργικό Κύρια Μνήμη

Πρόβλημα δυναμικής εκχώρησης (1) διεργασία οπή νέα διεργασία χειρότερο ταίριασμα (worst-fit) διεργασία νέα διεργασία οπή διεργασία οπή λειτουργικό Κύρια Μνήμη

Ποια στρατηγική είναι η καλύτερη; Πρώτο ταίριασμα στο πρώτο που θα βρει, είτε από την αρχή είτε από εκεί που είχε σταματήσει γρήγορο Βέλτιστο ταίριασμα δεσμεύει τη μικρότερη οπή που είναι αρκετά μεγάλη τις ελέγχει όλες, εκτός αν η λίστα είναι ταξινομημένη Χειρότερη τοποθέτηση απομένουν οι μεγαλύτερες δυνατές οπές Οι προσομοιώσεις ευνοούν first-fit, best-fit

Κατακερματισμός - fragmentation διεργασία νέα διεργασία οπή διεργασία οπή διεργασία οπή λειτουργικό

Κατακερματισμός - fragmentation διεργασία νέα διεργασία οπή διεργασία οπή διεργασία Εξωτερικός ή εσωτερικός οπή λειτουργικό

Κατακερματισμός - fragmentation διεργασία νέα διεργασία οπή Εξωτερικός ή εσωτερικός Εξωτερικός: ο συνολικός χώρος υπάρχει, αλλά η διεργασία δεν χωράει πολλές μικρές οπές κανόνας του 50%: με first-fit, για Ν τμήματα, 0.5N χαμένη μνήμη διεργασία οπή διεργασία οπή λειτουργικό

Κατακερματισμός - fragmentation διεργασία νέα διεργασία οπή Εξωτερικός ή εσωτερικός διεργασία διεργασία λειτουργικό Εξωτερικός: ο συνολικός χώρος υπάρχει, αλλά η διεργασία δεν χωράει πολλές μικρές οπές κανόνας του 50%: με first-fit, για Ν τμήματα, 0.5N χαμένη μνήμη Εσωτερικός: η διεργασία δεσμεύει περισσότερα απ όσα χρειάζεται η ανάθεση γίνεται σε τμήματα σταθερού μεγέθους αχρησιμοποίητη μνήμη μέσα σε διαμερίσεις οπή οπή

Κατακερματισμός - fragmentation διεργασία νέα διεργασία οπή διεργασία οπή Σύμπτυξη (Compaction) Εξωτερικός ή εσωτερικός διεργασία λειτουργικό Εξωτερικός: ο συνολικός χώρος υπάρχει, αλλά η διεργασία δεν χωράει πολλές μικρές οπές κανόνας του 50%: με first-fit, για Ν τμήματα, 0.5N χαμένη μνήμη Εσωτερικός: η διεργασία δεσμεύει περισσότερα απ όσα χρειάζεται η ανάθεση γίνεται σε τμήματα σταθερού μεγέθους αχρησιμοποίητη μνήμη μέσα σε διαμερίσεις οπή

Κατακερματισμός - fragmentation διεργασία διεργασία νέα διεργασία οπή διεργασία Σύμπτυξη διεργασία διεργασία οπή (Compaction) διεργασία οπή Εξωτερικός ή εσωτερικός λειτουργικό Εξωτερικός: ο συνολικός χώρος υπάρχει, αλλά η διεργασία δεν χωράει πολλές μικρές οπές κανόνας του 50%: με first-fit, για Ν τμήματα, 0.5N χαμένη μνήμη Εσωτερικός: η διεργασία δεσμεύει περισσότερα απ όσα χρειάζεται η ανάθεση γίνεται σε τμήματα σταθερού μεγέθους αχρησιμοποίητη μνήμη μέσα σε διαμερίσεις οπή λειτουργικό

Κατακερματισμός - fragmentation διεργασία διεργασία νέα διεργασία οπή διεργασία Σύμπτυξη διεργασία διεργασία οπή διεργασία (Compaction) νέα διεργασία οπή Εξωτερικός ή εσωτερικός λειτουργικό Εξωτερικός: ο συνολικός χώρος υπάρχει, αλλά η διεργασία δεν χωράει πολλές μικρές οπές κανόνας του 50%: με first-fit, για Ν τμήματα, 0.5N χαμένη μνήμη Εσωτερικός: η διεργασία δεσμεύει περισσότερα απ όσα χρειάζεται η ανάθεση γίνεται σε τμήματα σταθερού μεγέθους αχρησιμοποίητη μνήμη μέσα σε διαμερίσεις οπή οπή λειτουργικό

Σύμπτυξη Μετακίνηση διεργασιών στη μνήμη δημιουργούνται λιγότερες, μεγαλύτερες οπές Είναι πάντα εφικτή;

Σύμπτυξη Μετακίνηση διεργασιών στη μνήμη δημιουργούνται λιγότερες, μεγαλύτερες οπές Είναι πάντα εφικτή; με καθορισμό διευθύνσεων κατά τη φόρτωση, όχι Απαιτείται υποστήριξη από το υλικό καθορισμός διευθύνσεων στο χρόνο εκτέλεσης βάση + όριο Κόστος;

Σύμπτυξη Μετακίνηση διεργασιών στη μνήμη δημιουργούνται λιγότερες, μεγαλύτερες οπές Είναι πάντα εφικτή; με καθορισμό διευθύνσεων κατά τη φόρτωση, όχι Απαιτείται υποστήριξη από το υλικό καθορισμός διευθύνσεων στο χρόνο εκτέλεσης βάση + όριο Κόστος; αντιγραφή περιοχών μνήμης νέες τιμές σε καταχωρητές βάσης - ορίου

Διαχείριση Κύριας Μνήμης - Σύνοψη Ιεραρχία μνήμης Μεταγλώττιση φόρτωση εκτέλεση κώδικα Καθορισμός διευθύνσεων Εναλλαγή διεργασιών Συνεχόμενη ανάθεση μνήμης Στρατηγικές κατανομής, κατακερματισμός Σελιδοποίηση Μετάφραση διευθύνσεων, πίνακες σελίδων, TLBs Οργάνωση πινάκων σελίδων Κατάτμηση

Σελιδοποίηση (1) Ο πιο συχνός τρόπος μετάφρασης διευθύνσεων Ο χώρος φυσικών διευθύνσεων χωρίζεται σε πλαίσια σταθερού μεγέθους (π.χ., 4096 bytes) Ο χώρος λογικών / εικονικών διευθύνσεων χωρίζεται σε σελίδες, ίδιου μεγέθους με τα πλαίσια Κάθε σελίδα αντιστοιχίζεται σε οποιοδήποτε πλαίσιο χωρίς περιορισμό συνεχόμενης αποθήκευσης η διεργασία ζει σε διάσπαρτα φυσικά τμήματα αλλά σε γραμμικό χώρο εικονικών διευθύνσεων Το Υλικό (MMU) αναλαμβάνει τη μετάφραση

Σελιδοποίηση (2) Χώρος εικονικών διευθύνσεων Χώρος εικονικών διευθύνσεων P 0 P 1 Διακριτοί, γραμμικοί χώροι εικονικών διευθύνσεων Προστασία μνήμης Χώρος φυσικών διευθύσεων (Κύρια Μνήμη) Μια διεργασία δεν μπορεί καν να αναφερθεί σε ξένες διευθύνσεις

Σελιδοποίηση (2) Χώρος εικονικών διευθύνσεων Χώρος εικονικών διευθύνσεων P 0 P 1 Διακριτοί, γραμμικοί χώροι εικονικών διευθύνσεων Προστασία μνήμης Χώρος φυσικών διευθύσεων (Κύρια Μνήμη) Μια διεργασία δεν μπορεί καν να αναφερθεί σε ξένες διευθύνσεις

Σελιδοποίηση (2) Χώρος εικονικών διευθύνσεων Χώρος εικονικών διευθύνσεων P 0 P 1 Διακριτοί, γραμμικοί χώροι εικονικών διευθύνσεων Προστασία μνήμης Μια διεργασία δεν μπορεί καν να αναφερθεί σε ξένες διευθύνσεις Μοιραζόμενη μνήμη, με αντιστοίχιση στο ίδιο πλαίσιο Χώρος φυσικών διευθύσεων (Κύρια Μνήμη)

Σελιδοποίηση (2) Χώρος εικονικών διευθύνσεων Χώρος εικονικών διευθύνσεων P 0 P 1 Διακριτοί, γραμμικοί χώροι εικονικών διευθύνσεων Προστασία μνήμης Χώρος φυσικών διευθύσεων (Κύρια Μνήμη) Μια διεργασία δεν μπορεί καν να αναφερθεί σε ξένες διευθύνσεις Μοιραζόμενη μνήμη, με αντιστοίχιση στο ίδιο πλαίσιο Δεν έχει εξωτερικό κατακερματισμό

Σελιδοποίηση (3) Μετάφραση διευθύνσεων με πίνακες σελίδων Τηρούνται από το ΛΣ, τους συμβουλεύεται το υλικό Μέγεθος σελίδας; 4 KB 16MB Μεγάλο μέγεθος μικρό κόστος διαχείρισης μικρότεροι πίνακες σελίδων εντονότερος εσωτερικός κατακερματισμός Μικρό μέγεθος αποφεύγεται ο εσωτερικός κατακερματισμός μεγαλύτερο κόστος διαχείρισης

Σελιδοποίηση - Μετάφραση διευθύνσεων Μέγεθος σελίδας 2 n. Γιατί πρέπει να είναι δύναμη του 2; Διεύθυνση των m bits, χώρος εικονικών διεύθυνσεων 2 m Εικονική διεύθυνση: αριθμός σελίδας + μετατόπιση αριθμός σελίδας (page number) p m n μετατόπιση (offset) d n

Σελιδοποίηση - Μετάφραση διευθύνσεων Μέγεθος σελίδας 2 n. Γιατί πρέπει να είναι δύναμη του 2; Διεύθυνση των m bits, χώρος εικονικών διεύθυνσεων 2 m Εικονική διεύθυνση: αριθμός σελίδας + μετατόπιση αριθμός σελίδας (page number) p m n μετατόπιση (offset) d n Πίνακας σελίδων

Σελιδοποίηση - Μετάφραση διευθύνσεων Μέγεθος σελίδας 2 n. Γιατί πρέπει να είναι δύναμη του 2; Διεύθυνση των m bits, χώρος εικονικών διεύθυνσεων 2 m Εικονική διεύθυνση: αριθμός σελίδας + μετατόπιση αριθμός σελίδας (page number) p m n μετατόπιση (offset) d n p Πίνακας σελίδων

Σελιδοποίηση - Μετάφραση διευθύνσεων Μέγεθος σελίδας 2 n. Γιατί πρέπει να είναι δύναμη του 2; Διεύθυνση των m bits, χώρος εικονικών διεύθυνσεων 2 m Εικονική διεύθυνση: αριθμός σελίδας + μετατόπιση αριθμός σελίδας (page number) p m n μετατόπιση (offset) d n p f Πίνακας σελίδων

Υποστήριξη υλικού για σελιδοποίηση εικονική CPU p d f d διεύθυνση φυσική διεύθυνση f * 2 n + d p f Πίνακας σελίδων Μνήμη

Μοντέλο σελιδοποίησης σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 7 3 Πίνακας σελίδων 0 1 2 3 4 5 6 7 8 Φυσική Μνήμη

Μοντέλο σελιδοποίησης σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 7 3 Πίνακας σελίδων 0 1 2 σελίδα 0 3 4 5 6 7 8 Φυσική Μνήμη

Μοντέλο σελιδοποίησης σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 7 3 Πίνακας σελίδων 0 1 2 σελίδα 0 3 4 5 σελίδα 1 6 7 8 Φυσική Μνήμη

Μοντέλο σελιδοποίησης σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 7 3 Πίνακας σελίδων 0 1 σελίδα 2 2 σελίδα 0 3 4 5 σελίδα 1 6 7 8 Φυσική Μνήμη

Μοντέλο σελιδοποίησης σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 7 3 Πίνακας σελίδων 0 1 σελίδα 2 2 σελίδα 0 3 4 5 σελίδα 1 6 7 σελίδα 3 8 Φυσική Μνήμη

Μοντέλο σελιδοποίησης σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 7 3 Πίνακας σελίδων 0 1 σελίδα 2 2 σελίδα 0 3 σελίδα 4 4 5 σελίδα 1 6 7 σελίδα 3 8 Φυσική Μνήμη

Μοντέλο σελιδοποίησης Ποιος δίνει μνήμη στις διεργασίες; σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 7 3 Πίνακας σελίδων 0 1 σελίδα 2 2 σελίδα 0 3 σελίδα 4 4 5 σελίδα 1 6 7 σελίδα 3 8 Φυσική Μνήμη

Μοντέλο σελιδοποίησης σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 7 3 Πίνακας σελίδων Ποιος δίνει μνήμη στις διεργασίες; Το ΛΣ βρίσκει διαθέσιμα πλαίσια και τα απεικονίζει Το ΛΣ γνωρίζει (π.χ. λίστα) ποια πλαίσια είναι ελεύθερα (πίνακας πλαισίων) 2 5 1 0 1 2 3 4 5 6 7 8 σελίδα 2 σελίδα 0 σελίδα 4 σελίδα 1 σελίδα 3 Φυσική Μνήμη

Ανάθεση πλαισίων σε νέα διεργασία Λίστα ελεύθερων πλαισίων: 102, 105, 107, 103, 106 σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 εκτελέσιμο 101 102 103 104 105 106 107 Φυσική Μνήμη (πριν) 101 102 103 104 105 106 107 Φυσική Μνήμη (μετά)

Ανάθεση πλαισίων σε νέα διεργασία Λίστα ελεύθερων πλαισίων: 102, 105, 107, 103, 106 σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 εκτελέσιμο 101 102 103 104 105 106 107 Φυσική Μνήμη (πριν) 101 102 103 104 105 106 107 σελίδα 0 Φυσική Μνήμη (μετά)

Ανάθεση πλαισίων σε νέα διεργασία Λίστα ελεύθερων πλαισίων: 102, 105, 107, 103, 106 σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 εκτελέσιμο 101 102 103 104 105 106 107 Φυσική Μνήμη (πριν) 101 102 103 104 105 106 107 σελίδα 0 σελίδα 1 Φυσική Μνήμη (μετά)

Ανάθεση πλαισίων σε νέα διεργασία Λίστα ελεύθερων πλαισίων: 102, 105, 107, 103, 106 σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 εκτελέσιμο 101 102 103 104 105 106 107 Φυσική Μνήμη (πριν) 101 102 103 104 105 106 107 σελίδα 0 σελίδα 1 σελίδα 2 Φυσική Μνήμη (μετά)

Ανάθεση πλαισίων σε νέα διεργασία Λίστα ελεύθερων πλαισίων: 102, 105, 107, 103, 106 σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 εκτελέσιμο 101 102 103 104 105 106 107 Φυσική Μνήμη (πριν) 101 102 103 104 105 106 107 σελίδα 0 σελίδα 3 σελίδα 1 σελίδα 2 Φυσική Μνήμη (μετά)

Ανάθεση πλαισίων σε νέα διεργασία σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 εκτελέσιμο Λίστα ελεύθερων πλαισίων: 102, 105, 107, 103, 106 101 102 103 104 105 106 107 Φυσική Μνήμη (πριν) Λίστα ελεύθερων πλαισίων: 106 101 102 103 104 105 106 107 σελίδα 0 σελίδα 3 σελίδα 1 σελίδα 2 Φυσική Μνήμη (μετά)

Υποστήριξη υλικού για σελιδοποίηση Πώς υλοποιείται ο πίνακας σελίδων; Ειδικοί, αφιερωμένοι καταχωρητές (DEC PDP-11) ναι, αλλά είχε 16-bit διευθύνσεις και μέγεθος σελίδας 8KB Πίνακας σελίδων στη μνήμη Καταχωρητής βάσης πίνακα σελίδων PTBR (πχ. %cr3 στον x86) Πόσες προσβάσεις χρειάζονται στη μνήμη για κάθε πρόσβαση από τη CPU;

Υποστήριξη υλικού για σελιδοποίηση Πώς υλοποιείται ο πίνακας σελίδων; Ειδικοί, αφιερωμένοι καταχωρητές (DEC PDP-11) ναι, αλλά είχε 16-bit διευθύνσεις και μέγεθος σελίδας 8KB Πίνακας σελίδων στη μνήμη Καταχωρητής βάσης πίνακα σελίδων PTBR (πχ. %cr3 στον x86) Πόσες προσβάσεις χρειάζονται στη μνήμη για κάθε πρόσβαση από τη CPU; Κρυφή μνήμη για τις μεταφράσεις: Translation Look-aside Buffer (TLB) Συσχετιστική, πολύ γρήγορη μνήμη

Υποστήριξη υλικού για σελιδοποίηση εικονική CPU p d f d διεύθυνση φυσική διεύθυνση f * 2 n + d p f Πίνακας σελίδων Μνήμη

Υποστήριξη υλικού για σελιδοποίηση εικονική CPU p d f d διεύθυνση φυσική διεύθυνση PTBR f * 2 n + d p f Πίνακας σελίδων Μνήμη

Υποστήριξη υλικού για σελιδοποίηση TLB (1) εικονική διεύθυνση p CPU f d d φυσική διεύθυνση f * 2 n + d Μνήμη

Υποστήριξη υλικού για σελιδοποίηση TLB (1) εικονική διεύθυνση p CPU f d d φυσική διεύθυνση σελίδα πλαίσιο f * 2 n + d TLB Μνήμη

Υποστήριξη υλικού για σελιδοποίηση TLB (1) εικονική διεύθυνση p CPU f d d φυσική διεύθυνση σελίδα πλαίσιο p f hit f * 2 n + d TLB Μνήμη

Υποστήριξη υλικού για σελιδοποίηση TLB (1) εικονική διεύθυνση p CPU f d d φυσική διεύθυνση σελίδα πλαίσιο p f hit f * 2 n + d TLB TLB miss p f Πίνακας σελίδων Μνήμη

Υποστήριξη υλικού για σελιδοποίηση TLB (2) Ο TLB έχει μικρό αριθμό εγγραφών (64-1024) Τι συμβαίνει αν υπάρξει TLB miss; διάσχιση του πίνακα σελίδων στη μνήμη (page table walk) κοστίζει πολύ Ποιος κάνει τη διάσχιση;

Υποστήριξη υλικού για σελιδοποίηση TLB (2) Ο TLB έχει μικρό αριθμό εγγραφών (64-1024) Τι συμβαίνει αν υπάρξει TLB miss; διάσχιση του πίνακα σελίδων στη μνήμη (page table walk) κοστίζει πολύ Ποιος κάνει τη διάσχιση; H CPU: Hardware-managed TLBs (Intel x86) Το ΛΣ: Software-managed TLBs (MIPS, SPARC) Με software-managed TLB, το ΛΣ αποφασίζει ελεύθερα για την οργάνωση του πίνακα σελίδων

Υποστήριξη υλικού για σελιδοποίηση TLB (3) Τι συμβαίνει σε context switch;

Υποστήριξη υλικού για σελιδοποίηση TLB (3) Τι συμβαίνει σε context switch; Οι εγγραφές του TLB είναι άκυρες Καθαρισμός TLB TLB flush Καλύτερο: Αναγνωριστικά χώρου διευθύνσεων Address-Space ID (ASID) για κάθε εγγραφή του TLB Νήματα της ίδιας διεργασίας ίδιο αναγνωριστικό

Υποστήριξη υλικού για σελιδοποίηση TLB (3) Τι συμβαίνει σε context switch; Οι εγγραφές του TLB είναι άκυρες Καθαρισμός TLB TLB flush Καλύτερο: Αναγνωριστικά χώρου διευθύνσεων Address-Space ID (ASID) για κάθε εγγραφή του TLB Νήματα της ίδιας διεργασίας ίδιο αναγνωριστικό Πραγματικός χρόνος πρόσβασης Αν h = TLB hit ratio, ε = κόστος αναζήτησης στο TLB, τ = χρόνος πρόσβασης στη μνήμη Effective Access Time = (ε + τ) h + (ε + 2τ) (1- h)

Σελιδοποίηση Προστασία (1) Επιβολή δικαιωμάτων πρόσβασης με bits προστασίας ανά σελίδα εικονικής μνήμης Π.χ., για μοιραζόμενη μνήμη Μία διεργασία μπορεί να γράψει, οι άλλες μόνο διαβάζουν Bits πρόσβασης Read, Write, execute Bit εγκυρότητας Valid, Invalid Σε περίπτωση μη επιτρεπόμενης πρόσβασης;

Σελιδοποίηση Προστασία (1) Επιβολή δικαιωμάτων πρόσβασης με bits προστασίας ανά σελίδα εικονικής μνήμης Π.χ., για μοιραζόμενη μνήμη Μία διεργασία μπορεί να γράψει, οι άλλες μόνο διαβάζουν Bits πρόσβασης Read, Write, execute Bit εγκυρότητας Valid, Invalid Σε περίπτωση μη επιτρεπόμενης πρόσβασης; Trap! Εξαίρεση σελίδας Page fault

Σελιδοποίηση Προστασία (2) σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 7 0 Πίνακας σελίδων 0 1 σελίδα 2 2 σελίδα 0 3 4 5 σελίδα 1 6 7 σελίδα 3 8 Φυσική Μνήμη

Σελιδοποίηση Προστασία (2) σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 r, x r, x r 7 r, w 0 Πίνακας σελίδων v v v v i 0 1 σελίδα 2 2 σελίδα 0 3 4 5 σελίδα 1 6 7 σελίδα 3 8 Φυσική Μνήμη

Σελιδοποίηση Προστασία (2) σελίδα 0 σελίδα 1 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 r, x r, x r 7 r, w 0 Πίνακας σελίδων v v v v i 0 1 σελίδα 2 2 σελίδα 0 3 4 5 σελίδα 1 6 7 σελίδα 3 8 Φυσική Μνήμη Ποιες σελίδες είναι κειμένου-κώδικα, ποιες δεδομένων;

Στον πραγματικό κόσμο Πόσο μεγάλος είναι ο πίνακας σελίδων; 32-bit εικονική διεύθυνση, μέγεθος σελίδας 4KB, 32-bit φυσική διεύθυνση: 2 32 / 4096 = 1048576 εγγραφές, 4MB ανά διεργασία Και σε 64-bit μηχανήματα; Οι διεργασίες δεν χρησιμοποιούν το σύνολο του χώρου εικονικών διευθύνσεων Αποδοτικότερη οργάνωση πίνακα σελίδων Ιεραρχική σελιδοποίηση Κατακερματισμένοι πίνακες σελίδων Ανεστραμμένοι πίνακες σελίδων

Ιεραρχική σελιδοποίηση Διαίρεση του χώρου λογικών διευθύνσεων σε περισσότερους πίνακες σελίδων Ιεραρχικά, π.χ. διεπίπεδη οργάνωση Ο ίδιος ο πίνακας σελίδων σελιδοποιείται

Διεπίπεδη Σελιδοποίηση (1) Άμεση οργάνωση αριθμός σελίδας (page number) p m n μετατόπιση (offset) d n

Διεπίπεδη Σελιδοποίηση (1) Άμεση οργάνωση αριθμός σελίδας (page number) p m n μετατόπιση (offset) d n Διεπίπεδη οργάνωση p 1 p 2 10 10 12 d 32 bits

Διεπίπεδη Σελιδοποίηση (2) 0 εξωτερικός πίνακας σελίδων 2 1... 5 8 4 μνήμη 0 1 2 3 4 5 6 7 8 9 10 11 πίνακας σελίδων

Διάσχιση σε διεπίπεδη οργάνωση p 1 p 2 d πλαίσιο μνήμης

Διάσχιση σε διεπίπεδη οργάνωση p 1 p 2 d εξωτερικός πίνακας σελίδων σελίδα πίνακα σελίδων πλαίσιο μνήμης

Διάσχιση σε διεπίπεδη οργάνωση p 1 p 2 d p 1 εξωτερικός πίνακας σελίδων σελίδα πίνακα σελίδων πλαίσιο μνήμης

Διάσχιση σε διεπίπεδη οργάνωση p 1 p 2 d p 1 εξωτερικός πίνακας σελίδων p 2 σελίδα πίνακα σελίδων πλαίσιο μνήμης

Διάσχιση σε διεπίπεδη οργάνωση p 1 p 2 d p 1 εξωτερικός πίνακας σελίδων f p 2 σελίδα πίνακα σελίδων d πλαίσιο μνήμης

Διάσχιση σε διεπίπεδη οργάνωση p 1 p 2 d p 1 εξωτερικός πίνακας σελίδων f p 2 σελίδα πίνακα σελίδων d πλαίσιο μνήμης

Διάσχιση σε διεπίπεδη οργάνωση p 1 p 2 d p 1 εξωτερικός πίνακας σελίδων f p 2 σελίδα πίνακα σελίδων d Επεκτείνεται σε πολυεπίπεδη οργάνωση. πλαίσιο μνήμης

Κατακερματισμένοι πίνακες σελίδων εικονική CPU p d f d διεύθυνση φυσική διεύθυνση hash function Πίνακας σελίδων Μνήμη Βολικοί για πολύ μεγάλους χώρους διευθύνσεων, π.χ. 64-bit Solaris σε 64-bit UltraSPARC

Κατακερματισμένοι πίνακες σελίδων εικονική CPU p d f d διεύθυνση φυσική διεύθυνση hash function q f p f Πίνακας σελίδων Μνήμη Βολικοί για πολύ μεγάλους χώρους διευθύνσεων, π.χ. 64-bit Solaris σε 64-bit UltraSPARC

Κατακερματισμένοι πίνακες σελίδων εικονική CPU p d f d διεύθυνση φυσική διεύθυνση hash function q f p f Πίνακας σελίδων Μνήμη Βολικοί για πολύ μεγάλους χώρους διευθύνσεων, π.χ. 64-bit Solaris σε 64-bit UltraSPARC

Ανεστραμμένοι πίνακες σελίδων CPU εικονική διεύθυνση pid p d d φυσική διεύθυνση pid p Πίνακας πλαισίων Μνήμη Πίνακας πλαισίων αντί για πίνακας σελίδων Κρατάει την αντίστροφη πληροφορία, για κάθε πλαίσιο φυσικής μνήμης αριθμός πλαίσιου { διεργασία, σελίδα } Ακριβή αναζήτηση στον πίνακα, μετριάζεται με πίνακες κατακερματισμού TLB hash table πίνακας πλαισίων Μοιραζόμενη μνήμη;

Ανεστραμμένοι πίνακες σελίδων CPU εικονική διεύθυνση pid p d d φυσική διεύθυνση αναζήτηση pid p Πίνακας πλαισίων Μνήμη Πίνακας πλαισίων αντί για πίνακας σελίδων Κρατάει την αντίστροφη πληροφορία, για κάθε πλαίσιο φυσικής μνήμης αριθμός πλαίσιου { διεργασία, σελίδα } Ακριβή αναζήτηση στον πίνακα, μετριάζεται με πίνακες κατακερματισμού TLB hash table πίνακας πλαισίων Μοιραζόμενη μνήμη;

Ανεστραμμένοι πίνακες σελίδων εικονική CPU pid p d i d διεύθυνση φυσική διεύθυνση αναζήτηση i pid p Πίνακας πλαισίων Μνήμη Πίνακας πλαισίων αντί για πίνακας σελίδων Κρατάει την αντίστροφη πληροφορία, για κάθε πλαίσιο φυσικής μνήμης αριθμός πλαίσιου { διεργασία, σελίδα } Ακριβή αναζήτηση στον πίνακα, μετριάζεται με πίνακες κατακερματισμού TLB hash table πίνακας πλαισίων Μοιραζόμενη μνήμη;

Διαχείριση Κύριας Μνήμης - Σύνοψη Ιεραρχία μνήμης Μεταγλώττιση φόρτωση εκτέλεση κώδικα Καθορισμός διευθύνσεων Εναλλαγή διεργασιών Συνεχόμενη ανάθεση μνήμης Στρατηγικές κατανομής, κατακερματισμός Σελιδοποίηση Μετάφραση διευθύνσεων, πίνακες σελίδων, TLBs Οργάνωση πινάκων σελίδων Κατάτμηση

Κατάτμηση Segmentation (1) στοίβα κύριο πρόγραμμα καθολικά δεδομένα func1() Χωριστά, αριθμημένα, τμήματα μνήμης Κάθε λογική διεύθυνση είναι ένα ζεύγος {s, d} Το ΛΣ διαχειρίζεται τμήματα: { βάση τμήματος, όριο τμήματος }

Κατάτμηση Segmentation (2) Πίνακας τμημάτων s όριο βάση CPU λογική διεύθυνση s d < ναι + Φυσική μνήμη Μπορεί να συνδυαστεί και με σελιδοποίηση (Intel x86) στην πράξη (Linux σε i386) προτιμάται ένας ενιαίος, γραμμικός χώρος

Κατάτμηση Segmentation (2) Πίνακας τμημάτων s όριο βάση CPU λογική διεύθυνση s d < ναι + όχι Trap! Φυσική μνήμη Μπορεί να συνδυαστεί και με σελιδοποίηση (Intel x86) στην πράξη (Linux σε i386) προτιμάται ένας ενιαίος, γραμμικός χώρος

Ερωτήσεις;

Ερωτήσεις; και στη λίστα: OS@lists.cslab.ece.ntua.gr