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

Σχετικά έγγραφα
Υλισµικό διαχείρισης µνήµης (Memory management hardware)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λογισμικό διαχείρισης μνήμης (Memory management software)

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

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής

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

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

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

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

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Περιεχόµενα. ΠΡΟΛΟΓΟΣ... xix

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

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

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

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

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

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

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

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

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

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

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

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

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

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

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

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

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

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

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

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

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

Σελίδα Φορτώθηκε Προσπελάστηκε Συχνότητα R Μ (dirty)

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΕΡΩΤΗΣΕΙΣ ΓΙΑ ΕΠΑΝΑΛΗΨΗ

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ B' ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

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

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

ιαχείριση Μνήµης Κεφάλαιο 7 Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

Ε-85: Ειδικά Θέµατα Λογισµικού

Transcript:

Υλισμικό Διαχείρισης Μνήμης (Memory Management Hardware) Ιστορική αναδρομή Πρώτοι υπολογιστές μικρή χωρητικότητα μνήμης (κόστος) διαίρεση προγραμμάτων σε τμήματα επικάλυψης (overlay segments) που χωρούσαν στη μνήμη (επικάλυψη μνήμης) κάθε τμήμα επικάλυψης φορτωνόταν, εκτελούνταν, διάβαζε και φόρτωνε το επόμενο και του μετέφερε τον έλεγχο ο προγραμματιστής αποφάσιζε για τη διαίρεση των προγραμμάτων του σε τμήματα (segments) την αποθήκευση των τμημάτων στη βοηθητική μνήμη τη μεταφορά τους από τη βοηθητική στην κύρια μνήμη

Υλισμικό Διαχείρισης Μνήμης Πρώτοι μικροϋπολογιστές σχετικά μεγάλη μνήμη μικρό άμεσα προσπελάσιμο μέρος (~ 640 Kb) - γιατί? διαίρεση προγραμμάτων σε τμήματα δηλαδή ανεξάρτητα σύνολα υποπρογραμμάτων, π.χ. υποπρογράμματα που δίνουν αρχικές τιμές υποπρογράμματα που εμφανίζουν αποτελέσματα υποπρογράμματα που καλούνται σπάνια (όπως?) τα φωλιασμένα υποπρογράμματα ανήκουν στο ίδιο τμήμα δεν επηρεάζεται η σημασιολογία του προγράμματος ειδικές εντολές γλωσσών (π.χ. CHAIN στην BASIC και segment στη UCSD Pascal) στη μνήμη συνυπήρχε το κύριο πρόγραμμα + κάποιο/α τμήματα ΑΛΛΑ η διαίρεση σε ανεξάρτητα τμήματα είναι πολύ δύσκολη οι κλήσεις υποπρογραμμάτων εξαρτώνται από τα δεδομένα και πάλι ο προγραμματιστής χρειάζεται να κάνει πολύ δουλειά

Υλισμικό Διαχείρισης Μνήμης Πρώτα συστήματα πολυπρογραμματισμού (κατα)μερισμός μνήμης σε περισσότερα από ένα προγράμματα όλα τα προγράμματα δεν μπορούσαν να φορτωθούν ταυτόχρονα ανταλλαγή ολόκληρων προγραμμάτων (program swapping) μεταξύ βοηθητικής μνήμης (ΒΜ) και κύριας μνήμης (ΚΜ) φόρτωση του/των προγράμματος/των μιας διεργασίας από τη ΒΜ εκτέλεση τέλος κβάντου χρόνου ή η διεργασία εμποδίζεται αποθήκευση του/των προγράμματος/των της διεργασίας στη ΒΜ φόρτωση του/των προγράμματος/των της επόμενης διεργασίας στην ΚΜ ταυτόχρονη εκτέλεση (αν υπήρχε αρκετή μνήμη) της ανταλλαγής προγραμμάτων και της εκτέλεσης άλλων διεργασιών Μειονεκτήματα ανταλλαγής προγραμμάτων Τα προγράμματα και όλα τα υποπρογράμματά τους φορτώνονται μαζί τη μνήμη Συνήθως εκτελείται ένα υποσύνολο των υποπρογραμμάτων άσκοπη χρήση μνήμης Μεγάλος χρόνος επιβάρυνσης

