1 Διαχείριση Μνήμης Γενικά Εναλλαγή (Swapping) Συμπαγής Εκχώρηση (Contiguous Allocation) Σελιδοποίηση (Paging) Κατάτμηση (Segmentation) Κατάτμηση με Σελιδοποίηση.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Διαχείριση Μνήμης (Memory Management)
Advertisements

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ.
Εικονική Μνήμη (virtual memory)
Εικονική Μνήμη (virtual memory) Πολλά προγράμματα εκτελούνται ταυτόχρονα σε ένα υπολογιστή Η συνολική μνήμη που απαιτείται είναι μεγαλύτερη.
Ασκήσεις Caches
8. Ιδεατή Μνήμη – Οργάνωση
7. Διαχείριση κύριας μνήμης
Προηγμένοι Μικροεπεξεργαστές 2006 – 2007 Παρουσίαση Projects.
Προηγμένοι Μικροεπεξεργαστές 2007 – 2008 Παρουσίαση Projects.
Κ. Διαμαντάρας Α. Βαφειάδης Τμήμα Πληροφορικής ΑΤΕΙ Θεσσαλονίικης 2011 Συστήματα Μνήμης – Βασικές Αρχές Cache.
Weatherly (2009) MinixVM: An Implementation of Virtual Memory in Minix 3.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
Σχεδιασμός της Ιεραρχίας Μνήμης (1) Pedro Trancoso Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Άσκηση Διεύθυνσης Μνήμης με cache Νεκτάριος Κοζύρης Άρης Σωτηρόπουλος Νίκος Αναστόπουλος.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
© Processor-Memory (DRAM) Διαφορά επίδοσης Performance
ΗΥ-220 Verilog HDL. Τα βασικά.... ΗΥ-220 – Ιάκωβος Μαυροειδής2 Βασική Ροή Σχεδίασης Requirements SimulateRTL Model Gate-level Model Synthesize SimulateTest.
Intel’s P6 Processor Family Architecture
Processor-Memory (DRAM) Διαφορά επίδοσης Performance
Translation Lookaside Buffers Φροντιστήριο του μαθήματος “Προηγμένοι Μικροεπεξεργαστές”
© Είδη των Cache Misses: 3C’s 1 Compulsory: 1 Compulsory: Συμβαίνουν κατά την πρώτη πρόσβαση σε ένα block. Το block πρέπει να κληθεί.
TCP/IP Protocol Suite 1 Διάλεξη 2 η Με την ολοκλήρωση της ενότητας θα μπορείτε να: Το μοντέλο OSI και η σουίτα TCP/IP κατανοήσετε την αρχιτεκτονική του.
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κ.ΑΛΑΦΟΔΗΜΟΣ καθηγητής Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -- Δ. Σερπάνος 1 Κεφάλαιο 5.
Αρχιτεκτονική Υπολογιστών ΙΕΡΑΡΧΙΕΣ ΜΝΗΜΗΣ. Αρχιτεκτονική Υπολογιστών ΤΟΠΙΚΟΤΗΤΑ Χρονική Τοπικότητα (Temporal Locality) –μια λέξη μνήμης που χρησιμοποιήθηκε.
Αρχιτεκτονική Υπολογιστών Ενότητα # 3: Ιεραρχία Μνήμης Διδάσκων: Γεώργιος Κ. Πολύζος Τμήμα: Πληροφορικής.
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ Αρχιτεκτονική Υπολογιστών.
 Υλικό ονομάζουμε τα φυσικά μέρη του υπολογιστή που μπορούμε να τα δούμε και να τα πιάσουμε. Πηγή εικόνας:
