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

Σχετικά έγγραφα
Υλισμικό Διαχείρισης Μνήμης (Memory Management Hardware)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα

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

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

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

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

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

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

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

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

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

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

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

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

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

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

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

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

Βασικές Έννοιες της Πληροφορικής

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

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

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

Επιτεύγµατα των Λ.Σ.

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

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

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

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

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

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

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

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

Transcript:

Ιστορική αναδροµή Πρώτοι υπολογιστές µικρή χωρητικότητα µνήµης (κόστος) διαίρεση προγραµµάτων σε τµήµατα επικάλυψης (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) Υλισµικό: καταχωρητής βάσης (Βase Register, BR) Τελική διεύθυνση εντολής αναφοράς στη µνήµη: [ΜΑR] = [πεδίου διεύθυνσης ΙR (εντολής) ] + [BR] υναµική µετάθεση (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 καταχωρητές (επιλογέων) τµηµάτων και ιεραρχικός µηχανισµός προστασίας

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

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

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

Σελιδοποίηση

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

Σελιδοποίηση Τελική διεύθυνση εντολής αναφοράς στη µνήµη: if ([[PTR] +p].present_bit ==1) [MAR] = [[PTR] + p].address + w; else διακοπή σφάλµατος σελίδας (page_fault interrupt) Προσφέρει και προστασία!

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

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

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

Σελιδοποίηση Συνειρµικοί καταχωρητές if (βρέθηκε) [MAR]:= [ASR]. address + w; else //!βρέθηκε if ([[PTR] + p].present_bit == 0) page_fault; else { [[PTR]+ [next ASR].page_number] = [next ASR]; [next ASR] = [[PTR] +p] ; [MAR]:= [next ASR]. address + w } next ASR: επόµενος συνειρµικός καταχωρητής (συνήθως κυκλική φόρτωση καταχωρητών)

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

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

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

ΤΕΜΑΧΙΣΜΟΣ (segmentation) Είναι η λογική οργάνωση/διαίρεση του εικονικού χώρου διευθύνσεων του προγράµµατος σε (λογικά) τµήµατα διαφορετικού µεγέθους που αντιστοιχούν στις (λογικές) δοµοενότητες (modules) του προγράµµατος οµάδες υποπρογραµµάτων οµάδες δοµών δεδοµένων δεν καταλαµβάνουν συνεχόµενο χώρο στη µνήµη δεν βρίσκονται όλα ταυτόχρονα στη µνήµη Υλοποίηση: πολλοί καταχωρητές βάσης και ορίου

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

ΤΕΜΑΧΙΣΜΟΣ (segmentation) Εικονικές διευθύνσεις Αριθµός τµήµατος (S) Αριθµός λέξης (W) πσδ λσδ Τελική διεύθυνση αναφοράς στη µνήµη if βρέθηκε then [MAR]:= [ASR]. address + W else (not βρέθηκε) if [[STR] + S].present_bit = 0 then segment_fault else { [[STR] + [next ASR].segment_mumber] = [next ASR]; [next ASR] = [[STR] +S]; if ([ASR].base + W > [ASR].limit) then protection_violation else [MAR] = [ASR]. base + W } segment_fault: διακοπή τµήµατος, προσκοµίζει το ζητούµενο τµήµα στη µνήµη Aν το ζητούµενο τµήµα δεν χωράει στη µνήµη, τότε ανταλλαγή (swapping) ολόκληρων τµηµάτων µεταξύ της κύριας και της βοηθητικής µνήµης

ΤΕΜΑΧΙΣΜΟΣ (segmentation) Όπως στη σελιδοποίηση Σελίδα ~ Τµήµα Τµήµατα: φορτωµένα σ οποιοδήποτε σηµείο της µνήµης Προστασία: καταχωρητής ορίου Συνειρµικοί καταχωρητές Εύκολη υλοποίηση (κατα)µερισµού τµηµάτων (έστω τµήµα S) o περιγραφητής του S περιλαµβάνεται στον πίνακα τµηµάτων των διεργασιών που το µοιράζονται ειδικό bit (κατα)µερισµού =1 διαφορετικά bits πρόσβασης µια διεργασία µπορεί να έχει δικαίωµα εγγραφής στο S οι υπόλοιπες διεργασίες µόνο δικαίωµα ανάγνωσης

ΤΕΜΑΧΙΣΜΟΣ (segmentation) Μειονέκτηµα ανταλλαγή τµηµάτων διαφορετικού µεγέθους σφάλµα τµήµατος = ολόκληρο το τµήµα πρέπει να µεταφερθεί από τη βοηθητική µνήµη στην κύρια µνήµη το κάθε τµήµα καταλαµβάνει µία συνεχόµενη περιοχή στη µνήµη εµφάνιση πολλών κενών περιοχών στη µνήµης (empty/free holes). Το φαινόµενο αυτό ονοµάζεται εξωτερικός θρυµµατισµός (external fragmentation)

ΤΕΜΑΧΙΣΜΟΣ (segmentation) Εξωτερικός θρυµµατισµός Κ: κατειληµµένες περιοχές µνήµης Ε: ελεύθερες περιοχές µνήµης Το τµήµα S δεν χωράει στη µνήµη, αν και Σ Ε i > S

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

ΤΕΜΑΧΙΣΜΟΣ ΜΕ ΣΕΛΙ ΟΠΟΙΗΣΗ Χρησιµοποιείται σήµερα στους περισσότερους υπολογιστές Κύρια µνήµη ισοµεγέθη πλαίσια Εικονική µνήµη τµήµατα/δοµοενότητες διαφορετικού µεγέθους Τµήµα ισοµεγέθεις σελίδες µε µέγεθος ίσο µε τα πλαίσια της µνήµης Για κάθε διεργασία Πίνακας (η βάση του) τµηµάτων Φυλάσσεται στον περιγραφητή της διεργασίας Για κάθε τµήµα ικός του πίνακας σελίδων Στοιχείο πίνακα τµηµάτων περιέχει τη βάση του πίνακα σελίδων του τµήµατος (αντί της βάσης του τµήµατος όπως στον τεµαχισµό)

ΤΕΜΑΧΙΣΜΟΣ ΜΕ ΣΕΛΙ ΟΠΟΙΗΣΗ Εικονικές διευθύνσεις Αριθµός Αριθµός λέξης (d) τµήµατος Αριθµός σελίδας (p) Αριθµός λέξης (d') (s) πσδ λσδ Τελική διεύθυνση αναφοράς στη µνήµη:

ΤΕΜΑΧΙΣΜΟΣ ΜΕ ΣΕΛΙ ΟΠΟΙΗΣΗ πίνακας των τµηµάτων: στην κύρια µνήµη πίνακας σελίδων: στη κύρια ή βοηθητική µνήµη πίνακας τµηµάτων, πίνακας σελίδων: πιθανώς σελιδοποιηµένοι Επιπλέον διακοπές Τρεις αναφορές? Συνειρµικοί καταχωρητές περιέχουν τους αριθµούς των τµηµάτων και τους αριθµούς των σελίδων τους που έχουν προσπελαστεί πρόσφατα (αριθµός τµήµατος, αριθµός σελίδας) αριθµός πλαισίου της µνήµης, που περιέχει τη ζητούµενη σελίδα

ΤΕΜΑΧΙΣΜΟΣ ΜΕ ΣΕΛΙ ΟΠΟΙΗΣΗ ηλικία: δείχνει πόσο πρόσφατα έχει προσπελαστεί µια σελίδα