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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Ι. Διαχείριση Μνήμης (Memory Management)

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

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

Λειτουργικά. Συστήματα Ι. Διεργασίες-Νήματα. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 3ο: Διαχείριση Μνήμης

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

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

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

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

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

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

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

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

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

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ - ΣΗΜΕΙΩΣΕΙΣ

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

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

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

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

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

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

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

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

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

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

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε:

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

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

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

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

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

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

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

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

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

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

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

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

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

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

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

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

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

Chapter 4 ( ή 1 στο βιβλίο σας)

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

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

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

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

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

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

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

Περιγραφή και Έλεγχος ιεργασιών

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

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

Virtual Memory. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

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

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Κεφάλαιο 4: Λογισμικό Συστήματος

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

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

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

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

Transcript:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης II Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin and Gange, Operating Systems Concepts. Deitel, Deitel and Choffnes, Operating Systems Λειτουργικά Συστήματα, Γ.Α. Παπαδόπουλος, Πανεπιστήμιο Κύπρου Λειτουργικά Συστήματα, Κ. Διαμαντάρας, ΤΕΙΘ Systems Programming in C, A.D. Marshal, University of Cardiff Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης II Αλγόριθμοι αντικατάστασης σελίδων Θέματα σχεδιασμού και απόδοσης Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Σελιδοποίηση Σύνοψη () Process Process Control Block Program Data User Stack Shared Address Space Main Memory Hard Disk Page Table 8 9 0 8 8 99 8 0 9 Reference Bit Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Σελιδοποίηση Σύνοψη () Virtual memory Page 0 Page Page Memory map Page table Page Page Page Physical memory Page n Page Page 8 Αναφορά σελίδας Έλεγχος χάρτη μνήμης Αν υπάρχει αντίστοιχο σημείο εισόδου στον πίνακα σελίδων για πλαίσιο φυσικής μνήμης τότε γίνεται αναφορά σ αυτό Διαφορετικά, η σελίδα δεν υπάρχει στη φυσική μνήμη και πρέπει να μεταφερθεί από τον δίσκο Αν η φυσική μνήμη είναι πλήρης, Εύρεση σελίδας προς αντικατάσταση Εναλλαγή στον δίσκο Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Αντικατάσταση σελίδων Ασχολείται με την επιλογή μιας σελίδας στη μνήμη, η οποία θα αντικατασταθεί μόλις θα πρέπει να φορτωθεί μια νέα σελίδα. Το θέμα σχετίζεται και με πλήθος άλλων, όπως: Το πλήθος των πλαισίων που ανατίθενται σε κάθε ενεργή διεργασία Το σύνολο των υποψηφίων προς αντικατάσταση σελίδων Το λειτουργικό σύνολο (δες ζητήματα υλοποίησης και μοντελοποίησης) Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Αλγόριθμοι αντικατάστασης σελίδων () Όταν συμβεί page fault τότε το λ.σ. πρέπει να κάνει χώρο στη κύρια μνήμη για τη νέα σελίδα αποφασίσει ποια σελίδα θα αντικατασταθεί (εναλλαγή) Αν η σελίδα έχει τροποποιηθεί (Modified/Dirty bit) πρέπει να σωθεί στο δίσκο πρώτα, αλλιώς απλά υπερ-γράφεται. Καλό είναι να μην αντικαθίσταται μια σελίδα που αναφέρεται συχνά (Referenced και Modified bits) γιατί πιθανότατα θα τη ξαναχρειαστούμε σύντομα.