Διαφάνειες διδασκαλίας του πρωτότυπου βιβλίου μεταφρασμένες στα ελληνικά (μετάφραση, επιμέλεια: Δημήτρης Γκιζόπουλος, Πανεπιστήμιο Αθηνών) Οργάνωση και.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αρχιτεκτονική Η/Υ ΙΙ Ενότητα #3: Σελιδοποίηση – Κατάτμηση στην Κύρια Μνήμη Νικόλαος Χ. Πετρέλλης Σχολή Τεχνολογικών.
1 Λειτουργικά Συστήματα Ενότητα 9 : Ιδεατή Μνήμη 1/2 Δημήτριος Λιαροκάπης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Qemu & KVM Παντελής Κουκούσουλας (aka pkt). Qemu “Ο Qemu κάνει κάτι πραγματικά εκπληκτικό: Μπορεί να εξομοιώσει 9 αρχιτεκτονικές σε 13 φυσικές αρχιτεκτονικές”
ΔIAXEIPIΣH MNHMHΣ.
ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή
Εικονική Μνήμη (virtual memory)
Θεωρήστε το λογικό χώρο διευθύνσεων που αποτελείται από 8 σελίδες των 1024 λέξεων (word) η καθεμία, που απεικονίζεται σε φυσική μνήμη 32 πλαισίων. Πόσα.
Δ.Ε.Υ.Α. και Οικονομική Κρίση
Καθηγητής Σταύρος Α. Κουμπιάς
Ενότητα 5 : Οργάνωση Υλικού Υπολογιστών Δρ. Γκόγκος Χρήστος
Tο υλικό του Ηλεκτρονικού Υπολογιστή
Εξέλιξη Υπολογιστικών Συστημάτων
Είδη των Cache Misses: 3C’s
Άθλημα Πετοσφαίρισης Βογιατζή Ίριδα-Βοϊλα Έφη.
Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,
Αδιέξοδο Ορισμοί – είδη πόρων Γράφοι εκχώρησης πόρων
ΗΜΥ 007 – Τεχνολογία Πληροφορίας Διάλεξη 5
Morgan Kaufmann Publishers
Θέματα Φεβρουαρίου
Μνήμη RAM, rom, cache ….
Δημιουργία Διεργασιών
Το Υλικό του Υπολογιστή
Διδασκαλία εννοιών προγραμματισμού με το Scratch για τις Ε’ και ΣΤ’ δημοτικού Η παρούσα σειρά μαθημάτων ΤΠΕ υλοποιήθηκε στο 15ο Δημοτικό Σχολείο.
Δυναμικός Κατακερματισμός
Εισαγωγή στα Ευρετήρια
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Ι
« به نام خدا» 1-جايگاه ايران در توزيع جهاني درآمد
Είδη των Cache Misses: 3C’s
Αρχιτεκτονική ΙΑ-64 Προηγμένες Αρχιτεκτονικές Υπολογιστών
Advanced Computer Architectures Cache Memories
Υλικό - Λογισμικό Υλικό (Hardware) Λογισμικό (Software)
Είδη των Cache Misses: 3C’s
Single-cyle υλοποίηση:
Memory Cloaking & Bypassing
Είδη των Cache Misses: 3C’s
Διδάσκοντας: Κ. Χαλάτσης
Συμφωνία επί της ασφαλιστικής αξίας
Μεταγράφημα παρουσίασης:

1 Διαχείριση Μνήμης Γενικά Εναλλαγή (Swapping) Συμπαγής Εκχώρηση (Contiguous Allocation) Σελιδοποίηση (Paging) Κατάτμηση (Segmentation) Κατάτμηση με Σελιδοποίηση (Segmentation with Paging)

2 Γενικά Το πρόγραμμα θα πρέπει να μεταφερθεί στην κύρια μνήμη και να πάρει την μορφή διεργασίας ώστε να εκτελεστεί. Ουρά Εισόδου (Input queue) – διεργασίες στο δίσκο που αναμένουν μεταφορά στην κύρια μνήμη για την εκτέλεση του προγράμματος. Τα προγράμματα χρήστη περνούν από διάφορες φάσεις πριν να ξεκινήσει η εκτέλεσή τους.

3 Απεικόνιση εντολών και δεδομένων στην κύρια μνήμη Στάδιο μεταγλώττισης (Compile): Εάν η θέση μνήμης είναι εκ των προτέρων δεδομένη, μπορεί να προκύψει κώδικας με απόλυτες αναφορές (absolute code); Θα πρέπει να μεταγλωττιστεί εκ νέου εάν η θέση μνήμης αλλάξει. Στάδιο φόρτωσης (Load): πρέπει να προκύψει επανατοποθετήσιμος (relocatable) κώδικας εάν η θέση μνήμης δεν είναι γνωστή στο στάδιο μεταγλώττισης. Στάδιο εκτέλεσης (Execution): Η απεικόνιση καθυστερείται μέχρι το χρόνο εκτέλεσης εάν η διεργασία μπορεί να μετακινηθεί ενώ εκτελείται από το ένα τμήμα μνήμης σε κάποιο άλλο. Απαιτείται υποστήριξη από το υλικό (π.χ., καταχωρητές βάσης και ορίου). Η απεικόνιση των διευθύνσεων (address binding) των εντολών και των δεδομένων σε διευθύνσεις της κυρίας μνήμης μπορεί να πραγματοποιηθεί σε 3 διαφορετικά στάδια:

4 Επεξεργασία προγράμματος

5 Διευθύνσεις: λογικές και φυσικές Η έννοια του χώρου λογικών διευθύνσεων που απεικονίζεται σε ένα διαφορετικό χώρο φυσικών διευθύνσεων και εξαιρετικά σημαντική στη διαχείριση μνήμης.  Λογική διεύθυνση – παράγεται από την CPU; Αναφέρεται και ως εικονική διεύθυνση (virtual address).  Φυσική διεύθυνση – η διεύθυνση που έχει σημασία για την μονάδα διαχείρισης μνήμης. Οι λογικές και φυσικές διευθύνσεις ταυτίζονται στα σχήματα απεικόνισης compile-time και load-time. Διαφέρουν στην περίπτωση της απεικόνισης διευθύνσεων που πραγματοποιείται σε χρόνο εκτέλεσης.

6 Μονάδα διαχείρισης μνήμης ( MMU ) Τμήμα υλικού που απεικονίζει εικονικές διευθύνσεις σε φυσικές. Στην MMU, η τιμή του καταχωρητή επανατοποθέτησης (relocation) προστίθεται σε κάθε διεύθυνση που παράγεται από μία διεργασία πριν να ζητηθεί από την κ. Μνήμη. Το πρόγραμμα αναφέρεται σε λογικές διευθύνσεις. Ποτέ δεν επεξεργάζεται τις πραγματικές, φυσικές διευθύνσεις.

7 Δυναμική επανατοποθέτηση (relocation)

8 Δυναμική Φόρτωση Κάποια ρουτίνα δεν φορτώνεται παρά μόνο όταν κληθεί Καλύτερη εκμετάλλευση του χώρου μνήμης. Μία ρουτίνα που δεν χρησιμοποιείται δεν φορτώνεται ποτέ στην κύρια μνήμη. Χρήσιμος μηχανισμός όταν μεγάλα τμήματα κώδικα χρησιμοποιούνται για να καλύψουν περιπτώσεις που σπάνια συμβαίνουν. Δεν απαιτείται ιδιαίτερη υποστήριξη από το Λ.Σ.

9 Δυναμική Σύνδεση (Linking) Η σύνδεση καθυστερείται μέχρι τη φάση εκτέλεσης. Ένα μικρό τμήμα κώδικα (καλείται stub) χρησιμοποιείται για να εντοπιστεί η κατάλληλη ρουτίνα σε μία βιβλιοθήκη που βρίσκεται στην κύρια μνήμη. Το Stub αντικαθιστά τον εαυτό του με τη διεύθυνση της ρουτίνας και εκτελεί τη ρουτίνα. Το λειτουργικό σύστημα πρέπει να ελέγξει εάν η ρουτίνα βρίσκεται στο χώρο διευθύνσεων της διεργασίας. Η δυναμική σύνδεση είναι ιδιαίτερα χρήσιμη για βιβλιοθήκες.

10 Υπερθέματα (Overlays) Στην κύρια μνήμη συντηρούνται μόνο τα δεδομένα και οι εντολές που απαιτούνται τη δεδομένη χρονική στιγμή. Ο μηχανισμός των υπερθεμάτων χρησιμοποιείται όταν η διεργασία είναι μεγαλύτερη από το ποσό της κυρίας μνήμης που της έχει εκχωρηθεί. Ο μηχανισμός υλοποιείται από τον χρήστη, δεν απαιτείται ιδιαίτερη υποστήριξη από το λειτουργικό σύστημα, ο σχεδιασμός του προγράμματος είναι αρκετά σύνθετος.

