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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

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

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

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

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

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

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

Ενότητα 2: Η κρυφή µνήµη και η λειτουργία της

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

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

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

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

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

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

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

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

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

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

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

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

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

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

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

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

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

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

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

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

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

ροµολόγηση Επεξεργαστή

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

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

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

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

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

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

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

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

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

Transcript:

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

Για τη δηµιουργία των διαφανειών έχει χρησιµοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, Operating Systems Concepts, 6 th & 7 th Edition. Οι διαφάνειες αυτές βρίσκονται στο δικτυακό τόπο: http://www.cs.purdue.edu/homes/yau/cs503/

Εισαγωγή Θεωρητικό υπόβαθρο Σελιδοποίηση κατ απαίτηση (demand paging) ηµιουργία διεργασίας Αντικατάσταση σελίδας (page replacement) Ανάθεση πλαισίων Λυγισµός (thrashing) Παραδείγµατα λειτουργικών συστηµάτων Σελίδα 3

Θεωρητικό Υπόβαθρο Χρησιµοποιείται λογική διευθυνσιοδότηση, οπότε ένα πρόγραµµα δεν χρειάζεται να αποθηκευτεί σε συνεχόµενες περιοχές µνήµης Υποστηρίζονται χώροι διευθύνσεων που ξεπερνούν την φυσική µνήµη πουείναιδιαθέσιµη, οπότε το µέγεθος ενός προγράµµατος µπορεί να ξεπερνά -κατά πολύ- την διαθέσιµη φυσικήµνήµη Σελίδα 4

Εικονική Μνήµη Μεγαλύτερη από τη Φυσική Μνήµη Σελίδα 5

Θεωρητικό Υπόβαθρο (συνέχεια) Η εκτέλεση του προγράµµατος είναι εφικτή χωρίς να έχει φορτωθεί ολόκληρο στην φυσική µνήµη του συστήµατος Επιτρέπει τον διαµοιρασµό λογικών χώρων διευθύνσεων ανάµεσα σε διεργασίες και την αποτελεσµατικότερη δηµιουργία διεργασιών Η ιδεατή µνήµη µπορεί να υλοποιηθεί µε: Σελιδοποίηση κατ απαίτηση (demand paging) Κατάτµηση κατ απαίτηση (demand segmentation) Σελίδα 6

Εικονικός Χώρος ιευθύνσεων Αντίληψη χρήστη για τον τρόπο αποθήκευσης µιας διεργασίας στη µνήµη (εικονικός χώρος): Συνεχόµενες θέσεις µνήµης (0 max) Ανεξάρτητος από τη φυσική µνήµη Χώρος για δυναµική ανάθεση µνήµης (heap) Στοίβα (stack) για φύλαξη τοπικών µεταβλητών και παραµέτρων Σελίδα 7

ιαµοιραζόµενη Βιβλιοθήκη µε Χρήση Εικονικής Μνήµης Σελίδα 8

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

Μεταφορά Σελίδων από/προς την Κύρια Μνήµη Σελίδα 10

Bit Εγκυρότητας Με κάθε καταχώρηση του πίνακα σελίδων συσχετίζεται ένα bit εγκυρότητας (1 στη µνήµη, 0 όχι στη µνήµη) Παράδειγµα στιγµιότυπου του πίνακα σελίδων: Πίνακας σελίδων # Πλαισίου M bit εγκυρότητας 1 1 1 0 0 Κατά τη µετάφραση των διευθύνσεων, αν το bit εγκυρότητας στην καταχώρηση του πίνακα σελίδων είναι 0 σφάλµα σελίδας(page fault) Σελίδα 11

Πίνακας Σελίδων όταν κάποιες Σελίδες δε βρίσκονται στην Κύρια Μνήµη Σελίδα 12

Σφάλµα Σελίδας(Page Fault) Όταν υπάρξει αναφορά σε σελίδα, η πρώτη αναφορά θα πιαστεί (trap) από το ΛΣ δηµιουργία σφάλµατος σελίδας 1. To ΛΣ κοιτάζει έναν πίνακα (PCB) για να αποφασίσει: Αν η αναφορά είναι µη-έγκυρη, οπότε και διακόπτει Αν απλά και µόνο η σελίδα δεν είναι στη µνήµη 2. Επιλογή ενός άδειου πλαισίου 3. Μεταφορά της σελίδας στο πλαίσιο αυτό 4. Τροποποίηση των πινάκων έτσι ώστε να δείχνουν ότι η σελίδα είναι στη µνήµη (πίνακας σελίδων και εσωτερικός) 5. Επανεκκίνηση της εντολής που είχε προκαλέσει το σφάλµα σελίδας Σελίδα 13