Αλγόριθμοι αντικατάστασης σελίδων () PC 0 H Load M J M Proc s page table v vi v i Process s logical memory PC 0 A B D E Proc s page table v i v v Δεν υπάρχουν ελεύθερα πλαίσια Εύρεση μιας σελίδας προς αντικατάσταση Αν φύγει η M θα προκληθεί σφάλμα σελίδας Αν φύγει η H πιθανόν να εξυπηρετεί Ο αλγόριθμος αντικατάστασης πρέπει να ελαχιστοποιεί τα σφάλματα σελίδας 0 OS OS D H Load M J A? B M E Physical memory Process s logical memory Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Αλγόριθμοι αντικατάστασης σελίδων () present/absent frame dirty/clean. Clear all bits of the swapped frame entry 0f 0 f vi vi c d c. If it s dirty, swap out a victim page. Reset a frame entry for this new page. Overwrite this frame with a desired page Page table Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Δομές δεδομένων Σελίδες ή τμήματα Πλαίσια σελίδων Πίνακες σελίδων Λίστα των ελεύθερων πλαισίων σελίδων Περιέχει όλα τα πλαίσια που δεν χρησιμοποιούνται Πίνακες αλγορίθμου αντικατάστασης - Περιέχουν δεδομένα που αφορούν σελίδες και πλαίσια - Χρησιμοποιούνται για να αποφασιστεί ποιες σελίδες θα αντικατασταθούν Περιοχή εναλλαγής - Περιοχή της δευτερεύουσας μνήμης για σελίδες που δεν βρίσκονται στην κύρια μνήμη - Μια πλήρης εικόνα κάθε διεργασίας διατηρείται στην περιοχή αυτή Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Αποτίμηση των αλγορίθμων Διατήρηση του πλήθους των σφαλμάτων σελίδων όσο γίνεται χαμηλά. Η απόδοση των αλγορίθμων αντικατάστασης κρίνεται από τα σφάλματα που παράγονται σε σχέση με το αλφαριθμητικό αναφοράς (reference string) που είναι μια ακολουθία αναφοράς σελίδων. Παράγεται από την καταγραφή διευθύνσεων του συστήματος στις οποίες γίνεται αναφορά. Εξαρτάται από το πλήθος των διαθέσιμων πλαισίων: Περισσότερα πλαίσια μειώνουν το πλήθος σφαλμάτων σελίδας (γενικά αλλά..παράδοξο του Belady) Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Αλγόριθμοι Βέλτιστος (Optimal) Οχι πρόσφατη χρήση (Not Recently Used, NRU) Πρώτος μέσα, πρώτος έξω (First-In, First-Out, FIFO) Δεύτερη ευκαιρία (Second chance) Ρολογιού (Clock) Λιγότερο πρόσφατη χρήση (Least Recently Used, LRU) Οχι συχνή χρήση (Not Frequently Used, NFU) Γήρανσης (Aging) Λειτουργικού συνόλου (Working Set, WS) WSClock Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Optimal Αντικατάσταση της σελίδας που θα χρησιμοποιηθεί αργότερα στο μέλλον. Ανέφικτος αλγόριθμος στη γενική του μορφή Χρησιμοποιείται ως benchmark Σε ειδικές περιπτώσεις μπορεί να γίνει εκτίμηση πχ συστήματα δέσμης με επαναλαμβανόμενη εκτέλεση του ίδιου προγράμματος σε παρόμοια δεδομένα.

Παράδειγμα - seven pages four frames Reference String F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F F Replacement Candidates:,,, Selected: or (both pages won t be used anymore) Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F Replacement Candidates:,,, Selected: or (pages won t be used anymore) Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F Replacement Candidates:,,, Selected: or (pages won t be used anymore) Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F F Page Faults: 0 Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Not Recently Used (NRU) Χρήση των Reference / Modified bits του πίνακα σελίδων. Το Refernce bit μηδενίζεται μετά από κάθε timeout (πχ 0ns), τo Modified bit δεν επηρεάζεται. Οι σελίδες χωρίζονται σε σύνολα: 0. not referenced, not modified. not referenced, modified. referenced, not modified. referenced, modified 00 0 (μετά από timeout) 0 Ο NRU απομακρύνει στη τύχη μια σελίδα από το χαμηλότερο μη-κενό σύνολο (0,,, ). Το σύνολο προτιμάται του συνόλου. Απλός και εύκολος αλγόριθμος, με αποδεκτή απόδοση.

First In First Out (FIFO) Το λ.σ. διατηρεί λίστα των σελίδων που βρίσκονται στη μνήμη ταξινομημένη με τη χρονική σειρά άφιξης. Αντικαθίσταται η σελίδα που μπήκε πρώτη στη μνήμη. Μειονέκτημα: η σελίδα που αντικαθίσταται μπορεί να είναι σε χρήση. Σπάνια χρησιμοποιείται στη καθαρή του μορφή αλλά σε συνδυασμό.

Παράδειγμα () Seven pages Four frames Reference String F F F F F F F F F F F Page Faults: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009 F