11 Εναλλαγή (Swapping) Μία διεργασία μπορεί προσωρινά να τεθεί εκτός κυρίας μνήμης (swapped out) σε δευτερεύουσα μνήμη, και να επανέλθει στην κύρια μνήμη αργότερα για να συνεχίσει την εκτέλεσή της. Αποθηκευτική περιοχή – γρήγορος σκληρός δίσκος με επαρκές μέγεθος για να φιλοξενήσει αντίγραφα των memory images όλων των χρηστών. Μετακίνηση έξω (Roll out), Μετακίνηση μέσα – παραλλαγή της εναλλαγής που χρησιμοποιείται για αλγορίθμους χρονο- δρομολόγησης βάσει προτεραιοτήτων; Οι διεργασίες χαμηλής προτεραιότητας τίθενται εκτός μνήμης ώστε να φορτωθεί και να εκτελεστεί μία διεργασία υψηλής προτεραιότητας. Μεγάλο τμήμα του χρόνου εναλλαγής (swap time) είναι ο χρόνος μεταφοράς (transfer); ο συνολικός χρόνος μεταφοράς είναι ανάλογος με το όγκο της μνήμης η οποία εναλλάσσεται.

12 Εναλλαγή

13 Συμπαγής Εκχώρηση Η κύρια μνήμη οργανώνεται σε δύο διαμερίσεις (partitions):  Το λειτουργικό σύστημα καθώς και το άνυσμα διακοπών συνήθως διατηρούνται στην χαμηλή περιοχή της μνήμης.  Οι διεργασίες χρήστη κρατούνται στην υψηλή περιοχή μνήμης. Εκχώρηση μοναδικής διαμέρισης (Single-partition)  Ο καταχωρητής επανατοποθέτησης (Relocation) χρησιμοποιείται για να προφυλάξει τις διεργασίες την μία από την άλλη και αποτρέπει την αλλαγή του κώδικα του λειτουργικού συστήματος.  Ο καταχωρητής περιέχει την τιμή της χαμηλότερης φυσικής διεύθυνσης; Ο καταχωρητής ορίου περιέχει το εύρος των λογικών διευθύνσεων– κάθε λογική διεύθυνση πρέπει να είναι μικρότερη της τιμής του καταχωρητή ορίου (limit register).

14 Καταχωρητές Επανατοποθέτησης και Ορίου

15 Συμπαγής Εκχώρηση Εκχώρηση πολλαπλών διαμερίσεων (partition)  Οπή (Hole) – block διαθέσιμη μνήμης. Οπές διαφόρων μεγεθών βρίσκονται σε διάφορα μέρη της μνήμης.  Όταν παρουσιάζεται μία διεργασία, της εκχωρείται μνήμη από την οπή που είναι επαρκώς μεγάλη ώστε να την χωρέσει.  Το λειτουργικό σύστημα διατηρεί πληροφορία για: (1) τις δεσμευμένες θέσεις μνήμης (2) τις ελεύθερες διαμερίσεις (οπές) OS process 5 process 8 process 2 OS process 5 process 2 OS process 5 process 2 OS process 5 process 9 process 2 process 9 process 10

16 Δυναμική εκχώρηση μνήμης First-fit: Εκχώρηση της πρώτης οπής η οποία είναι επαρκώς μεγάλη. Best-fit: Εκχώρηση της μικρότερης δυνατής οπής η οποία είναι αρκούντως μεγάλη; Όλη η λίστα ελευθέρων οπών θα πρέπει να σαρωθεί, εκτός αν έχει ταξινομηθεί σύμφωνα με το μέγεθος. Προκύπτει η μικρότερη δυνατή εναπομένουσα οπή. Worst-fit: Εκχώρηση της μεγαλύτερης οπής; Θα πρέπει να ελεγχθεί το σύνολο της λίστας. Παράγει την μεγαλύτερη δυνατή εναπομένουσα οπή. Πρόβλημα: ικανοποίηση μίας αίτησης για μέγεθος n μέσω μίας λίστας των «ελευθέρων» οπών. Τα σχήματα First-fit και best-fit είναι καλύτερα από το worst-fit σχετικά με την ταχύτητα και την εκμετάλλευση του αποθηκευτικού χώρου.