Σχηµατική Απεικόνιση ιαδικασίας Χειρισµού Σφάλµατος Σελίδας Σελίδα 14

Εικονική Μνήµη και ηµιουργία ιεργασίας Η εικονική µνήµη δίνει τα ακόλουθα πλεονεκτήµατα κατά τη δηµιουργία διεργασιών: Αντιγραφή κατά την τροποποίηση (copy-on-write) Αντιστοίχηση αρχείων στη µνήµη (memory-mapped files) Σελίδα 15

Αντιγραφή κατά την Τροποποίηση Η αντιγραφή κατά την τροποποίηση (copy-on-write) επιτρέπει στην πατρική και τη θυγατρική διεργασία να µοιράζονται αρχικά τις ίδιες σελίδες Η σελίδα αντιγράφεται, µόνο όταν κάποια από τις διεργασίες την τροποποιήσει Επιτρέπει περισσότερο αποδοτική δηµιουργία διεργασίας, καθώς δηµιουργούνται αντίγραφα µόνο για τις σελίδες που τροποποιούνται Οι ελεύθερες σελίδες ανατίθενται από µια δεξαµενή κενών σελίδων Σελίδα 16

Αντιστοίχηση Αρχείων στη Μνήµη Τµήµατα του αρχείου αντιστοιχίζονται σε σελίδες Το Ι/Ο αντιµετωπίζεται ως τυπική προσπέλαση µνήµης Το αρχείο διαβάζεται αρχικά µε σελιδοποίηση κατ απαίτηση, και οι επακόλουθες αναφορές στο αρχείο αντιµετωπίζονται ως ανάγνωση και εγγραφή στη µνήµη Απλοποίηση της πρόσβασης για Ι/Ο στο αρχείο (µέσω µνήµης παρά µέσω κλήσεων συστήµατος read(), write()) Επιτρέπει σε πολλές διεργασίες να διαµοιραστούν το ίδιο αρχείο µέσω του µηχανισµού διαµοιρασµού σελίδων/πλαισίων µνήµης Σελίδα 17

Σχηµατική Απεικόνιση Αντιστοίχισης Αρχείων στην Μνήµη Σελίδα 18

Αντικατάσταση Σελίδας (Page Replacement) Όταν δεν υπάρχει άδειο πλαίσιο στο οποίο να φορτωθεί µια σελίδα που µεταφέρεται από τον δίσκο, επιλέγεται ένα δεσµευµένο πλαίσιο Επιθυµητός ένας αλγόριθµος ο οποίος να οδηγεί σε ελάχιστο αριθµό απόσφάλµατα µνήµης, και άρα σε ελάχιστο αριθµό µεταφορών σελίδων από/προς το αποθηκευτικό µέσο Σελίδα 19

Αντικατάσταση Σελίδας (συνέχεια) Χρήση του bit τροποποίησης (modify ή dirty bit) για µείωση του φόρτου µεταφοράς σελίδων (µόνο οι τροποποιηµένες σελίδες ξαναγράφονται στο δίσκο σε περίπτωση αντικατάστασης σελίδας) Η αντικατάσταση σελίδας ολοκληρώνει το διαχωρισµό λογικής και φυσικής µνήµης µεγάλη λογική µνήµη µπορεί να παρέχεται µε µια µικρότερη φυσική µνήµη Σελίδα 20

ιαδικασία Αντικατάστασης Σελίδας 1. Εντοπισµός της θέσης της επιθυµητής σελίδας στο δίσκο 2. Εύρεση ελεύθερου πλαισίου: Αν υπάρχει ελεύθερο πλαίσιο, χρησιµοποίησέ το Αν δεν υπάρχει ελεύθερο πλαίσιο, χρησιµοποίησε αλγόριθµο εντοπισµό του πλαισίου θύµατος (victim frame) για την επιλογή του πλαισίου που θα αντικατασταθεί 3. ιάβασε τη σελίδα µέσα στο ελεύθερο πλαίσιο 4. Ενηµέρωσε τον πίνακα σελίδων της διεργασίας (και πιθανά τον πίνακα πλαισίων που τηρεί το ΛΣ) 5. Επανεκκίνηση της διεργασίας Σελίδα 21