Παράδειγμα () Seven pages Five frames Reference String F F F F F F F F F F Page Faults: 0 Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Second Chance Τροποποίηση του FIFO ως εξής: αν η σελίδα προς αντικατάσταση έχει Referenced bit ίσο με, τότε η σελίδα τοποθετείται στο τέλος της ουράς με Referenced bit ίσο με 0 και με χρόνο εισόδου ίσο με τον τρέχοντα. Παράδειγμα: (a) Λίστα σελίδων σε ουρά FIFO. (b) Στη χρονική στιγμή 0 συμβαίνει page fault. Η σελίδα Α έχει εισέλθει τη χρονική στιγμή 0 και έχει R bit ==. Η σελίδα τοποθετείται στο τέλος της λίστας με R bit = 0 και χρόνο εισόδου 0. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Clock Βελτίωση του αλγορίθμου Second Chance: η ουρά FIFO αντικαθίσταται από κυκλική λίστα και η μετακίνηση σελίδων και η αλλαγή χρόνου εισόδου αντικαθίσταται από μετακίνηση ενός δείκτη. Ίδια λειτουργία με το Second Chance, αλλά αποδοτικότερη υλοποίηση. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Least Recently Used (LRU)() Υποθέτει οτι σελίδες που χρησιμοποιήθηκαν πρόσφατα θα ξαναχρησιμοποιηθούν σύντομα. Αντικαθίσταται η σελίδα που δεν έχει χρησιμοποιηθεί για το μεγαλύτερο χρονικό διάστημα. Εξαιρετικός αλγόριθμος αλλά απαιτείται καταγραφή της χρονικής στιγμής αναφοράς σε κάθε σελίδα και ενημέρωση σε κάθε αναφορά στη μνήμη!! Υλοποίηση λογισμικού: λίστα των σελίδων στη μνήμη. Μετά από κάθε αναφορά στη μνήμη η αντίστοιχη σελίδα μετακινείται στη αρχή της λίστας. Αφαιρείται η τελευταία σελίδα. Πολύ ακριβή. Υλοποίηση υλικού: καταχωρητής σε κάθε θέση του πίνακα σελίδων που ενημερώνεται από το ρολόι του συστήματος σε κάθε αναφορά στη μνήμη. Αφαιρείται η σελίδα με τη μικρότερη τιμή. Απαιτεί ειδικό υλικό.

Παράδειγμα - seven pages four frames Reference String F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - 8 seven pages four frames Reference String F F F F F F F F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - 9 seven pages four frames Reference String F F F F F F F F F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - 0 seven pages four frames Reference String F F F F F F F F F F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F F F F F F F Replacement Candidates:,,, Selected: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F F F F F F F Number of Page Faults: Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Least Recently Used (LRU)() Αποδοτικότερη υλοποίηση υλικού: Έστω μνήμη με Ν πλαίσια σελίδας. Υπάρχει ένας πίνακας με ΝΧΝ bits. Όλα τα bits λαμβάνουν αρχικά την τιμή 0. Για κάθε αναφορά στη μνήμη, έστω στο πλαίσιο σελίδας Κ, Κ=0,,.., Ν-: τα bits της σειράς Κ τίθενται στη τιμή τα bits της στήλης K τίθενται στη τιμή 0 Σε κάθε χρονική στιγμή, η στήλη που σχηματίζει το μικρότερο δυαδικό αριθμό αντιστοιχεί στη πιο πρόσφατα χρησιμοπιημένη σελίδα, η στήλη με τον επόμενο αριθμό αντιστοιχεί στη δεύτερη πιο πρόσφατη κλπ. Έξυπνη λύση αλλά και πάλι απαιτείται ειδικό υλικό.

Least Recently Used (LRU)() Υλοποίηση LRU με πίνακα πλαισίων σελίδας και σειρά αναφορών: 0,,,,,, 0,,,. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Not Frequently Used (NFU) Τροποποίηση LRU για υλοποίηση λογισμικού: Έστω μνήμη με Ν πλαίσια σελίδας. Υπάρχουν Ν μετρητές (σε λογισμικό). Όλοι λαμβάνουν αρχικά την τιμή 0. Σε κάθε timeout το λ.σ. σαρώνει τα N Reference bits ο πίνακα σελίδων και προσθέτει την τιμή τους (0 ή ) στον αντίστοιχο μετρητή. Αντικαθίσταται η σελίδα με τη μικρότερη τιμή στο μετρητή της (λιγότερο συχνή χρήση) και ο μετρητής του πλαισίου μηδενίζεται. Μειονέκτημα: ο NFU δεν ξεχνάει! Μια σελίδα με for loop πχ θα έχει πολύ ψηλή τιμή μετρητή και δεν θα αντικαθίσταται εύκολα. Αντίθετα, σελίδες που μόλις έχουν εισέλθει στη μνήμη θα είναι πρώτες υποψήφιες για αντικατάσταση.

Aging () Τροποποίηση NFU για καλύτερη προσέγγιση του LRU: Έστω μνήμη με Ν πλαίσια σελίδας. Υπάρχουν Ν μετρητές (σε λογισμικό). Όλοι λαμβάνουν αρχικά την τιμή 0. Σε κάθε timeout το λ.σ. : κάνει δεξιά ολίσθηση bit σε όλους τους μετρητές. σαρώνει τα N Reference bits ο πίνακα σελίδων και προσθέτει την τιμή τους (0 ή ) στον αντίστοιχο μετρητή στο πιο αριστερό bit. Αντικαθίσταται η σελίδα με τη μικρότερη τιμή στο μετρητή της (λιγότερο συχνή χρήση) και ο μετρητής του πλαισίου μηδενίζεται. Παρατηρήσεις: Μετρούμε μόνο μία αναφορά ανά timeout, όχι κάθε αναφορά στη μνήμη. Τα bits του μετρητή είναι περιορισμένα, σε κάποια στιγμή μηδενίζεται.