17 Κατακερματισμός (Fragmentation) Εξωτερικός κατακερματισμός–υπάρχει επαρκής συνολικός χώρος για την ικανοποίηση μίας αίτησης, αλλά δεν είναι συμπαγής. Εσωτερικός κατακερματισμός– η εκχωρούμενη μνήμη μπορεί να είναι οριακά μεγαλύτερη από την ζητούμενη; Η διαφορά που προκύπτει στο μέγεθος αναφέρεται σε μνήμη εσωτερική σε μία διαμέριση η οποία όμως δεν χρησιμοποιείται. Ο εξωτερικός κατακερματισμός μπορεί να μειωθεί με σύμπτυξη (compaction)  Τα περιεχόμενα την μνήμης ανατοποθετούνται έτσι ώστε όλη η ελεύθερη μνήμη να συμπτυχθεί σε ένα ενιαίο block.  Η σύμπτυξη είναι εφικτή μόνο εάν η επανατοποθέτηση είναι δυναμική και πραγματοποιείται σε χρόνο εκτέλεσης.

18 Σελιδοποίηση Ο χώρος λογικών διευθύνσεων μίας διεργασίας μπορεί να μην είναι συνεχόμενος. Στη διεργασία εκχωρείται φυσική μνήμη όταν υπάρχει διαθέσιμη. Η φυσική μνήμη διαιρείται σε block σταθερού μεγέθους που καλούνται πλαίσια - frames (το μέγεθος είναι δύναμη του 2, συνήθως μεταξύ 512 bytes και 8192 bytes). Η λογική μνήμη διαιρείται σε blocks ιδίου μεγέθους που καλούνται σελίδες - pages. Για την εκτέλεση ενός προγράμματος με μέγεθος n σελίδων, θα πρέπει να εντοπιστούν n διαθέσιμα πλαίσια και να φορτωθεί το πρόγραμμα. Η μετάφραση από λογικές σε φυσικές διευθύνσεις γίνεται μέσω ενός πίνακα απεικόνισης που καλείται πίνακας σελίδων (page table). Εμφανίζεται το φαινόμενο του εσωτερικού κατακερματισμού.

19 Σχήμα μετάφρασης διευθύνσεων Η διεύθυνση που παράγεται (ζητείται) από την CPU οργανώνεται ως εξής:  Αριθμός Page (p) – χρησιμοποιείται ως δείκτης (index) σε ένα πίνακα σελίδων όπου περιέχεται η διεύθυνση βάσης για κάθε σελίδα στη φυσική μνήμη.  Σχετική διεύθυνση (offset) μέσα στη σελίδα (d) – συνδυάζεται με την διεύθυνση βάσης για τον προσδιορισμό της φυσικής διεύθυνσης.

20 Αρχιτεκτονική μετάφρασης διευθύνσεων

21 Παράδειγμα Σελιδοποίησης

22 Παράδειγμα Σελιδοποίησης

23 Διαθέσιμα πλαίσια Πριν από την εκχώρηση Μετά την εκχώρηση

24 Υλοποίηση του πίνακα σελίδων Ο πίνακας σελίδων διατηρείται στη κύρια μνήμη. Ο Page-table base register (PTBR) δείχνει στο πίνακα σελίδων. Ο Page-table length register (PRLR) υποδεικνύει το μέγεθος του πίνακα σελίδων. Σε αυτό το σχήμα η κάθε αναφορά σε δεδομένα ή εντολές απαιτεί δύο προσβάσεις στη μνήμη. Μία για τον πίνακα σελίδων και μία για τη εντολή ή τα δεδομένα. Το πρόβλημα του πλήθος των απαιτούμενων αναφορών (δύο) μπορεί να λυθεί με την χρήση μίας ειδικής hardware cache για γρήγορη αναζήτηση (fast-lookup). Η cache αυτή καλείται συσχετιστική μνήμη (associative memory) ή translation look-aside buffer (TLB)

25 Συσχετιστική Μνήμη Συσχετιστική μνήμη– Παράλληλη αναζήτηση Μετάφραση διευθύνσεων (A´, A´´)  Εάν το A´ είναι στη cache, επέστρεψε τον αριθμό πλαισίου.  Διαφορετικά επέστρεψε τον αριθμό πλαισίου από τον πίνακα σελίδων Page #Frame #