Σχηµατική Αναπαράσταση Αντικατάστασης Σελίδας Σελίδα 22

Απόδοση Ένα σφάλµα σελίδας, «πιάνεται» απότολσ Αποθήκευση των καταχωρητών χρήστη και της κατάστασης της διεργασίας Προσδιορισµόςτηςδιακοπήςωςσφάλµα σελίδας Έλεγχος εγκυρότητας αναφοράς στη σελίδα και προσδιορισµός της θέσης της στο δίσκο Σελίδα 23

Απόδοση (συνέχεια) Ανάγνωση από το δίσκο σε ένα ελεύθερο πλαίσιο. Περιλαµβάνει: πιθανή αναµονή στην ουρά του δίσκου, αναµονή για αναζήτηση και καθυστέρηση (seek and latency) µεταφορά της σελίδας από το δίσκο Πιθανή ανάθεση της ΚΜΕ σε άλλη διεργασία ιακοπή λόγω ολοκλήρωσης Ι/Ο από το δίσκο Σελίδα 24

Απόδοση (συνέχεια) Αποθήκευση της κατάστασης της διεργασίας που εκτελείται Προσδιορισµός ότι η διακοπή είναι από το δίσκο ιόρθωση πίνακα σελίδων και άλλων πιθανά πινάκων Αναµονή για ανάθεση της ΚΜΕ ξανά στη διεργασία αυτή Αποκατάσταση κατάστασης διεργασίας και καταχωρητών χρηστών και επανεκκίνηση της εντολής που προκάλεσε το σφάλµα σελίδας Σελίδα 25

Απόδοση (συνέχεια) Πιθανότητα σφάλµατος σελίδας, p: 0 p 1 Αν p = 0, δεν υπάρχουν λάθη σελίδας Αν p = 1, κάθε αναφορά στη µνήµη προκαλεί σφάλµα σελίδας Πραγµατικός χρόνος πρόσβασης (effective access time EAT) EAT = (1 p) x χρόνος προσπέλασης στη µνήµη + p (φόρτος σφάλµατος σελίδας + [µεταφορά σελίδας εκτός] + µεταφορά σελίδας εντός + φόρτος επανεκκίνησης) Σελίδα 26

Παράδειγµα Χρόνος πρόσβασης κύριας µνήµης = 1µs Με πιθανότητα 0.5 τα περιεχόµενα του πλαισίου που αντικαθίσταται έχουν αλλάξει, οπότε πρέπει να αντιγραφεί στο αποθηκευτικό µέσο Χρόνος µεταφοράς πλαισίου από/προς αποθηκευτικό µέσο = 10ms Μέσος χρόνος αντικατάστασης: swap time = 0.5 x 10ms + 10ms = 15 ms = 15000 µs Πραγµατικός χρόνος πρόσβασης: ΕΑΤ = (1 - p) x 1µs + p x swap time = 1 - p + 15000p µs = ~ 1 + 15000p µs Σελίδα 27

Μελέτη Αλγορίθµων Αντικατάστασης Σελίδων Στόχος: Οχαµηλότερος δυνατός ρυθµός λαθών σελίδας Προσδιορισµός συγκεκριµένης ακολουθίας αναφορών σελίδων (memory references) που ονοµάζεται συµβολοσειρά αναφοράς (reference string) Αξιολόγηση του αλγορίθµου µετρώντας την επίδοση του (αριθµό λαθώνσελίδας) για τη συγκεκριµένη συµβολοσειρά αναφοράς Σελίδα 28

Αναµενόµενη Συµπεριφορά Συστήµατος Σελίδα 29

Ο Βέλτιστος Αλγόριθµος (Optimal Algorithm) Ποιά είναι η ιδιότητα του ιδανικού ή βέλτιστου αλγορίθµου, που ελαχιστοποιεί τον αριθµό σφαλµάτων; O αλγόριθµος να αντικαθιστά κάθε φορά εκείνη την σελίδα που δεν πρόκειται να χρησιµοποιηθεί από το πρόγραµµα γιατοµεγαλύτερο χρονικό διάστηµα κατά την προσεχή εκτέλεση Πως, όµως, µπορούµε να υλοποιήσουµε αυτήτην ιδιότητα; Xρησιµοποιείται ουσιαστικά και ως σηµείο αναφοράς για το πόσο καλά λειτουργούν οι υπόλοιποι (πραγµατικοί) αλγόριθµοι Σελίδα 30

Βέλτιστη Αντικατάσταση Σελίδων Σελίδα 31