Aging () Εκτέλεση του αλγορίθμου για έξι πλαίσια σελίδων και πέντε clock ticks (timeout), βήματα (a) ως (e). Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Working Set (WS) () Σελιδοποίηση κατ' απαίτηση (Demand paging): το λ.σ. αναμένει τις απαιτήσεις τις διεργασίας μέσω page faults. Κάθε διεργασία κατά τη φάση εκκίνησης προκαλεί συχνά page faults μέχρι να μεταφέρει στη μνήμη το σύνολο των σελίδων που απαιτούνται για να λειτουργήσει. Το σύνολο αυτών των σελίδων λέγεται Λειτουργικό Σύνολο (Working Set). Το WS μεταβάλεται με τη πάροδο του χρόνου καθώς οι σελίδες που χρησιμοποιούνται αλλάζουν. Το μέγεθος του WS όμως, μετά από μια αρχική απότομη αύξηση, σταθεροποιείται. Επιλέον, λόγω της τοπικότητας αναφορών, ενώ αρχικά συμβαίνουν αρκετά page faults στη συνέχεια ο αριθμός, και ο ρυθμός, των page faults σταθεροποείται σε ένα μικρό σχετικά αριθμό. Αν η διαθέσιμη κύρια μνήμη είναι μικρή ή ο βαθμός πολυπρογραμματισμού υπερβολικά μεγάλος τότε το WS μιας διεργασίας δε χωρά ολόκληρο στη μνήμη ή πολύ συχνά αφαιρείται από τη μνήμη με αποτέλεσμα να υπάρχει ένας υπερβολικός αριθμός page faults λόγω συνεχών εναλλαγών σελίδων αρχική καθυστέρηση ή και αλώνισμα (thrashing).

Thrashing () Αν μια διεργασία δεν διαθέτει αρκετές σελίδες θα παράγει πληθώρα σφαλμάτων σελίδων. Η σελίδα που αντικαθίσταται ίσως χρειαστεί και πάλι πολύ σύντομα. Συνέπεια: ο βαθμός χρήσης της CPU μπορεί να μειωθεί δραματικά. Ο επεξεργαστής σπαταλά το μεγαλύτερο μέρος του χρόνου για την εναλλαγή τμημάτων παρά για την εκτέλεση των εντολών του χρήστη. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Τhrashing () CPU utilization thrashing degree of multiprogramming Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Working Set (WS) () Το λειτουργικό σύνολο περιλαμβάνει όλες τις σελίδες που έχουν χρησιμοποιηθεί κατά τη διάρκεια των k πιο πρόσφατων αναφορών και είναι μια χονδρική εκτίμηση που προκύπτει από τις τοπικότητες των αναφορών μιας διεργασίας. Το k καθορίζει το μέγεθος του λειτουργικού συνόλου Το λειτουργικό σύνολο μιας διεργασίας αλλάζει μέγεθος καθώς η διεργασία εξελίσσεται (χρονική στιγμή t), ενώ η βέλτιστη τιμή του είναι άγνωστη. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Working Set (WS) () Λειτουργικό Σύνολο τη χρονική στιγμή t με βάση τις k πιο πρόσφατες αναφορές. Μονότονη, μη φθίνουσα συνάρτηση ως προς k. k Δύο ζητήματα: Διατήρηση του WS στη κύρια μνήμη ώστε να αποφεύγεται η αρχική καθυστέρηση ή και το thrashing. Εκτίμηση (πρόβλεψη) του WS ώστε να εφαρμοστούν τεχνικές προσελιδοποίησης (pre-paging). Το λ.σ. πρέπει να υπολογίζει το τρέχον WS ώστε να διεθέτει αρκετά πλαίσια σελίδων στη διεργασία και να προβλέπει τις σελίδες προς αντικατάσταση (ή και προς φόρτωση). Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Προσκόμιση σελίδων Κατ' Απαίτηση (Demand paging) : Μεταφέρει σελίδες στην κύρια μνήμη μόνον όταν γίνει μια αναφορά σε μια διεύθυνση της σελίδας και αυτή δεν υπάρχει στη μνήμη Δημιουργούνται πολλά σφάλματα σελίδας (page faults) όταν η διεργασία ξεκινά για πρώτη φορά Προ-σελιδοποίηση (pre-paging) : Μεταφέρει περισσότερες σελίδες από αυτές που χρειάζονται Είναι περισσότερο αποτελεσματική, αλλά δεν είναι πάντοτε εφικτή, εξαρτάται από τον αλγόριθμο αντικατάστασης (πχ προ-γνώση λειτουργικού συνόλου) Αν χρησιμοποιείται DMA μπορεί να υλοποιηθεί συγχρόνως με την εκτέλεση του προγράμματος Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Working Set (WS) () Τρέχων εικονικός χρόνος (Current virtual time): το λ.σ. υπολογίζει για κάθε διεργασία τον χρόνο που κατέλαβε τη CPU. Ορίζεται ένας Μέγιστος εικονικός χρόνος (ουσιαστικά το k στο προγούμενο σχήμα). Στο πίνακα σελίδων σημειώνεται εκτός από το Reference bit και ο Χρόνος τελευταίας χρήσης (δηλαδή ο τρέχων εικονικός χρόνος κατά τo page fault). Το Reference bit = 0 σε κάθε timeout. Όταν συμβεί page fault το λ.σ. σαρώνει το πίνακα σελίδων: Αν το Reference bit == τότε η σελίδα ανήκει στο WS. Το R bit τίθεται στο 0 και ενημερώνεται ο Χρόνος τελευταίας χρήσης. Αν το Reference bit == 0 τότε Αν Τεχ Χτχ > Μεχ τότε η σελίδα είναι εκτός WS αλλιώς είναι εντός WS. Αν δεν υπάρχει σελίδα εκτός WS τότε αντικαθίσταται η σελίδα με R bit == 0 και το max(τεχ Χτχ)... όμως το λ.σ. χρειάζεται tuning..

