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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά συστήματα πραγματικού χρόνου

Σχεδίαση Γλωσσών Προγραμματισμού. Εαρινό Εξάμηνο Lec03 18/02/2019

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

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

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

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

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

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

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

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

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

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

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

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

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

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

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

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

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

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

Τεχνολογίες Κύριας Μνήμης

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

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

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

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

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

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

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

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 όχι στη μνήμη) Παράδειγμα στιγμιότυπου του πίνακα σελίδων: Πίνακας σελίδων # Πλαισίου 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

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

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

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

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

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

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

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

Δείγμα Αναφορών Μνήμης Σελίδα 48

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

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

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

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

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

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

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

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

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

I/O Interlocking Σελίδα 58

Άλλα Ζητήματα για Μελέτη (συνέχεια) Πίνακας με κάθε γραμμή να αποθηκεύεται σε μια σελίδα: 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 σειριακές αναφορές σε διαφορετικές σελίδες Σελίδα 59

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

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