Αλγόριθµος First-In-First-Out (FIFO) Η επιλογή του θύµατος προς αντικατάσταση γίνεται µε βάση την ηλικία της σελίδας Ως θύµα επιλέγεται κάθε φορά που η πιο παλιά σελίδα, δηλαδή αυτή που έχει παραµείνει στην µνήµη το µεγαλύτερο χρονικό διάστηµα εν χρησιµοποιείται πληροφορία για την συχνότητα χρήσης των σελίδων, ούτε για το πόσο πρόσφατα έχουν χρησιµοποιηθεί ΗαντικατάστασηFIFO παρουσιάζει το παράδοξο του Belady Σελίδα 32

Αλγόριθµος FIFO - Παράδειγµα Σελίδα 33

Το Παράδοξο του Belady Συµβολοσειρά αναφοράς: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 πλαίσια: 1 2 1 2 4 1 5 3 9 page faults 3 3 2 4 4 πλαίσια: 1 2 1 2 5 1 4 5 10 page faults 3 3 2 4 4 3 Σελίδα 34

Το Παράδοξο του Belady Σελίδα 35

Αλγόριθµος Least Recently Used (LRU) Επιλέγεται η σελίδα που χρησιµοποιήθηκε λιγότερο πρόσφατα (δεν είναι απαραίτητα αυτή που χρησιµοποιήθηκε συνολικά λιγότερο!) Χρησιµοποιείται ένα ρολόι Κάθε καταχώρηση στον πίνακα σελίδων έχει µια χρονοσφραγίδα (timestamp) Κάθε φορά που γίνεται µια αναφορά σελίδας τα περιεχόµενα του ρολογιού αντιγράφονται στο αντίστοιχο πεδίο του πίνακα σελίδων Επιλογή της σελίδας µε τηµικρότερη χρονοσφραγίδα Σελίδα 36

Αντικατάσταση Σελίδων µε τονlru Σελίδα 37

Υλοποίηση LRU µε Στοίβα Τήρηση στοίβας µε αριθµούς σελίδων Η στοίβα υλοποιείται µε διπλά συνδεδεµένη λίστα µεταξύ των στοιχείων του πίνακα σελίδων Όταν γίνεται αναφορά σε µια σελίδα, αυτή µετακινείται στην κορυφή της στοίβας (γίνεται αλλαγή δεικτών) Στη χειρότερη περίπτωση απαιτείται αλλαγή 6 δεικτών Πολύ πιο γρήγορο από τη σύγκριση τιµών των χρονοσφραγίδων των καταχωρήσεων του πίνακα Σελίδα 38

Απεικόνιση Κατάστασης Στοίβας Σελίδα 39

Αλγόριθµος LRU (συνέχεια) Τόσο ο βέλτιστος αλγόριθµος όσο και ο LRU (όπως και κάθε αλγόριθµος στοίβας*) δεν πάσχουν από το παράδοξο του Belady (*) Αλγόριθµος στοίβας θεωρείται ένας αλγόριθµος όταν µπορεί να αποδειχθεί ότι το σύνολο των σελίδων που βρίσκονται στη µνήµη για n πλαίσια, είναι υποσύνολο των σελίδων που θα βρίσκονταν στη µνήµη γιαn+1 πλαίσια Η όποια υλοποίηση του LRU, απαιτεί ειδικό υλικό, αφού η ενηµέρωση του πίνακα σελίδων ή της στοίβας πρέπει να γίνεται σε κάθε αναφορά σελίδας (ο χειρισµός της κατάστασης αυτής από λογισµικό θα επιβάρυνε πολύ το χρόνο εκτέλεσης των διεργασιών) Σελίδα 40

Μέθοδοι Προσέγγισης LRU Bit αναφοράς: Με κάθε σελίδα συσχετίζεται ένα bit, αρχικά έχει την τιµή 0 Όταν γίνεται αναφορά στη σελίδα, ητιµή του αλλάζει σε 1 Επιλέγεται η σελίδα που έχει bit αναφοράς 0 (αν υπάρχει τέτοια) Όταν όλες οι σελίδες έχουν το bit αναφοράς = 1, πρέπει να επιλέξουµε µια τυχαία σελίδα εύτερη ευκαιρία (µαζί µε bit αναφοράς): Χρήση ρολογιού Σελίδα 41