Working Set (WS) () age = Τρέχων εικονικός χρόνος (Current virtual time) Χρόνος τελευταίας χρήσης (Time of last use). τ = Μέγιστος εικονικός χρόνος Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

WSClock () Ο WS έχει το μειονέκτημα της σάρωσης όλου του πίνακα σελίδων. Ο WSClock συνδυάζει τη λειτουργία του WS με τις δομές του Clock. Ισχύουν οι τρείς χρόνοι που ορίστηκαν στο WS. Το Reference bit = 0 σε κάθε timeout. Ο πίνακας σελίδων είναι οργανωμένος ως κυκλική λίστα και ένας δείκτης δείχνει τη τρέχουσα σελίδα (τελευταία αναφορά). Όταν συμβεί page fault το λ.σ. ελέγχει τη σελίδα που δείχνει ο δείκτης: Αν το Reference bit == τότε η σελίδα ανήκει στο WS. Το R bit τίθεται στο 0 και ο δείκτης προχωρεί. Αν το Reference bit == 0 τότε Αν Τεχ Χτχ <= Μεχ τότε η σελίδα ανήκει στο WS. Ο δείκτης προχωρεί. Αν Τεχ Χτχ > Μεχ και Dirty bit == τότε η σελίδα είναι εκτός WS αλλά απαιτείται εναλλαγή. Χρονοπρογραμματίζεται για εναλλαγή. Αν Τεχ Χτχ > Μεχ και Dirty bit == 0 τότε η σελίδα είναι εκτός WS και δεν απαιτείται εναλλαγή. Μπορεί να υπεργραφεί. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

WSClock () Αν δεν βρεθεί καμμία σελίδα που να ανήκει στη τελευταία κατηγορία τότε το λ.σ. Περιμένει να εκτελεστεί κάποια από τις επιλεγμένες εναλλαγές για να συνεχίσει η διεργασία. Τίθεται ένα ανώτατο όριο εναλλαγών για να αποφύγουμε το thrashing. To λ.σ. χρειάζεται tuning.. Αν δεν υπάρχουν σελίδες στις δύο τελευταίες κατηγορίες τότε αναγκαστικά επιλέγουμε μια σελίδα από τη τρίτη (από το τέλος) κατηγορία με R bit == 0 αλλά εντός του WS, πιθανότατα την αρχαιότερη, αφού ο δείκτης έχει κάνει πλήρη κύκλο στη πίνακα σελίδων. Πάλι τιο λ.σ. χρειάζεται tuning.. Ο WSClock θεωρείται σχετικά απλός και πολύ αποδοτικός αλγόριθμος. Χρησιμοποιείται αρκετά. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

WSClock () Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Σύνοψη Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Θέματα σχεδιασμού και απόδοσης Μοντελοποίηση αλγορίθμων αντικατάστασης σελίδων Λειτουργικό σύνολο Ρυθμός αντικατάστασης σελίδων Τοπική ή καθολική αντικατάσταση σελίδων Βαθμός πολυπρογραμματισμού Μέγεθος σελίδας Μοιραζόμενες σελίδες Εμπλοκή του λ.σ. Χειρισμός σφάλματος σελίδας

Mοντελοποίηση αντικατάστασης Παράδοξο Belady (a) FIFO με πλαίσια σελίδων (b) FIFO με πλαίσια σελίδων Τα P δείχνουν τα σφάλματα σελίδων (page faults)