Υλισμικό Διαχείρισης Μνήμης Στόχοι συστημάτων πολυπρογραμματισμού 1. Δυναμική Μεταθεσιμότητα (Dynamic Relocatability) γρήγορη τοποθέτηση των προγραμμάτων σε διαφορετικές θέσεις της μνήμης βελτιστοποίηση χρήσης της διαθέσιμης μνήμης 2. Προστασία (Protection) ακεραιότητα των διεργασιών απαγόρευση αλλαγής περιεχόμενων θέσεων της μνήμης που δεν ανήκουν στο χώρο των διευθύνσεών τους 3. Εικονική ή Λογική Μνήμη (Virtual or Logical Memory) Λογική αφαίρεση - διεύρυνση φυσικής μνήμης απαλλάσσει τους χρήστες τον περιορισμό χωρητικότητας της φυσικής μνήμης 4. Λογική Οργάνωση/Διαίρεση των Προγραμμάτων Σε τμήματα-δομοενότητες (modules) Με ανεξαρτησία μετάφρασης, προστασίας και (κατα)μερισμού

Υλισμικό Διαχείρισης Μνήμης Αναφορά διεύθυνσης μέσω καταχωρητή βάσης (base register addressing) Υλισμικό: καταχωρητής βάσης (Base Register, BR) Τελική διεύθυνση εντολής αναφοράς στη μνήμη: [ΜΑR] = [πεδίου διεύθυνσης ΙR (εντολής) ] + [BR] (βλ. Τόμο Ι Κεφ. 3.5) Δυναμική μετάθεση (dynamic relocation) των προγραμμάτων! Μεταγλώττιση ως προς τη διεύθυνση 0 της μνήμης Φόρτωση (δυναμική) σ οποιαδήποτε διεύθυνση της μνήμης (διεύθυνση βάσης) ΑΡΚΕΙ να αποθηκευτεί η διεύθυνση αυτή στον BR Ο δυναμικός φορτωτής δε χρειάζεται ν αλλάξει τα πεδία διεύθυνσης των εντολών αναφοράς στη μνήμη

Υλισμικό Διαχείρισης Μνήμης Αναφορά διεύθυνσης μέσω καταχωρητή βάσης Τα περιεχόμενα των ΒRs φυλάσσονται στο περιβάλλον/περιγραφητή των διεργασιών Περισσότεροι από ένας BRs (κώδικα, δεδομένων, στοίβας, ), π.χ. στους 8086και 80286: 4 BRs Εντολή φόρτωσης του BR με μία διεύθυνση βάσης Προνομιούχος ή μέρος μιας άλλης προνομιούχου εντολής Δεν προσφέρει καμία προστασία!

Υλισμικό Διαχείρισης Μνήμης Αναφορά διεύθυνσης μέσω καταχωρητών βάσης και ορίου ΒR + καταχωρητής ορίου (Limit Register, LR) περιέχει τη μέγιστη διεύθυνση του τμήματος ή BR + καταχωρητής μήκους (Length Register, LeR) περιέχει το μήκος του τμήματος Τελική διεύθυνση εντολής αναφοράς στη μνήμη: [ΜΑR] = [πεδίο διεύθυνσης ΙR ] + [BR]

Υλισμικό Διαχείρισης Μνήμης Αναφορά διεύθυνσης μέσω καταχωρητών βάσης και ορίου Σύγκριση [ΜΑR] ~ [LR] ή σύγκριση [πεδίο διεύθυνσης ΙR ] ~ [LeR] if ([πεδίο διεύθυνσης ΙR (εντολής)] + [BR] > [LR]) // ή if ([πεδίο διεύθυνσης ΙR (εντολής)] >[LeR]) σήμανε παγίδα_παραβίασης_της_μνήμης (memory_violation_trap); else [MAR] = [πεδίο διεύθυνσης ΙR ] + [BR]; Προσφέρει προστασία! 80286: 4 LRs 80386: 6 καταχωρητές (επιλογέων) τμημάτων και ιεραρχικός μηχανισμός προστασίας