Αλγόριθµοι Προσέγγισης LRU (συνέχεια) εύτερη ευκαιρία (Second chance): Ελέγχεται το bit αναφοράς (0=αντικατάσταση) Κυκλική Αντικατάσταση (υλοποίηση σε κυκλική ουρά, FIFO) Αν η σελίδα που είναι να αντικατασταθεί έχει bit αναφοράς 1, τότε: Θέσε το bit αναφοράς 0 και το χρόνο άφιξης στον τρέχοντα χρόνο Άφησε τη σελίδα στη µνήµη (δεύτερη ευκαιρία) Αντικατέστησε την επόµενη (FIFO) σελίδα Σελίδα 42

Αλγόριθµος Αντικατάστασης Σελίδας εύτερης Ευκαιρίας (Ρολογιού) Σελίδα 43

Αλγόριθµοι Μέτρησης Συχνότητας Χρήσης Για κάθε σελίδα τηρείται µετρητής για το πλήθος των αναφορών που έχουν γίνει στην σελίδα αυτή Αλγόριθµος LFU (least frequently used): αντικαθιστά τη σελίδα της οποίας ο µετρητής έχει τη µικρότερη τιµή Λογική: Αφού η σελίδα έχει χρησιµοποιηθεί τόσο συχνά, έχει µεγάλη πιθανότητα να χρησιµοποιηθεί και στο µέλλον Αλγόριθµος MFU (most frequently used): αντικαθιστά τη σελίδα της οποίας ο µετρητής έχει τη µεγαλύτερη τιµή Λογική: Μιασελίδαπουέχειµόλις έρθει στην µνήµη (και άρα έχει εξ ορισµού µικρό αριθµών αναφορών) είναι πιθανό να χρησιµοποιηθεί στο µέλλον Σελίδα 44

Ανάθεση Πλαισίων σε ιεργασίες (Allocation of Frames) Κάθε διεργασία χρειάζεται έναν ελάχιστο αριθµό απόσελίδεςνα βρίσκονται στην κύρια µνήµη του συστήµατος Παράδειγµα: IBM 370 6 σελίδες για το χειρισµό τηςεντολήςss MOVE: Η εντολή είναι 6 bytes, µπορεί να διατρέχει δύο σελίδες 2 σελίδες για το χειρισµό τουαπό 2 σελίδες για το χειρισµό τουπρος ύο κυρίως σχήµατα ανάθεσης πλαισίων Σταθερή ανάθεση Ανάθεση κατά προτεραιότητα Σελίδα 45

Σταθερή Ανάθεση Εξισορροπηµένη ανάθεση: π.χ., για 100 διαθέσιµα πλαίσια και 5 διεργασίες δώσε στην καθεµιά 5 πλαίσια Αναλογική Ανάθεση: Ανάθεση ανάλογα µε το µέγεθος της διεργασίας Υπολογισµός s a i i = µέγεθος διεργασίας p S = s m = διαθέσιµα πλαίσια = s i i / S m, ανάθεση στην p i i Παράδειγµα m = 64 s s a a i 2 1 2 = 10 = 127 10 = 64 5 137 127 = 64 59 137 Σελίδα 46

Ανάθεση κατά Προτεραιότητα Χρήση ενός αναλογικού σχήµατος µε βάσητην προτεραιότητα (και όχι το µέγεθος) µιας διεργασίας Αν η διεργασία P i δηµιουργήσει ένα σφάλµα σελίδας: Επιλογή για αντικατάσταση ενός από τα πλαίσιά της Επιλογή για αντικατάσταση ενός πλαισίου από διεργασία χαµηλότερης προτεραιότητας Σελίδα 47

Γενικές Πολικές εναντίον Τοπικών Πολιτικών Αντικατάστασης Γενική αντικατάσταση (global replacement): Μια διεργασία επιλέγει ένα πλαίσιο για αντικατάσταση από τη λίστα όλων των πλαισίων Μια διεργασία µπορεί να πάρει ένα πλαίσιο από µια άλλη διεργασία Τοπική αντικατάσταση (local replacement): Κάθε διεργασία επιλέγει από το σύνολο των σελίδων που έχουν ανατεθεί σε αυτή Η εκτέλεση µιας διεργασίας δεν επηρεάζει την κατάσταση των σελίδων/πλαισίων των υπολοίπων Σελίδα 48