α Αλγόριθμοι στοίβας μ Μ Γενική μοντελοποίηση κατάστασης κύριας μνήμης Μ Αλφαριθμητικό αναφορών (Reference string), α ο δείκτης θέσης Αριθμός διαθέσιμων πλαισίων σελίδων μ Αλγόριθμος αντικατάστασης Ισχύει για αρκετούς αλγορίθμους (πχ LRU, FIFO) με: Μ(μ, α) C M(μ+, α) Αλφαριθμητικό απόστασης (Distance string) = Θέση σελίδας στη στοίβα πριν την αναφορά ( σημαίνει page fault)

Εκτίμηση λειτουργικού συνόλου Συνάρτηση πυκνότητας πιθανότητας αλφαριθμητικού απόστασης για δύο διαφορετικά προγράμματα (ή για δύο διαφορετικούς αλγορίθμους αντικατάστασης σελίδων για το ίδιο πρόγραμμα). Στη πρώτη περίπτωση μπορεί να οριστεί το λειτουργικό σύνολο του προγράμματος / αλγορίθμου (οι σελίδες που περιλαμβάνονται στη περιοχή k), άρα και ο απαιτούμενος αριθμός πλαισίων σελίδων ενώ στη δεύτερη όχι. Είδαμε αναλυτικά το λειτουργικό σύνολο στον αλγόριθμο Working Set (WS) και WSClock.

Ρυθμός σφαλμάτων σελίδας () n Fm = Σ Ck k = m+ + C, m ο αριθμός των διαθέσιμων πλαισίων σελίδων.

Ρυθμός σφαλμάτων σελίδας () Η μοντελοποίηση του ρυθμού σφαμάτων σελίδας εκτιμά τον αριθμό πλαισίων σελίδων που απαιτείται για το λειτουργικό σύνολο. Στη πράξη το λ.σ. αναθέτει αρχικά ένα αριθμό πλαισίων σελίδων σε κάθε διεργασία και εκτελεί συνεχείς μετρήσεις των σφαλμάτων σελίδας με τον αλγόριθμο Page Fault Frequency (PFF) ώστε να γνωρίζει τον ρυθμό σφαλμάτων σελίδων. Αν ο ρυθμός είναι πολύ υψηλός τότε χορηγεί επιπλέον πλαίσια, αλλιώς μπορεί να αφαιρέσει πλαίσια σελίδων. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Τοπική ή καθολική αντικατάσταση () (a) Το λ.σ. Αρχικά κατανέμει πλαίσια σελίδων στις διεργασίες. (b) Τοπική αντικατάσταση σελίδων (επηρεάζεται μόνο η διεργασία Α). (c) Καθολική αντικατάσταση σλίδων (ελέγχονται όλες οι διεργασίες). Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Τοπική ή καθολική αντικατάσταση () Συνήθως τα λ.σ. αναθέτει σε κάθε διεργασία έναν αριθμό πλαισίων σελίδας, λειτουργεί με τοπική αντικατάσταση σελίδων και παρακολουθεί την εξέλιξη του ρυθμού αντικατάστασης σελίδων κάθε διεργασίας με PFF. Σε τακτά χρονικά διαστήματα, με βάση του PFF προχωρά σε ανακατανομή των πλαισίων σελίδων (tuning της σελιδοποίησης του λ.σ. με καθολική αντικατάσταση). Ορισμένοι αλγόριθμοι (FIFO, Clock, LRU κλπ) δουλεύουν τόσο με τοπική όσο και με καθολική αντικατάσταση. Οι αλγόριθμοι λειτουργικού συνόλου (WS, WSClock) εφαρμόζονται μόνο με τοπική αντικατάσταση. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Βαθμός πολυπρογραμματισμού Σε ακραίες περιπτώσεις ο αλγόριθμος PFF μπορεί να δείχνει οτι μερικές διεργασίες απαιτούν περισσότερη μνήμη αλλά δεν υπάρχει διαθέσιμη: thrashing. Λύσεις : παραπέρα tuning με προσωρινή μεταφορά μιας διεργασίας στο δίσκο ώστε να ελευθερωθεί μνήμη. σε μόνιμα προβλήματα μείωση του βαθμού πολυπρογραμματισμου.

Μέγεθος σελίδας () Γενικά τα υπολογιστικά συστήματα σχεδιάζονται (σε επίπεδο υλικού και αρχιτεκτονικής) για μικρό μέγεθος σελίδας (πχ Kb, στο Pentium Κb), αλλά τα λ.σ. έχουν τη δυνατότητα χειρισμού μεγαλύτερων σελίδων με τη ταυτόχρονη δέσμευση γειτονικών σελίδων. Γενικά προτιμάται σχετικά μικρό μέγεθος σελίδας. Πλεονεκτήματα Λιγότερη εσωτερική κατάτμηση (internal fragmentation) n διεργασίες, σ μέγεθος σελίδας: ~ n*(p/) η εσωτερική κατάτμηση. Λιγότερος άχρηστος κώδικας και δεδομένα στη μνήμη. Μειονεκτήματα Περισσότερες σελίδες ανά διεργασία, άρα περισσότερη (ελαφριά) κυκλοφορία εναλλαγής μεταξύ δίσκου και μνήμης. Μεγαλύτεροι πίνακες σελίδων, άρα μεγαλύτερη επιβάρυνση στη θεματική εναλλαγή.