Υλισμικό Διαχείρισης Μνήμης Αναφορά διεύθυνσης μέσω καταχωρητών βάσης και ορίου Με δύο ζεύγη καταχωρητών βάσης και ορίου (ή μήκους) Εύκολη υλοποίηση επανεισαγόμενων προγραμμάτων (αμιγών διαδικασιών) Εκτέλεση P1 Εκτέλεση Ρ2 --------

Υλισμικό Διαχείρισης Μνήμης Αναφορά διεύθυνσης μέσω καταχωρητών βάσης και ορίου Ο μεταγλωττιστής /συμβολομεταφραστής δημιουργεί Τμήμα(τα) κώδικα (Π) Τμήμα(τα) δεδομένων (Δ) Κάθε διεργασία έχει το/τα δικό/ά της τμήμα/τα δεδομένων Το τμήμα κώδικα μιας αμιγούς διαδικασίας μπορεί να χρησιμοποιηθεί από πολλές διεργασίες Το μέγεθος της εικονικής μνήμης είναι αναγκαστικά μικρότερο από το τη χωρητικότητα της φυσικής μνήμης (δεν παρέχει εικονική μνήμη)

Σελιδοποίηση (Paging) Υλισμικό διαχείρισης μνήμης Η κύρια μνήμη (χώρος φυσικών διευθύνσεων) είναι χωρισμένη σε ισομεγέθεις περιοχές γνωστές ως πλαίσια σελίδων (page frames) Τα προγράμματα των διεργασιών (χώρος εικονικών διευθύνσεων) είναι διηρημένα σε σελίδες (pages) του ιδίου μεγέθους γνωστού ως μεγέθους σελίδας (page size) ίσου με το μέγεθος των πλαισίων της μνήμης, έτσι ώστε κάθε στιγμή: μερικές από τις σελίδες αυτές να είναι ενεργές (active), δηλαδή να βρίσκονται στην κύρια μνήμη, ενώ οι υπόλοιπες να είναι μη ενεργές (inactive), δηλαδή να βρίσκονται στη βοηθητική μνήμη. Έτσι: Προσφέρει Εικονική Μνήμη

Σελιδοποίηση Υλισμικό Διαχείρισης Μνήμης

Σελιδοποίηση Υλισμικό Διαχείρισης Μνήμης Το πεδίο διεύθυνσης εντολών αναφοράς στη μνήμη θεωρείται διηρημένο σε: αριθμός σελίδας (p) αριθμός λέξης (w) πσδ λσδ Aπομόνωση των p και w από το υλισμικό Πίνακας Σελίδων (Page Table, PT) για κάθε διεργασία Στοιχείο πίνακα = περιγραφητής σελίδας (page descriptor) δυφίο παρουσίας (present bit) στην κύρια μνήμη διεύθυνση της σελίδας στη μνήμη (κύρια/βοηθητική) άλλα δυφία (προστασίας, χρήσης, ) present_bit address Αποθηκεύεται (η βάση του) στο περιβάλλον/περιγραφητή της διεργασίας Καταχωρητής Πίνακα Σελίδων (Page Table Register, PTR) περιέχει τη διεύθυνση βάσης του πίνακα των σελίδων της τρέχουσας διεργασίας

Υλισμικό Διαχείρισης Μνήμης Σελιδοποίηση Τελική διεύθυνση εντολής αναφοράς στη μνήμη: if ([[PTR] +p].δυφίο_παρουσίας ==1) [MAR] = [[PTR] + p].διεύθυνση (πλαισίου) + w; else σήμανε διακοπή_σφάλματος_σελίδας (page_fault_interrupt); Μπορεί να προσφέρει και προστασία

Σελιδοποίηση Υλισμικό Διαχείρισης Μνήμης Διακοπή σφάλματος σελίδας (page fault) εξυπηρετείται από την αντίστοιχη διαδικασία εξυπηρέτησης του πυρήνα που αφυπνίζει το διαχειριστή της μνήμης. Αυτός: αποφασίζει ποια από τις σελίδες στην κύρια μνήμη θα αντικατασταθεί (αν δεν υπάρχει κενό πλαίσιο) αποθηκεύει τη σελίδα αυτή στη βοηθητική μνήμη (αν έχει αλλοιωθεί από τότε που φορτώθηκε) φορτώνει τη ζητούμενη σελίδα από τη βοηθητική στην κύρια μνήμη ενημερώνει τον πίνακα σελίδων της διεργασίας συνεχίζεται η εκτέλεση της διεργασίας