26 Σελιδοποίηση με TLB

27 Χρόνος Πρόσβασης Αναζήτηση στη cache =  χρονικές μονάδες Υπόθεση: ο χρόνος πρόσβαση στη κύρια μνήμη είναι 1 μsec. Hit ratio – ποσοστό των αναφορών που βρίσκουν ένα αριθμό σελίδας στη cache. Το ποσοστό αυτό εξαρτάται από το μέγεθος της συσχετιστικής μνήμης. Hit ratio =  Μέσος χρόνος πρόσβασης Κ Κ = (1+  )  + (2+  )(1 –  ) = 2 +  – 

28 Προστασία Μνήμης Η προστασία μνήμης επιτυγχάνεται συσχετίζοντας ένα protection bit με κάθε πλαίσιο. Valid-invalid bit σε κάθε καταχώρηση του πίνακα σελίδων:  Το “valid” υποδεικνύει ότι η σχετική σελίδα βρίσκεται στο λογικό χώρο διευθύνσεων της διεργασίας, είναι δηλαδή μία έγκυρη σελίδα.  Το “invalid” υποδεικνύει ότι η σελίδα δεν ανήκει στο λογικό χώρο διευθύνσεων της διεργασίας.

29 Valid (v) / Invalid (i) Bits

30 Δομή πίνακα σελίδων Ιεραρχική σελιδοποίηση Κατακερματισμένοι (Hashed) Πίνακες Σελίδων Αντεστραμμένοι πίνακες σελίδων

31 Ιεραρχικοί Πίνακες Σελίδων Ο λογικός χώρος διευθύνσεων οργανώνεται σε πολλαπλούς πίνακες σελίδων. Παράδειγμα: πίνακας σελίδων δύο επιπέδων.

32 Παράδειγμα: σελιδοποίηση 2 επιπέδων Μία λογική διεύθυνση (σε μηχανή των 32-bit με μέγεθος σελίδας 4K) οργανώνεται ως εξής:  Αριθμό σελίδας : 20 bits.  Σχετική διεύθυνση (offset) μέσα στη σελίδα : 12 bits. Ο πίνακας σελίδων επίσης σελιδοποιείται: ο αριθμός σελίδας διαιρείται ως εξής:  Αριθμός σελίδας:10-bit.  Σχετική διεύθυνση: 10-bit. Έτσι, η λογική διεύθυνση οργανώνεται ως εξής: όπου p i είναι δείκτης στον εξωτερικό (outer) πίνακα σελίδων, και p 2 είναι η μετακίνηση μέσα στη σελίδα στην οποία δείχνει ο εξωτερικός πίνακας. page number page offset pipi p2p2 d 10 12

33 Πίνακας Σελίδων δύο επιπέδων

34 Μετάφραση διεύθυνσης Μετάφραση διεύθυνσης για αρχιτεκτονική σελιδοποίησης 2 επιπέδων 32-bits

35 Κατακερματισμένοι πίνακες σελίδων Συνήθης πρακτική για χώρους διευθύνσεων > 32 bits. Ο αριθμός σελίδας γίνεται hashed στο πίνακα σελίδων. Ο πίνακας σελίδων περιέχει μία αλυσίδα από στοιχεία που έχουν γίνει hashed στην ίδια θέση του πίνακα. Οι αριθμοί σελίδας αναζητούνται στη αλυσίδα. Εάν εντοπιστούν (match), εξάγεται η τιμή του πλαισίου της κυρίας μνήμης που φιλοξενεί τη σελίδα.

36 Κατακερματισμένος πίνακας σελίδων

37 Αντεστραμμένος πίνακας σελίδων Μία καταχώρηση για κάθε πλαίσιο πλαίσιο της κύριας μνήμης. Η καταχώρηση περιέχει την εικονική διεύθυνση της σελίδας που φιλοξενείται στην κύρια μνήμη, μαζί με πληροφορία για τη διεργασία από την οποία προέρχεται η σελίδα. Μειώνει τις απαιτήσεις μνήμης για την αποθήκευση του πίνακα σελίδων αλλά αυξάνει το χρόνο που απαιτείται για την αναζήτηση μίας σελίδας.