Πτώση της Απόδοσης Thrashing Αν µια διεργασία δεν έχει «αρκετές» σελίδες, ο ρυθµός λαθών σελίδας είναι πολύ υψηλός. Αυτό οδηγεί σε: χαµηλή χρησιµοποίηση της ΚΜΕ το ΛΣ θεωρεί ότι πρέπει να αυξήσει το βαθµό του πολυπρογραµµατισµού µια επιπλέον διεργασία εισάγεται στο σύστηµα Thrashing: Μια διεργασία χάνει τον χρόνο της µετακινώντας σελίδες από/προς το µέσο αποθήκευσης Σελίδα 49

Συνηθισµένη Καµπύλη Thrashing Σελίδα 50

Καταπολέµηση Thrashing Στο σηµείο που ξεκινάει η εµφάνιση του φαινοµένου του thrashing, θα πρέπει να µειωθεί ο βαθµός πολυπρογραµµατισµού Το φαινόµενο του thrashing µπορεί να περιοριστεί µε χρήση τοπικών πολιτικών τοποθέτησης Γιανααποτραπείτοthrashing πρέπει η κάθε διεργασία να κατέχει όσα πλαίσια χρειάζεται Πως, όµως, µπορούµε να γνωρίζουµε πόσα πλαίσια χρειάζεται µια διεργασία; Σελίδα 51

Καταγραφή Συχνότητας Σφαλµάτων Σελίδας ιεργασιών Το φαινόµενο του thrashing µπορεί να καταπολεµηθεί µε την παρακολούθηση του ρυθµού σφαλµάτων σελίδας των διεργασιών Όταν είναι µεγάλος, γνωρίζουµε ότι η διεργασία χρειάζεται και κερδίζει πλαίσια, ενώ όταν είναι µικρός πιθανόν να έχει παραπάνω και να τα χάνει Μπορούµε να δηµιουργήσουµε άνω και κάτω όρια στον επιθυµητό ρυθµό σφαλµάτων σελίδας Σελίδα 52

Καµπύλη Συχνότητας Σφαλµάτων Σελίδας ιεργασίας Σελίδα 53

Τοπικότητα ιεργασιών Γιατίδουλεύειτοµοντέλο της σελιδοποίησης; Μοντέλο τοπικότητας (locality model) Κάθε διεργασία αναφέρεται για µεγάλα χρονικά διαστήµατα σε ένα σχετικά περιορισµένο αριθµό σελίδων(τοπικότητα) Οι διεργασίες µετακινούνται µεταξύ τοπικοτήτων Οι τοπικότητες µπορεί να επικαλύπτονται Γιατί συµβαίνει thrashing; Σ µεγέθους τοπικότητας > συνολικό µέγεθος µνήµης Σελίδα 54

είγµα Αναφορών Μνήµης Σελίδα 55

Μοντέλο Συνόλου Εργασίας (Working- Set Model) (παράθυρο συνόλου εργασίας) = µια συγκεκριµένη ακολουθία αναφορών σελίδων, π.χ. ανά 10,000 εντολές WSS i (σύνολο εργασίας για τη διεργασία P i ) = ο συνολικός αριθµός σελίδων που αναφέρθηκαν στο πιο πρόσφατο Το σύνολο εργασίας µεταβάλλεται µε τοχρόνο Αν το είναι πολύ µικρό πιθανώς να µην συµπεριλαµβάνει µια ολόκληρη τοπικότητα Αν το είναι πολύ µεγάλο πιθανώς να συµπεριλαµβάνει πολλές διαφορετικές τοπικότητες Αν το = περικλείει ολόκληρο το πρόγραµµα Σελίδα 56

Μοντέλο Συνόλου Εργασίας (συνέχεια) D = Σ WSS i συνολική απαίτηση σε πλαίσια Αν D > m (συνολικός αριθµός διαθέσιµων πλαισίων) θα συµβεί thrashing γιατί ορισµένες διεργασίες δε θα έχουν αρκετά πλαίσια Αν D > m, τότε προσωρινό σταµάτηµα κάποιας διεργασίας Σελίδα 57

Μοντέλο Συνόλου Εργασίας (συνέχεια) Ηαρχήτουµοντέλου είναι απλή: Το ΛΣ επιβλέπει το σύνολο εργασίας για κάθε διεργασία και αναθέτει σε αυτή τόσα πλαίσια όσα το µέγεθός του Εφόσον υπάρχουν αρκετά πλαίσια ξεκινάει άλλη διεργασία Η πολιτική του συνόλου εργασίας αποτρέπει το thrashing και κρατάει το βαθµόπολυπρογραµµατισµού όσοτοδυνατόν µεγαλύτερο (βελτιστοποιεί τη χρήση της ΚΜΕ) Σελίδα 58