Σελιδοποίηση Υλισμικό Διαχείρισης Μνήμης Μειονέκτημα χρειάζονται δύο προσπελάσεις για την κάθε αναφορά στη μνήμη μία προσπέλαση για τον πίνακα των σελίδων, και μία για την τελική διεύθυνση Λύση: συνειρμικοί καταχωρητές ή καταχωρητές συσχέτισης (associative registers, ASRs): περιέχουν αντίγραφα των περιγραφητών των σελίδων της τρέχουσας διεργασίας στις οποίες έγιναν οι πιο πρόσφατες αναφορές αυτόματη (από το υλισμικό) σύγκριση του p με τους αριθμούς των σελίδων που περιέχονται στους ASRs (caching) βρέθηκε αποφυγή της προσπέλασης του πίνακα σελίδων οι περισσότερες αναφορές γίνονται στις σελίδες που έχουν προσπελαστεί πρόσφατα δε βρέθηκε προσπέλαση πίνακα των σελίδων της διεργασίας, όπως παραπάνω

Σελιδοποίηση Συνειρμικοί καταχωρητές Υλισμικό Διαχείρισης Μνήμης Διανομή νέας διεργασίας Διαγραφή περιεχομένων ASRs (αναφέρονται σε άλλη διεργασία) Πρόβλημα: Καθυστέρηση διανομής Λύση: κάθε ASR περιέχει είτε ένα δυφίο που υποδεικνύει της διεργασίας (τρέχουσα/μη τρέχουσα) είτε ένα πεδίο ταυτότητας της διεργασίας στην οποία ανήκει η σελίδα συνήθως 8-16 ASRs αρκούν

Σελιδοποίηση Συνειρμικοί καταχωρητές Υλισμικό Διαχείρισης Μνήμης if (βρέθηκε) [MAR]:= [ASR].διεύθυνση (πλαισίου) + w; else //!βρέθηκε if ([[PTR] + p].δυφίο_παρουσίας == 1) {[[ PTR] + [επόμενος_asr].αριθμός_σελίδας] = [επόμενος_asr]; // επόμενος συνειρμικός καταχωρητής [επόμενος_asr] = [[PTR]+ p]; // συνήθως // κυκλική φόρτωση των καταχωρητών [MAR]:= [επόμενος_asr]. διεύθυνση (πλαισίου)

else σήμανε σφάλμα_σελίδας (page_fault); + w };

Σελιδοποίηση Συνειρμικοί καταχωρητές Υλισμικό Διαχείρισης Μνήμης Διακοπή σφάλματος σελίδας (page fault) εξυπηρετείται από την αντίστοιχη διαδικασία εξυπηρέτησης του πυρήνα αφυπνίζεται ο διαχειριστής μνήμης Αποφασίζει ποια από τις σελίδες στην κύρια μνήμη θα αντικατασταθεί (αν δεν υπάρχει κενό πλαίσιο) Αποθηκεύει τη σελίδα αυτή στη βοηθητική μνήμη προσκομίζει τη ζητούμενη σελίδα από τη βοηθητική μνήμη ενημερώνει τον πίνακα σελίδων της διεργασίας ενημερώνει τους ASRs: - αποθηκεύει τα περιεχόμενα του επόμενου συνειρμικού καταχωρητή στον αντίστοιχο περιγραφητή του πίνακα σελίδων της διεργασίας - φορτώνει στον επόμενο συνειρμικό καταχωρητή τον περιγραφητή της διεργασίας συνεχίζει η εκτέλεση της διεργασίας Υλοποίηση Μονάδα Διαχείρισης Μνήμης (Memory Management Unit, MMU) μεταξύ ΚΜΕ και κύριας μνήμης για την απεικόνιση των εικονικών διευθύνσεων σε φυσικές. Αποτελεί μέρος του ημιαγωγικού πλινθίου της ΚΜΕ (CPU chip)