38 Αρχιτεκτονική Αντεστραμμένου Πίνακα Σελίδων

39 Διαμοιραζόμενες σελίδες Διαμοιραζόμενος κώδικας  Ένα αντίγραφο κώδικα σε κατάσταση read-only (reentrant κώδικας) είναι κοινό για πολλές διεργασίες (παραδείγματα: κειμενογράφοι, μεταφραστές).  Ο διαμοιραζόμενος κώδικα πρέπει να εμφανίζεται στη ίδια θέση του λογικού χώρου διευθύνσεων για όλες τις διεργασίες. Ιδιωτικός (Private) κώδικα και δεδομένα  Η κάθε διεργασία κρατάει ένα ξεχωριστό αντίγραφο κώδικα και δεδομένων.  Οι σελίδες του ιδιωτικού κώδικα και των δεδομένων μπορούν να εμφανιστούν οπουδήποτε στο λογικό χώρο διευθύνσεων.

40 Παράδειγμα διαμοιραζόμενων σελίδων

41 Κατάτμηση Σχήμα διαχείρισης μνήμης που υιοθετεί την οπτική του χρήστη για τα διάφορα τμήματα μνήμης. Το κάθε πρόγραμμα είναι μία συλλογή από τμήματα. Ένα τμήμα αντιπροσωπεύει μία λογική οντότητα όπως: το κυρίως πρόγραμμα, διαδικασίες - ρουτίνες, μεθόδους, αντικείμενα, τοπικές και καθολικές μεταβλητές, στοίβα, πίνακα συμβόλων, πίνακες

42 Το πρόγραμμα από την οπτική του χρήστη

43 Κατάτμηση user spacephysical memory space

44 Αρχιτεκτονική κατάτμησης Η λογική διεύθυνση είναι μία διπλέττα:, Πίνακας τμημάτων (Segment table) – απεικονίζει δισδιάστατες φυσικές διευθύνσεις. Η κάθε καταχώρηση του πίνακα περιέχει:  base–αναφέρεται στη φυσική διεύθυνση από την οποία ξεκινούν τα τμήματα τα οποία βρίσκονται στη κεντρική μνήμη.  limit–καθορίζει το μήκος του τμήματος. Segment-table base register (STBR) υποδεικνύει την θέση του πίνακα τμημάτων στην κύρια μνήμη. Segment-table length register (STLR) υποδεικνύει τον αριθμό των τμημάτων που χρησιμοποιούνται από ένα πρόγραμμα: ο αριθμός ενός τμήματος s είναι έγκυρος s < STLR.

45 Αρχιτεκτονική Κατάτμησης Προστασία. Σε κάθε καταχώρηση του πίνακα τμημάτων υπάρχει:  Bit εγκυρότητας (validation) = 0  το segment δεν είναι έγκυρο  Δικαιώματα read/write/execute Bits προστασίας σχετίζονται με τα τμήματα. Ο διαμοιρασμός κώδικα μπορεί να γίνει στο επίπεδο του τμήματος. Εφόσον τα τμήματα δεν έχουν σταθερό μήκος, η εκχώρηση μνήμης είναι ένα πρόβλημα δυναμικής ανάθεσης χώρου.

46 Hardware Κατάτμησης

47 Παράδειγμα Κατάτμησης

48 Διαμοιρασμός Τμημάτων

49 Κατάτμηση με σελιδοποίηση–MULTICS Το σύστημα MULTICS λύνει τα προβλήματα του εξωτερικού κατακερματισμού και των μεγάλων χρόνων αναζήτησης σελιδοποιώντας τα τμήματα. Η λύση αυτή είναι διαφορετική από την αμιγή κατάτμηση: ο πίνακας τμημάτων περιέχει καταχωρήσεις με την διεύθυνση βάσης του πίνακα σελίδων για το κάθε τμήμα.

50 MULTICS Σχήμα μετάφρασης διευθύνσεων

51 Κατάτμηση με σελιδοποίηση–Intel 386 Ο Intel 386 εφαρμόζει κατάτμηση με σελιδοποίηση για την διαχείριση της κυρίας μνήμης με ένα σχήμα σελιδοποίηση δύο επιπέδων.

52 Μετάφραση διευθύνσεων Intel 30386