Μοντέλο Συνόλου Εργασίας (συνέχεια) Σελίδα 59

Καταγραφή του Συνόλου Εργασίας Προσέγγιση µε ένανµετρητή διαστηµάτων + bit αναφοράς Παράδειγµα: = 10,000 Ο µετρητής διακόπτει µετά από 5000 µονάδες χρόνου Τήρηση στη µνήµη δύοbits για κάθε σελίδα Όταν διακόψει ο µετρητής, αντιγράφει τις τιµές των bits αναφοράς σελίδας και τα θέτει στην τιµή 0 Αν κάποιο από τα bits της µνήµης = 1 η σελίδα ανήκει στο σύνολο εργασίας Είναι απολύτως ακριβής αυτή η διαδικασία; Βελτίωση: 10 bits και διακοπή κάθε 1000 µονάδες χρόνου Σελίδα 60

Ανάθεση Μνήµης Πυρήνα Πρέπει να αντιµετωπίζεται διαφορετικά από τη µνήµη χρήστη Συνήθως ανατίθεται από µια «δεξαµενή» ελεύθερης µνήµης Ο πυρήνας ζητάει µνήµη για δοµές µε µεταβαλλόµενα µεγέθη Υπάρχει µνήµη πυρήνα που απαιτείται να είναι συνεχόµενη Σελίδα 61

Σύστηµα τωνφίλων Αναθέτει µνήµη από τµήµα συγκεκριµένου µεγέθους που αποτελείται από συνεχόµενα πλαίσια Η µνήµη ανατίθεται χρησιµοποιώντας τµήµατα µεγέθους δύναµη του2 (power-of-2 allocator) Ικανοποιεί αιτήσεις σε µονάδες µε µέγεθος δύναµη του 2 Η αίτηση«στρογγυλεύεται» στην πλησιέστερη µεγαλύτερη (από την αίτηση) δύναµη του2 Όταν απαιτείται µικρότερη ανάθεση από αυτή που είναι διαθέσιµη, το τρέχον τµήµα χωρίζεται σε δύο τµήµατα µε µέγεθος την αµέσως µικρότερη δύναµη του 2 Συνέχισε έως ότου είναι διαθέσιµο κοµµάτι κατάλληλου µεγέθους Σελίδα 62

Ανάθεση Μνήµης µε τοσύστηµα των Φίλων Σελίδα 63

Slabs Εναλλακτική στρατηγική Ένα slab είναι ένα ή περισσότερα συνεχόµενα πλαίσια Μια cache αποτελείται από ένα ή περισσότερα slabs Μια διαφορετική cache για κάθε ξεχωριστή δοµή δεδοµένων του πυρήνα Κάθε cache γεµίζει µε αντικείµενα (objects) στιγµιότυπα της δοµής δεδοµένων (π.χ. περιγραφείς διεργασιών) Σελίδα 64

Slabs (συνέχεια) Όταν δηµιουργείται η cache, γεµίζει µε αντικείµενα που χαρακτηρίζονται ελεύθερα Όταν αποθηκεύονται δοµές, τα αντικείµενα χαρακτηρίζονται χρησιµοποιηµένα Αν ένα slab είναι γεµάτο χρησιµοποιηµένα αντικείµενα, το επόµενο αντικείµενο ανατίθεται από ένα άδειο slab Αν δεν υπάρχουν άδεια slabs, δηµιουργείται ένα νέο slab από συνεχόµενα πλαίσια και ανατίθεται στην cache Σελίδα 65

Ανάθεση Slabs Σελίδα 66

Slabs (συνέχεια) Πλεονεκτήµατα: δεν υπάρχει κατακερµατισµός, γρήγορη ικανοποίηση αιτήσεων για µνήµη Τα αντικείµενα δηµιουργούνται εκ των προτέρων, συνεπώςηανάθεσήτουςαπότηνcache µπορεί να είναι γρήγορη Αρχικά εµφανίστηκαν στον πυρήνα του Solaris 2.4. Το Linux αν και ξεκίνησε µε τοσύστηµα των φίλων από την έκδοση 2.2 και µετά χρησιµοποιεί τα slabs Σελίδα 67