Σελιδοποίηση Κριτική Επιτυχία τριών από τους τέσσερις στόχους Δυναμική μεταθεσιμότητα Προστασία Εικονική μνήμη Υλισμικό Διαχείρισης Μνήμης Σελίδες κώδικα επανεισαγόμενων προγραμμάτων Δυνατότητα (κατα)μερισμού τους από πολλές διεργασίες Πρόβλημα Η τελευταία σελίδα των προγραμμάτων πιθανώς δεν καλύπτει δεν καλύπτει πλήρως το πλαίσιο της φυσικής μνήμης που την φιλοξενεί. Το φαινόμενο αυτό ονομάζεται εσωτερικός θρυμματισμός (internal fragmentation) Μικρός βαθμός χρήσης μνήμης Λύση Λογική οργάνωση προγραμμάτων σε δομοενότητες διαφορετικού μεγέθους, δηλαδή Τεμαχισμός (Segmentation)

Τεμαχισμός (Segmentation) Υλισμικό Διαχείρισης Μνήμης Είναι η λογική οργάνωση/διαίρεση του εικονικού χώρου διευθύνσεων του προγράμματος σε (λογικά) τμήματα διαφορετικού μεγέθους που αντιστοιχούν στις (λογικές) δομοενότητες (modules) του προγράμματος ομάδες υποπρογραμμάτων ομάδες δομών δεδομένων δεν καταλαμβάνουν συνεχόμενο χώρο στη μνήμη δε βρίσκονται όλα ταυτόχρονα στη μνήμη Υλοποίηση: πολλοί καταχωρητές βάσης και ορίου

Υλισμικό διαχείρισης μνήμης Τεμαχισμός Πίνακας Τμημάτων (Segment Table, ST) για κάθε διεργασία Στοιχείο ST = Περιγραφητής Τμήματος (Segment Descriptor) διεύθυνση βάσης στην κύρια ή στη βοηθητική μνήμη το όριό (ή το μήκος) του δυφίο παρουσίας του στην κύρια μνήμη (present_bit) δυφίο (κατα)μερισμού του (sharing_bit) δυφία προσπέλασης του (access_bits) Άλλα δυφία Προσπέλασης μέχρι τώρα Τροποποίησης ( αν έχει λερωθεί ) κ.ά. Ο ST (η βάση του) φυλάσσεται στο περιβάλλον/περιγραφητή κάθε διεργασίας Καταχωρητής Πίνακα Τμημάτων (Segment Table Register, STR) φορτώνεται με τη διεύθυνση βάσης του πίνακα τμημάτων της τρέχουσας διεργασίας

Υλισμικό διαχείρισης μνήμης Τεμαχισμός Εικονικές διευθύνσεις αριθμός τμήματος (s) αριθμός λέξης (w) πσδ λσδ Τελική διεύθυνση αναφοράς στη μνήμη if (βρέθηκε) [MAR]:= [ASR].address + w else //!βρέθηκε if ([[STR] + s]. δυφίο_παρουσίας == 0) σήμανε σφάλμα_τμήματος (segment_fault); else { [[STR] + [επόμενος_asr].αριθμός_τμήματος] = [επόμενος_asr]; [επόμενος_asr] = [[STR] +s]; if ([ASR].βάση + w > [ASR].όριο) σήμανε_σφάλμα_παραβίασης_της_προστασίας (protection_violation_fault); else [MAR] = [ASR].βάση + w } σφάλμα_τμήματος (segment_fault): διακοπή τμήματος, προσκομίζεται το ζητούμενο τμήμα στη μνήμη

αν το ζητούμενο τμήμα δε χωράει στη μνήμη, τότε ανταλλαγή (swapping) ολόκληρων τμημάτων μεταξύ της κύριας και της βοηθητικής μνήμης

Τεμαχισμός Υλισμικό Διαχείρισης Μνήμης Όπως στη σελιδοποίηση Σελίδα ~ Τμήμα Τμήματα: φορτωμένα σ οποιοδήποτε σημείο της μνήμης Προστασία: καταχωρητής ορίου Συνειρμικοί καταχωρητές Εύκολη υλοποίηση (κατα)μερισμού τμημάτων (έστω ένα τμήμα S) o περιγραφητής του S περιλαμβάνεται στον πίνακα τμημάτων των διεργασιών που το μοιράζονται ειδικό δυφίο (κατα)μερισμού = 1 διαφορετικά δυφία πρόσβασης μια διεργασία μπορεί να έχει δικαίωμα εγγραφής στο S οι υπόλοιπες διεργασίες έχουν μόνο δικαίωμα ανάγνωσης