Μέγεθος σελίδας () Υπολογισμός επιβάρυνσης ανά διεργασία λόγω του μεγέθους πίνακα σελίδων και της εσωτερικής κατάτμησης Μέγεθος πίνακα σελίδων s e p overhead = + p Όπου s = μέσο μέγεθος διεργασίας σε bytes p = μέγεθος σελίδας σε bytes e = μέγεθος γραμμής πίνακα σελίδων σε bytes Εσωτερική κατάτμηση Βελτιστοποίηση p = se

Διαμοιραζόμενες σελίδες () Δύο διεργασίες μοιράζονται τον ίδιο κώδικα αλλά διαφορετικά δεδομένα (πχ ένας επεξεργαστής κειμένου επεξεργάζεται δύο κείμενα). Τι συμβαίνει αν 'ανοίξουμε' δύο φορές το ίδιο κείμενο; Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Διαμοιραζόμενες σελίδες () editor process code data - P data page tables 0 P0 P P editor data - P0 editor editor 0 data - P Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Διαμοιραζόμενες βιβλιοθήκες Μια βιβλιοθήκη (read only) που χρησιμοποιείται από δύο διεργασίες Πώς είναι δυνατή η αναφορά στις ίδιες φυσικές διευθύνσεις από διαφορετικές διεργασίες κατά την εκτέλεση (σύνδεση, φόρτωση); Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Κλείδωμα πλαισίων (Frame Locking) Αν ένα πλαίσιο κλειδωθεί η σελίδα που περιέχεται σ αυτό δεν μπορεί να αντικατασταθεί Πυρήνας του Λ.Σ. Δομές ελέγχου I/O buffers Συσχέτιση ενός bit κλειδώματος με κάθε πλαίσιο Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Εμπλοκή του λ.σ. στη σελιδοποίηση. Δημιουργία διεργασίας Καθορισμός μεγεθών (εικόνα διεργασίας) Δημιουργία πίνακα σελίδων, δέσμευση χώρου στη μνήμη Δέσμευση χώρου στη περιοχή εναλλαγής (δίσκο). Εκτέλεση διεργασίας Φόρτωση τιμών πίνακα σελίδων διεργασίας στην MMU Καθαρίζεται το TLB Προαιρετική προ-φόρτωση σελίδων για αποφυγή σφαλμάτων. Σφάλμα σελίδας Καθορισμός της εικονικής διεύθυνσης που προκαλεί σφάλμα Αντικατάσταση σελίδας, φόρτωση σελίδας που χρειάζεται. Τερματισμός διεργασίας Αποδέσμευση σελίδων στη μνήμη και στο χώρο εναλλαγής Αποδέσμευση του πίνακα σελίδων