Άλλα Ζητήµατα για Μελέτη υνατότητες TLB: Η ποσότητα της µνήµης που είναι προσπελάσιµη µέσω TLB. Στην ιδανική περίπτωση το σύνολο εργασίας για κάθε διεργασία αποθηκεύεται στο TLB, αλλιώς υπάρχει υψηλός ρυθµός σφαλµάτων Πρόβλεψη για πολλαπλά µεγέθη σελίδας: Αυτό επιτρέπει σε εφαρµογές που χρειάζονται µεγαλύτερο µέγεθος σελίδας να το χρησιµοποιήσουν χωρίς αύξηση του κατακερµατισµού I/O Interlock: Οι σελίδες πρέπει ορισµένες φορές να κλειδώνονται στη µνήµη για να µην πέσουν θύµατα αντικατάστασης, π.χ. στην περίπτωση αντιγραφής δεδοµένων από/προς συσκευές Προληπτική φόρτωση (prefetching): Μεταφέρονται σελίδες στην κύρια µνήµη χωρίς να έχει δηµιουργηθεί σφάλµα για αυτές(αλλά για κάποιο λόγο θεωρείται πιθανό να γίνει αναφορά σε αυτές) Σελίδα 68

I/O Interlocking Σελίδα 69

Άλλα Ζητήµατα για Μελέτη (συνέχεια) Πίνακας µε κάθεγραµµή να αποθηκεύεται σε µια σελίδα: int a[][] = new int[1024][1024]; Πρόγραµµα 1: for (j = 0; j < a.length; j++) { for (i = 0; i < a.length; i++) {a[i,j] = 0;} } 1024 x 1024 σειριακές αναφορές σε διαφορετικές σελίδες Πρόγραµµα 2: for (i = 0; i < a.length; i++) { for (j = 0; j < a.length; j++) {a[i,j] = 0;} } 1024 σειριακές αναφορές σε διαφορετικές σελίδες Σελίδα 70

Αλγόριθµοι Αποθήκευσης Σελίδων (Page Buffering Algorithms) Τήρηση «δεξαµενής» ελεύθερων πλαισίων Τήρηση λίστας µε τις σελίδες που έχουν τροποποιηθεί Σε τακτά χρονικά διαστήµατα (όταν δεν υπάρχει δραστηριότητα σελιδοποίησης), γίνεται επιλογή κάποιων σελίδων και εγγραφή τους στο δίσκο Τήρηση λίστας ελεύθερων πλαισίων, τα οποία «θυµούνται» τις σελίδες που βρίσκονταν εκεί πριν µείνουν ελεύθερα, ώστε να αποφευχθεί περιττή µεταφορά τους από τον δίσκο Σελίδα 71

Επιλογή Μεγέθους Σελίδας Από τις πιο σηµαντικές παραµέτρους ενός ΛΣ Κατακερµατισµός Μήκος πίνακα σελίδων Φόρτος I/O Τοπικότητα Σελίδα 72

Windows XP Χρησιµοποιεί σελιδοποίηση κατ απαίτηση µε οµαδοποίηση (clustering), για την προφόρτωση των σελίδων που βρίσκονται εκατέρωθεν της σελίδας που δηµιούργησε σφάλµα Οι διεργασίες έχουν ελάχιστο και µέγιστο σύνολο εργασίας Κάθε διεργασία αρχίζει µε το ελάχιστο σύνολο εργασίας και µπορεί σταδιακά να αυξήσει τα πλαίσια της µέχρι να φτάσει το µέγιστο Όταν η ποσότητα της ελεύθερης µνήµης του συστήµατος πέσει κάτω από ένα κατώφλι, τότε εκτελείται αυτόµατα περιστολή συνόλου εργασίας (working set trimming) για την ανάκτηση της ποσότητας της ελεύθερης µνήµης, εκτός των το ελάχιστων συνόλων εργασίας Σελίδα 73

Solaris 2 Τηρεί µια λίστα µε ελεύθερα πλαίσια για τις διεργασίες Lotsfree παράµετρος κατώφλι για την έναρξη σελιδοποίησης (µεταφορά πλαισίων στον δίσκο) Η σελιδοποίηση εκτελείται από τη διεργασία pageout, η οποία ψάχνει για σελίδες χρησιµοποιώντας τον τροποποιηµένο αλγόριθµο του ρολογιού Ο Scanrate είναι ο ρυθµός µε τον οποίο ψάχνονται οι σελίδες. Ποικίλει από το slowscan στο fastscan. Η pageout καλείται ανάλογα µε την ποσότητα ελεύθερης µνήµης που είναι διαθέσιµη Σελίδα 74

Solar Page Scanner Σελίδα 75