Υλισμικό Διαχείρισης Μνήμης Τεμαχισμός Μειονέκτημα ανταλλαγή τμημάτων διαφορετικού μεγέθους όταν συμβεί σφάλμα τμήματος τότε ολόκληρο το τμήμα πρέπει να μεταφερθεί από τη βοηθητική μνήμη στην κύρια μνήμη το κάθε τμήμα καταλαμβάνει μία συνεχόμενη περιοχή στη μνήμη εμφάνιση πολλών κενών περιοχών στη μνήμης (empty/free holes). Το φαινόμενο αυτό ονομάζεται εξωτερικός θρυμματισμός (external fragmentation)

Υλισμικό Διαχείρισης Μνήμης Τεμαχισμός Εξωτερικός θρυμματισμός Κ: κατειλημμένες περιοχές μνήμης Ε: ελεύθερες περιοχές μνήμης το τμήμα S δεν χωράει στη μνήμη, αν και ΣΕ i > S

Τεμαχισμός Εξωτερικός θρυμματισμός Υλισμικό Διαχείρισης Μνήμης Λύση μετάθεση/αντιγραφή των Κ2 ως Κ8 μία ελεύθερη περιοχή και μία συνεχόμενη κατειλημμένη περιοχή στα αντίθετα άκρα της μνήμης. Η τεχνική αυτή ονομάζεται συμπύκνωση (compaction) ή αποκομιδή απορριμμάτων (garbage collection) χρονοβόρα μόνο σε υπολογιστές που διαθέτουν ειδικό υλισμικό αντιγραφής μεγάλης ταχύτητας

Υλισμικό διαχείρισης μνήμης Τεμαχισμός με Σελιδοποίηση (Paged Segmentation) χρησιμοποιείται σήμερα στους περισσότερους υπολογιστές κύρια μνήμη ισομεγέθη πλαίσια εικονική μνήμη τμήματα/δομοενότητες διαφορετικού μεγέθους τμήμα ισομεγέθεις σελίδες με μέγεθος ίσο με τα πλαίσια της μνήμης Για κάθε διεργασία πίνακας (η βάση του) τμημάτων φυλάσσεται στον περιγραφητή της διεργασίας Για κάθε τμήμα δικός του πίνακας σελίδων Στοιχείο πίνακα τμημάτων περιέχει τη βάση του πίνακα σελίδων του τμήματος (αντί της βάσης του τμήματος όπως στον τεμαχισμό)

Τεμαχισμός με σελιδοποίηση Εικονικές διευθύνσεις Υλισμικό διαχείρισης μνήμης Αριθμός Αριθμός λέξης (w) τμήματος Αριθμός σελίδας (p) Αριθμός λέξης (w') (s) πσδ λσδ

Τεμαχισμός με σελιδοποίηση Τελική διεύθυνση αναφοράς στη μνήμη: Υλισμικό διαχείρισης μνήμης

Υλισμικό Διαχείρισης Μνήμης Τεμαχισμός με σελιδοποίηση πίνακας των τμημάτων: στην κύρια μνήμη πίνακας σελίδων: στη κύρια ή βοηθητική μνήμη πίνακας τμημάτων, πίνακας σελίδων: πιθανώς σελιδοποιημένοι Επιπλέον διακοπές Τρεις αναφορές? Συνειρμικοί καταχωρητές περιέχουν τους αριθμούς των τμημάτων και τους αριθμούς των σελίδων τους που έχουν πρόσφατα προσπελαστεί (αριθμός τμήματος, αριθμός σελίδας) αριθμός πλαισίου της μνήμης, που περιέχει τη ζητούμενη σελίδα

Τεμαχισμός με σελιδοποίηση Υλισμικό Διαχείρισης Μνήμης ηλικία: δείχνει πόσο πρόσφατα έχει προσπελαστεί μια σελίδα