Διαχείριση σφάλματος σελίδας () Το υλικό προκαλεί διακοπή προς το πυρήνα, σώζει τον μετρητή προγράμματος, και ξεκινά τη ρουτίνα διακοπής. Η ρουτίνα διακοπής (γλώσσα assembly) σώζει τους καταχωρητές και τα υπόλοιπα στοιχεία της διεργασίας που προκάλεσε το σφάλμα. Ο έλεγχος μεταφέρεται στο πυρήνα. Ο πυρήνας ανακαλύπτει οτι πρόκειται για σφάλμα σελίδας και καθορίζει την εικονική διεύθυνση που προκάλεσε το σφάλμα. Αυτή συνήθως σώζεται σε καταχωρητή στο προηγούμενο βήμα. Το λ.σ. ελέγχει αν η εικονική διεύθυνση είναι έγκυρη και άν υπάρχουν δικαιώματα πρόσβασης. Αν υπάρχει κάποιο πρόβλημα τότε η διεργασία που προκάλεσε το σφάλμα τερματίζεται. Αν δεν υπάρχει κάποιο πρόβλημα τότε το λ.σ. ψάχνει για ελεύθερο πλαίσιο σελίδας. Αν το βρεί συνεχίζει παρακάτω, αλλιώς εκτελείται ο αλγόριθμος αντικατάστασης και προσδιορίζεται το πλαίσιο σελίδας που θα εναλλαγεί. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Διαχείριση σφάλματος σελίδας () Αν το πλαίσιο σελίδας που επιλέχθηκε είναι 'βρώμικο' η σελίδα χρονοπρογραμματίζεται για εναλλαγή στο δίσκο. Η διεργασία που προκάλεσε σφάλμα αναστέλλεται για εγγραφή στο /ανάγνωση από το δίσκο και εκτελείται θεματική εναλλαγή. Αν το πλαίσιο σελίδας είναι ελεύθερο ή 'καθαρό', τότε απαιτείται μόνο ανάγνωση από το δίσκο. Η διεργασία που προκάλεσε το σφάλμα αναστέλλεται για ανάγνωση από το δίσκο και εκτελείται θεματική εναλλαγή. Όταν η Ε/Ε με το δίσκο ολοκληρωθεί, το λ.σ. τοποθετεί τη σελίδα στο πλαίσιο και ενημερώνει το πίνακα σελίδων Ο μετρητής προγράμματος της διεργασίας που προκάλεσε το σφάλμα σελίδας επαναφέρεται στην εντολή που προκάλεσε το σφάλμα. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Διαχείριση σφάλματος σελίδας () Η διεργασία χρονοπρογραμματίζεται για εκτέλεση και το λ.σ. Επιστρέφει τον έλεγχο στη ρουτίνα διακοπής που το κάλεσε. Η ρουτίνα διακοπής ξαναφορτώνει τους καταχωρητές και τα υπόλοιπα στοιχεία της διεργασίας που είχε σώσει. H διεργασία συνεχίζει κανονικά την εκτέλεσή της σαν να μην είχε συμβεί σφάλμα σελίδας. Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Σύνοψη διαχείρισης σφάλματος σελίδας. OS looks at another table to decide: Invalid reference abort. Just not in memory. Operating System. Trap on page fault. Αναφορά στη σελίδα M (η σελίδα M υπάρχει?) Page table load M. Restart instruction i Physical memory. Reset tables, validation bit = free frame. Bring in missing page Disk Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Ενδεικτικοί χρόνοι σφάλματος σελίδας Step interrupt handling frame allocation Actions Time a few hundred to a few 000 * 0 ns thousand instructions = 0 µs a few hundred to a few 000 * 0 ns thousand instructions = 0 µs page replacement some instructions, write a 0 ms page to disk page loading some instructions, read a page 0 ms from disk page table a few hundred instructions 00 * 0 ns update = µs instruction a few instructions 0 * 0 ns restart = 0. µs Total time dominated by I/O operations 0... 0 ms Υποθέσεις : 00 MHz CPU clock cycle, 0 ms μέσος χρόνος προσπέλασης και μεταφοράς ανά σελίδα Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Σφάλματα σελίδας και απόδοση () Μια εντολή που κανονικά χρειάζεται μερικές δεκάδες nanoseconds θα χρειαστεί δεκάδες milliseconds αν συμβεί σφάλμα σελίδας Η συχνότητα σφαλμάτων σελίδας είναι πολύ σημαντική για την απόδοση του συστήματος. Ο ρυθμός σφαλμάτων σελίδας πρέπει να παραμένει χαμηλός. EAT = hit ratio * entry found + (-hit ratio) * entry not found Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Σφάλματα σελίδας και απόδοση () Ποια είναι η απώλεια απόδοσης για ρυθμό σφαλμάτων σελίδας σε 00,000; Χρόνος προσπέλασης χωρίς σφάλμα σελίδας: (Χρόνος προσπέλασης μνήμης συμπεριλαμβάνοντας τον πίνακα σελίδων και το TLB) = 00 ns Χρόνος προσπέλασης με σφάλμα σελίδας και με αντικατάσταση σελίδας για το 0% των σφαλμάτων σελίδας : (0 ms ο χρόνος φόρτωσης μιας σελίδας σε ελεύθερο πλαίσιο και 0 ms ο χρόνος αντικατάστασης σελίδας λόγω μη ύπαρξης ελεύθερου πλαισίου) 0. * 0 ms + 0. * 0 ms = 0 ms EAT = 0.0000 * 0 ms + (- 0.0000) * 00 ns = 00 ns + 99.999999 ns 00 ns - απώλεια 00%! Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009

Σφάλματα σελίδας και απόδοση () Ποιος είναι ο ρυθμός σφαλμάτων, με τις ίδιες παραδοχές, ώστε να υπάρξει απώλεια απόδοσης 0% ; Η απώλεια απόδοσης κατά 0% αντιστοιχεί σε EAT = 0 ns 0 ns > p * 0 ms + (- p) * 00 ns > p * 0,000,000 ns + 00n 0 ns > p * 0,000,000 ns p < 0 / 0,000,000 < /,000,000 Tanenbaum, Modern Operating Systems e, (c) 008 Prentice-Hall, Inc. All rights reserved. 0--009