Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εικονική Μνήμη (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017
Εικονική Μνήμη - Σύνοψη Σελιδοποίηση Λογικές διευθύνσεις, Πίνακες Σελίδων Εικονική Μνήμη με σελιδοποίηση Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Σελιδοποίηση κατ απαίτηση Σφάλμα σελίδας Χειρισμός από το ΛΣ Δημιουργία διεργασιών σε συστήματα Εικονικής Μνήμης Αντιγραφή κατά την Εγγραφή (Copy-on-Wrte) Απεικόνιση Αρχείων στην Εικονική Μνήμη
Εικονική Μνήμη - Σύνοψη Σελιδοποίηση Λογικές διευθύνσεις, Πίνακες Σελίδων Εικονική Μνήμη με σελιδοποίηση Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Σελιδοποίηση κατ απαίτηση Σφάλμα σελίδας Χειρισμός από το ΛΣ Δημιουργία διεργασιών σε συστήματα Εικονικής Μνήμης Αντιγραφή κατά την Εγγραφή (Copy-on-Wrte) Απεικόνιση Αρχείων στην Εικονική Μνήμη
Κύρια Μνήμη (1) CPU0 καταχωρητές $ CPU1 καταχωρητές $ Μονάδες Ε/Ε Κύρια Μνήμη Κάθε CPU αναφέρεται απευθείας σε καταχωρητές και μνήμη Συσκευές Ε/Ε εκτελούν Απευθείας Πρόσβαση στη Μνήμη (Drect Memory Access - DMA)
Κύρια Μνήμη (1) CPU0 καταχωρητές $ CPU1 καταχωρητές $ Μονάδες Ε/Ε DMA Κύρια Μνήμη Κάθε CPU αναφέρεται απευθείας σε καταχωρητές και μνήμη Συσκευές Ε/Ε εκτελούν Απευθείας Πρόσβαση στη Μνήμη (Drect Memory Access - DMA)
Μεταγλώττιση Φόρτωση - Εκτέλεση πηγαίος κώδικας μεταγλωττιστής χρόνος μεταγλώττισης (comple tme) κι άλλα objects object συνδέτης δυναμικές βιβλιοθήκες εκτελέσιμο δυναμικός συνδέτης / φορτωτής χρόνος φόρτωσης (load tme) τελικό πρόγραμμα στην κύρια μνήμη χρόνος εκτέλεσης (executon tme)
Μετατοπίσιμος κώδικας func1 func2 Μετατοπίσιμος κώδικας (πχ. οbject) movl $0x5, val call func2 ret func2 func 64 70 76 Συνδέτης / φορτωτής func2 5000 Απόλυτος κώδικας movl $0x5, val call func2 ret func2 val 4 bytes val 7010 4 bytes func+2 &val func+8 &func2 Πίνακας Μετατόπισης Ο κώδικας διορθώνεται με βάση τον πίνακα μετατόπισης Στο χρόνο μεταγλώττισης (συνδέτης) ή εκτέλεσης (φορτωτής)
Μετατοπίσιμος κώδικας func1 func2 Μετατοπίσιμος κώδικας (πχ. οbject) movl $0x5, val call func2 ret func2 func 64 70 76 Συνδέτης / φορτωτής func2 5000 Απόλυτος κώδικας movl $0x5, 7010 val call func2 ret func2 val 4 bytes val 7010 4 bytes func+2 &val func+8 &func2 Πίνακας Μετατόπισης Ο κώδικας διορθώνεται με βάση τον πίνακα μετατόπισης Στο χρόνο μεταγλώττισης (συνδέτης) ή εκτέλεσης (φορτωτής)
Μετατοπίσιμος κώδικας func1 func2 Μετατοπίσιμος κώδικας (πχ. οbject) movl $0x5, val call func2 ret func2 func 64 70 76 Συνδέτης / φορτωτής func2 5000 Απόλυτος κώδικας movl $0x5, 7010 val call $5000 func2 ret func2 val 4 bytes val 7010 4 bytes func+2 &val func+8 &func2 Πίνακας Μετατόπισης Ο κώδικας διορθώνεται με βάση τον πίνακα μετατόπισης Στο χρόνο μεταγλώττισης (συνδέτης) ή εκτέλεσης (φορτωτής)
Σελιδοποίηση (1) Ο πιο συχνός τρόπος μετάφρασης διευθύνσεων Ο χώρος φυσικών διευθύνσεων χωρίζεται σε πλαίσια σταθερού μεγέθους (π.χ., 4096 bytes) Ο χώρος λογικών / εικονικών διευθύνσεων χωρίζεται σε σελίδες, ίδιου μεγέθους με τα πλαίσια Κάθε σελίδα αντιστοιχίζεται σε οποιοδήποτε πλαίσιο χωρίς περιορισμό συνεχόμενης αποθήκευσης η διεργασία ζει σε διάσπαρτα φυσικά τμήματα αλλά σε γραμμικό χώρο εικονικών διευθύνσεων Το Υλικό (MMU) αναλαμβάνει τη μετάφραση
Σελιδοποίηση (2) Χώρος εικονικών διευθύνσεων Χώρος εικονικών διευθύνσεων P 0 P 1 Διακριτοί, γραμμικοί χώροι εικονικών διευθύνσεων Προστασία μνήμης Χώρος φυσικών διευθύσεων (Κύρια Μνήμη) Μια διεργασία δεν μπορεί καν να αναφερθεί σε ξένες διευθύνσεις
Σελιδοποίηση (2) Χώρος εικονικών διευθύνσεων Χώρος εικονικών διευθύνσεων P 0 P 1 Διακριτοί, γραμμικοί χώροι εικονικών διευθύνσεων Προστασία μνήμης Χώρος φυσικών διευθύσεων (Κύρια Μνήμη) Μια διεργασία δεν μπορεί καν να αναφερθεί σε ξένες διευθύνσεις
Σελιδοποίηση (2) Χώρος εικονικών διευθύνσεων Χώρος εικονικών διευθύνσεων P 0 P 1 Διακριτοί, γραμμικοί χώροι εικονικών διευθύνσεων Προστασία μνήμης Μια διεργασία δεν μπορεί καν να αναφερθεί σε ξένες διευθύνσεις Μοιραζόμενη μνήμη, με αντιστοίχιση στο ίδιο πλαίσιο Χώρος φυσικών διευθύσεων (Κύρια Μνήμη)
Σελιδοποίηση (2) Χώρος εικονικών διευθύνσεων Χώρος εικονικών διευθύνσεων P 0 P 1 Διακριτοί, γραμμικοί χώροι εικονικών διευθύνσεων Προστασία μνήμης Μια διεργασία δεν μπορεί καν να αναφερθεί σε ξένες διευθύνσεις Μοιραζόμενη μνήμη, με αντιστοίχιση στο ίδιο πλαίσιο Χώρος φυσικών διευθύσεων (Κύρια Μνήμη)
Σελιδοποίηση (2) Χώρος εικονικών διευθύνσεων Χώρος εικονικών διευθύνσεων P 0 P 1 Διακριτοί, γραμμικοί χώροι εικονικών διευθύνσεων Προστασία μνήμης Χώρος φυσικών διευθύσεων (Κύρια Μνήμη) Μια διεργασία δεν μπορεί καν να αναφερθεί σε ξένες διευθύνσεις Μοιραζόμενη μνήμη, με αντιστοίχιση στο ίδιο πλαίσιο Δεν έχει εξωτερικό κατακερματισμό
Σελιδοποίηση (3) Μετάφραση διευθύνσεων με πίνακες σελίδων Τηρούνται από το ΛΣ, τους συμβουλεύεται το υλικό Μέγεθος σελίδας; 4 KB 16MB Μεγάλο μέγεθος μικρό κόστος διαχείρισης μικρότεροι πίνακες σελίδων εντονότερος εσωτερικός κατακερματισμός Μικρό μέγεθος αποφεύγεται ο εσωτερικός κατακερματισμός μεγαλύτερο κόστος διαχείρισης
Σελιδοποίηση - Μετάφραση διευθύνσεων Μέγεθος σελίδας 2 n. Γιατί πρέπει να είναι δύναμη του 2; Διεύθυνση των m bts, χώρος εικονικών διεύθυνσεων 2 m Εικονική διεύθυνση: αριθμός σελίδας + μετατόπιση αριθμός σελίδας (page number) p m n μετατόπιση (offset) d n
Σελιδοποίηση - Μετάφραση διευθύνσεων Μέγεθος σελίδας 2 n. Γιατί πρέπει να είναι δύναμη του 2; Διεύθυνση των m bts, χώρος εικονικών διεύθυνσεων 2 m Εικονική διεύθυνση: αριθμός σελίδας + μετατόπιση αριθμός σελίδας (page number) p m n μετατόπιση (offset) d n Πίνακας σελίδων
Σελιδοποίηση - Μετάφραση διευθύνσεων Μέγεθος σελίδας 2 n. Γιατί πρέπει να είναι δύναμη του 2; Διεύθυνση των m bts, χώρος εικονικών διεύθυνσεων 2 m Εικονική διεύθυνση: αριθμός σελίδας + μετατόπιση αριθμός σελίδας (page number) p m n μετατόπιση (offset) d n p Πίνακας σελίδων
Σελιδοποίηση - Μετάφραση διευθύνσεων Μέγεθος σελίδας 2 n. Γιατί πρέπει να είναι δύναμη του 2; Διεύθυνση των m bts, χώρος εικονικών διεύθυνσεων 2 m Εικονική διεύθυνση: αριθμός σελίδας + μετατόπιση αριθμός σελίδας (page number) p m n μετατόπιση (offset) d n p f Πίνακας σελίδων
Διεπίπεδη Σελιδοποίηση 0 εξωτερικός πίνακας σελίδων 2 1... 5 8 4 μνήμη 0 1 2 3 4 5 6 7 8 9 10 11 πίνακας σελίδων
Σελιδοποίηση Προστασία (1) Επιβολή δικαιωμάτων πρόσβασης με bts προστασίας ανά σελίδα εικονικής μνήμης Π.χ., για μοιραζόμενη μνήμη Μία διεργασία μπορεί να γράψει, οι άλλες μόνο διαβάζουν Bts πρόσβασης Read, Wrte, execute Bt εγκυρότητας Vald, Invald Σε περίπτωση μη επιτρεπόμενης πρόσβασης;
Σελιδοποίηση Προστασία (1) Επιβολή δικαιωμάτων πρόσβασης με bts προστασίας ανά σελίδα εικονικής μνήμης Π.χ., για μοιραζόμενη μνήμη Μία διεργασία μπορεί να γράψει, οι άλλες μόνο διαβάζουν Bts πρόσβασης Read, Wrte, execute Bt εγκυρότητας Vald, Invald Σε περίπτωση μη επιτρεπόμενης πρόσβασης; Trap! Εξαίρεση σελίδας Page fault
Σελιδοποίηση Προστασία (2) σελίδα 0 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 7 0 Πίνακας σελίδων 0 1 σελίδα 2 2 σελίδα 0 3 4 5 6 7 σελίδα 3 8 Φυσική Μνήμη
Σελιδοποίηση Προστασία (2) σελίδα 0 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 r, x r, x r 7 r, w 0 Πίνακας σελίδων v v v v 0 1 σελίδα 2 2 σελίδα 0 3 4 5 6 7 σελίδα 3 8 Φυσική Μνήμη
Σελιδοποίηση Προστασία (2) σελίδα 0 σελίδα 2 σελίδα 3 σελίδα 4 Εικονική Μνήμη 2 5 1 r, x r, x r 7 r, w 0 Πίνακας σελίδων v v v v 0 1 σελίδα 2 2 σελίδα 0 3 4 5 6 7 σελίδα 3 8 Φυσική Μνήμη Ποιες σελίδες είναι κειμένου-κώδικα, ποιες δεδομένων;
Εικονική Μνήμη - Σύνοψη Σελιδοποίηση Λογικές διευθύνσεις, Πίνακες Σελίδων Εικονική Μνήμη με σελιδοποίηση Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Σελιδοποίηση κατ απαίτηση Σφάλμα σελίδας Χειρισμός από το ΛΣ Δημιουργία διεργασιών σε συστήματα Εικονικής Μνήμης Αντιγραφή κατά την Εγγραφή (Copy-on-Wrte) Απεικόνιση Αρχείων στην Εικονική Μνήμη
Vrtual Memory Εικονική Μνήμη Εικονική μνήμη: Λογική μνήμη διαχωρισμένη από τη φυσική μνήμη ανεξαρτησία από το μέγεθος της φυσικής μνήμης χώρος λογικών διευθύνσεων πολύ μεγαλύτερος από χώρο φυσικών διευθύνσεων Τα υπό εκτέλεση προγράμματα βρίσκονται μερικώς στην κύρια μνήμη τα υπόλοιπα δεδομένα πού βρίσκονται; Υλοποίηση: Κατ απαίτηση σελιδοποίηση (demand pagng) Κατ απαίτηση κατάτμηση (demand segmentaton)
Περισσότερη Μνήμη! σελίδα 0 2 σελίδα 3 σελίδα 4 σελίδα 5 σελίδα 6... πλαίσιο 0 πλαίσιο πλαίσιο 2.. πλαίσιο F Φυσική Μνήμη σ1 σελίδα N Εικονική Μνήμη σ4 Δίσκος
Περισσότερη Μνήμη! σελίδα 0 2 σελίδα 3 σελίδα 4 σελίδα 5 σελίδα 6... πλαίσιο 0 πλαίσιο πλαίσιο 2.. πλαίσιο F Φυσική Μνήμη σ1 σελίδα N Εικονική Μνήμη σ4 Δίσκος
Περισσότερη Μνήμη! σελίδα 0 2 σελίδα 3 σελίδα 4 σελίδα 5 σελίδα 6... Πίνακας Σελίδων (αρκεί;) πλαίσιο 0 πλαίσιο πλαίσιο 2.. πλαίσιο F Φυσική Μνήμη σ1 σελίδα N Εικονική Μνήμη σ4 Δίσκος
Περισσότερη Μνήμη! σελίδα 0 2 σελίδα 3 σελίδα 4 σελίδα 5 σελίδα 6... σελίδα N Εικονική Μνήμη Πίνακας Σελίδων (αρκεί;) Χάρτης Μνήμης (δομή του ΛΣ) πλαίσιο 0 πλαίσιο πλαίσιο 2.. πλαίσιο F Φυσική Μνήμη σ1 σ4 Δίσκος
Χώρος Εικονικών Διευθύνσεων Max Στοίβα Σωρός Δεδομένα 0 Κείμενο
Χώρος Εικονικών Διευθύνσεων Max Στοίβα Σωρός Δεδομένα 0 Κείμενο
Χώρος Εικονικών Διευθύνσεων 64-bt εικονική διεύθυνση: 16EB Max Στοίβα Σωρός Δεδομένα 0 Κείμενο
Εικονική Μνήμη - Σύνοψη Σελιδοποίηση Λογικές διευθύνσεις, Πίνακες Σελίδων Εικονική Μνήμη με σελιδοποίηση Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Σελιδοποίηση κατ απαίτηση Σφάλμα σελίδας Χειρισμός από το ΛΣ Δημιουργία διεργασιών σε συστήματα Εικονικής Μνήμης Αντιγραφή κατά την Εγγραφή (Copy-on-Wrte) Απεικόνιση Αρχείων στην Εικονική Μνήμη
Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Max Στοίβα Σωρός 0 Εικονική Μνήμη P 0 Δεδομένα Κείμενο Φυσική Μνήμη
Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Max Στοίβα Σωρός μοιραζόμενη βιβλιοθήκη 0 Εικονική Μνήμη P 0 Δεδομένα Κείμενο Φυσική Μνήμη
Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Max Στοίβα μοιραζόμενη βιβλιοθήκη Σωρός μοιραζόμενη βιβλιοθήκη 0 Εικονική Μνήμη P 0 Δεδομένα Κείμενο Φυσική Μνήμη
Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Max Στοίβα Max Στοίβα μοιραζόμενη βιβλιοθήκη μοιραζόμενη βιβλιοθήκη Σωρός Σωρός Δεδομένα Δεδομένα 0 Εικονική Μνήμη P 0 Κείμενο Φυσική Μνήμη 0 Εικονική Μνήμη P 1 Κείμενο
Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Max Στοίβα Max Στοίβα μοιραζόμενη βιβλιοθήκη μοιραζόμενη βιβλιοθήκη μοιραζόμενη βιβλιοθήκη Σωρός Σωρός Δεδομένα Δεδομένα 0 Εικονική Μνήμη P 0 Κείμενο Φυσική Μνήμη 0 Εικονική Μνήμη P 1 Κείμενο
Εικονική Μνήμη - Σύνοψη Σελιδοποίηση Λογικές διευθύνσεις, Πίνακες Σελίδων Εικονική Μνήμη με σελιδοποίηση Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Σελιδοποίηση κατ απαίτηση Σφάλμα σελίδας Χειρισμός από το ΛΣ Δημιουργία διεργασιών σε συστήματα Εικονικής Μνήμης Αντιγραφή κατά την Εγγραφή (Copy-on-Wrte) Απεικόνιση Αρχείων στην Εικονική Μνήμη
Σελιδοποίηση κατ απαίτηση (Demand Pagng) Σελίδες εικονικής μνήμης ζουν σε φυσική μνήμη και δίσκο Όταν μια διεργασία χρειαστεί συγκεκριμένη σελίδα (αναφορά), τότε φέρε τη στη μνήμη Πλεονεκτήματα; Λιγότερη Είσοδος / Έξοδος Γρηγορότερη απόκριση η διεργασία ξεκινά αμέσως Περισσότερες διεργασίες / περισσότεροι χρήστες Παρόμοια με την Εναλλαγή (swappng) Σε επίπεδο σελίδας, με pager
Μεταφορά σελίδων από/προς Δίσκο swap out Σελίδες διεργασίας Α Σελίδες διεργασίας Β swap n Κύρια Μνήμη Δίσκος
Μεταφορά σελίδων από/προς Δίσκο swap out Σελίδες διεργασίας Α Σελίδες διεργασίας Β swap n Κύρια Μνήμη Δίσκος Όχι κατ ανάγκη σε συνεχόμενα πλαίσια ή συνεχόμενα τμήματα στο δίσκο
Bt εγκυρότητας στον πίνακα σελίδων Είναι κάθε αναφορά στο χώρο εικονικών διευθύνσεων έγκυρη; 0 σελίδα A 1 σελίδα B1 2 σελίδα C1 3 σελίδα D 4 σελίδα E 5 σελίδα F 6 σελίδα G 7 σελίδα Η Εικονική Μνήμη 1 4 3 Πίνακας σελίδων
Bt εγκυρότητας στον πίνακα σελίδων Είναι κάθε αναφορά στο χώρο εικονικών διευθύνσεων έγκυρη; Επιπλέον bt στον πίνακα σελίδων: Vald Invald 0 1 2 3 4 5 6 σελίδα A σελίδα B1 σελίδα C1 σελίδα D σελίδα E σελίδα F σελίδα G 7 σελίδα Η Εικονική Μνήμη 1 v 4 v 3 v Πίνακας σελίδων
Bt εγκυρότητας στον πίνακα σελίδων 0 1 2 3 4 5 6 σελίδα A σελίδα B1 σελίδα C1 σελίδα D σελίδα E σελίδα F σελίδα G 7 σελίδα Η Εικονική Μνήμη Πίνακας σελίδων Είναι κάθε αναφορά στο χώρο εικονικών διευθύνσεων έγκυρη; Επιπλέον bt στον πίνακα σελίδων: Vald Invald Τι συμβαίνει αν γίνει αναφορά σε Invald σελίδα; Page Fault 1 v 4 v 3 v
Μερικές σελίδες είναι στο δίσκο 0 1 2 3 4 5 6 σελίδα A σελίδα B1 σελίδα C1 σελίδα D σελίδα E σελίδα F σελίδα G 7 σελίδα Η Εικονική Μνήμη
Μερικές σελίδες είναι στο δίσκο 0 1 2 3 4 5 6 σελίδα A σελίδα B1 σελίδα C1 σελίδα D σελίδα E σελίδα F σελίδα G 7 σελίδα Η Εικονική Μνήμη 1 v 4 v 3 v Πίνακας σελίδων
Μερικές σελίδες είναι στο δίσκο 0 1 2 3 4 5 6 σελίδα A σελίδα B1 σελίδα C1 σελίδα D σελίδα E σελίδα F σελίδα G 7 σελίδα Η Εικονική Μνήμη 1 v 4 v 3 v Πίνακας σελίδων 0 1 2 3 4 5 6 σελίδα A 1 E D 7 Φυσική Μνήμη
Μερικές σελίδες είναι στο δίσκο 0 1 2 3 4 5 6 σελίδα A σελίδα B1 σελίδα C1 σελίδα D σελίδα E σελίδα F σελίδα G 7 σελίδα Η Εικονική Μνήμη 1 v 4 v 3 v Πίνακας σελίδων 0 1 2 3 4 5 6 7 σελίδα A 1 E D Φυσική Μνήμη F C B G Δίσκος H
Μερικές σελίδες είναι στο δίσκο Ποιος ξέρει πού είναι οι σελίδες στο δίσκο; 0 σελίδα A 1 σελίδα B1 2 σελίδα C1 3 σελίδα D 4 σελίδα E 5 σελίδα F 6 σελίδα G 7 σελίδα Η Εικονική Μνήμη 1 v 4 v 3 v Πίνακας σελίδων 0 1 2 3 4 5 6 7 σελίδα A 1 E D Φυσική Μνήμη F C B G Δίσκος H
Μερικές σελίδες είναι στο δίσκο Ποιος ξέρει πού είναι οι σελίδες στο δίσκο; Το ΛΣ 0 1 2 3 4 5 6 σελίδα A σελίδα B1 σελίδα C1 σελίδα D σελίδα E σελίδα F σελίδα G 7 σελίδα Η Εικονική Μνήμη 1 v 4 v 3 v Πίνακας σελίδων 0 1 2 3 4 5 6 7 σελίδα A 1 E D Φυσική Μνήμη F C B G Δίσκος H
Μερικές σελίδες είναι στο δίσκο 0 σελίδα A 1 σελίδα B1 2 σελίδα C1 3 σελίδα D 4 σελίδα E 5 σελίδα F 6 σελίδα G 7 σελίδα Η Εικονική Μνήμη Πίνακας σελίδων Ποιος ξέρει πού είναι οι σελίδες στο δίσκο; Το ΛΣ Αναφορά σε σελίδα που δεν υπάρχει στη μνήμη; 1 v 4 v 3 v 0 1 2 3 4 5 6 7 σελίδα A 1 E D Φυσική Μνήμη F C B G Δίσκος H
Μερικές σελίδες είναι στο δίσκο 0 1 2 3 4 5 6 σελίδα A σελίδα B1 σελίδα C1 σελίδα D σελίδα E σελίδα F σελίδα G 7 σελίδα Η Εικονική Μνήμη Πίνακας σελίδων Ποιος ξέρει πού είναι οι σελίδες στο δίσκο; Το ΛΣ Αναφορά σε σελίδα που δεν υπάρχει στη μνήμη; Page fault! 1 v 4 v 3 v 0 1 2 3 4 5 6 7 σελίδα A 1 E D Φυσική Μνήμη F C B G Δίσκος H
Εικονική Μνήμη - Σύνοψη Σελιδοποίηση Λογικές διευθύνσεις, Πίνακες Σελίδων Εικονική Μνήμη με σελιδοποίηση Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Σελιδοποίηση κατ απαίτηση Σφάλμα σελίδας Χειρισμός από το ΛΣ Δημιουργία διεργασιών σε συστήματα Εικονικής Μνήμης Αντιγραφή κατά την Εγγραφή (Copy-on-Wrte) Απεικόνιση Αρχείων στην Εικονική Μνήμη
Σφάλμα Σελίδας Page Fault (1) Εξαίρεση: Το ΛΣ ξυπνάει Το πρόγραμμα έκανε αναφορά σε άκυρη σελίδα
Σφάλμα Σελίδας Page Fault (1) Εξαίρεση: Το ΛΣ ξυπνάει Το πρόγραμμα έκανε αναφορά σε άκυρη σελίδα Γιατί; Το ΛΣ μελετά τον πίνακα μνήμης του
Σφάλμα Σελίδας Page Fault (1) Εξαίρεση: Το ΛΣ ξυπνάει Το πρόγραμμα έκανε αναφορά σε άκυρη σελίδα Γιατί; Το ΛΣ μελετά τον πίνακα μνήμης του Μη επιτρεπόμενη πρόσβαση π.χ. λόγω bug τερματισμός προγράμματος ( Segmentaton Fault )
Σφάλμα Σελίδας Page Fault (1) Εξαίρεση: Το ΛΣ ξυπνάει Το πρόγραμμα έκανε αναφορά σε άκυρη σελίδα Γιατί; Το ΛΣ μελετά τον πίνακα μνήμης του Μη επιτρεπόμενη πρόσβαση π.χ. λόγω bug τερματισμός προγράμματος ( Segmentaton Fault ) Επιτρεπόμενη πρόσβαση, η σελίδα είναι στο δίσκο πρέπει να έρθει στην Κύρια Μνήμη έως τότε, η διεργασία σε τι κατάσταση βρίσκεται;
Εξυπηρέτηση σφάλματος σελίδας (1) Βρες ένα ελεύθερο πλαίσιο μνήμης Υπάρχει πάντα; Φέρε τα δεδομένα της σελίδας από το δίσκο σε αυτό το πλαίσιο Θέσε ανάλογη εγγραφή στον πίνακα σελίδων Με bt εγκυρότητας Vald Επίστρεψε από τη διακοπή, στην εντολή που προκάλεσε την εξαίρεση Η ΚΜΕ τι κάνει, μέχρι να έρθει η σελίδα στην Κύρια Μνήμη;
Εξυπηρέτηση σφάλματος σελίδας (2) PC load M Υπό εκτέλεση κώδικας 0 1 2 3 4 5 6 7 Φυσική Μνήμη Δίσκος
Εξυπηρέτηση σφάλματος σελίδας (2) PC load M Υπό εκτέλεση κώδικας 1 αναφορά 101 v 104 v Πίνακας σελίδων 0 1 2 3 4 5 6 7 Φυσική Μνήμη Δίσκος
Εξυπηρέτηση σφάλματος σελίδας (2) PC load M Υπό εκτέλεση κώδικας ρουτίνα χειρισμού σφάλματος σελίδας 1 αναφορά 101 v 104 v Πίνακας σελίδων 2 trap: εξαίρεση 0 1 2 3 4 5 6 7 Φυσική Μνήμη Δίσκος
Εξυπηρέτηση σφάλματος σελίδας (2) PC load M Υπό εκτέλεση κώδικας ρουτίνα χειρισμού σφάλματος σελίδας 1 αναφορά 101 v 104 v Πίνακας σελίδων 3 σελίδα στο δίσκο: εύρεση πλαισίου, ανάγνωση από δίσκο 2 trap: εξαίρεση 0 1 2 3 4 5 6 σελίδα που περιέχει το Μ 7 Φυσική Μνήμη Δίσκος
Εξυπηρέτηση σφάλματος σελίδας (2) PC load M Υπό εκτέλεση κώδικας ρουτίνα χειρισμού σφάλματος σελίδας 1 αναφορά 101 v 104 v Πίνακας σελίδων 3 σελίδα στο δίσκο: εύρεση πλαισίου, ανάγνωση από δίσκο 2 trap: εξαίρεση 0 1 2 3 4 5 6 σελίδα για M 4 σελίδα που περιέχει το Μ μεταφορά δεδομένων στο πλαίσιο, τέλος Ε/Ε 7 Φυσική Μνήμη Δίσκος
Εξυπηρέτηση σφάλματος σελίδας (2) PC load M Υπό εκτέλεση κώδικας ρουτίνα χειρισμού σφάλματος σελίδας 1 αναφορά 101 v 4 v 104 v Πίνακας σελίδων 3 5 ανανέωση πίνακα σελίδων σελίδα στο δίσκο: εύρεση πλαισίου, ανάγνωση από δίσκο 2 trap: εξαίρεση 0 1 2 3 4 5 6 7 σελίδα για M Φυσική Μνήμη 4 σελίδα που περιέχει το Μ μεταφορά δεδομένων στο πλαίσιο, τέλος Ε/Ε Δίσκος
Εξυπηρέτηση σφάλματος σελίδας (2) 6 επανεκκίνηση εντολής ρουτίνα χειρισμού σφάλματος σελίδας PC load M Υπό εκτέλεση κώδικας 1 αναφορά 101 v 4 v 104 v Πίνακας σελίδων 3 5 ανανέωση πίνακα σελίδων σελίδα στο δίσκο: εύρεση πλαισίου, ανάγνωση από δίσκο 2 trap: εξαίρεση 0 1 2 3 4 5 6 7 σελίδα για M Φυσική Μνήμη 4 σελίδα που περιέχει το Μ μεταφορά δεδομένων στο πλαίσιο, τέλος Ε/Ε Δίσκος
Εξυπηρέτηση σφάλματος σελίδας (3) Πόσο κοστίζει να έρθει μια σελίδα από το δίσκο;
Εξυπηρέτηση σφάλματος σελίδας (3) Πόσο κοστίζει να έρθει μια σελίδα από το δίσκο; Ας πούμε ~10ms. Τι κάνει η ΚΜΕ όλη αυτή την ώρα;
Εξυπηρέτηση σφάλματος σελίδας (3) Πόσο κοστίζει να έρθει μια σελίδα από το δίσκο; Ας πούμε ~10ms. Τι κάνει η ΚΜΕ όλη αυτή την ώρα; Χειρισμός σφάλματος σελίδας σε πραγματικά συστήματα ασύγχρονος χειρισμός, σε δύο στάδια
Εξυπηρέτηση σφάλματος σελίδας (3) Πόσο κοστίζει να έρθει μια σελίδα από το δίσκο; Ας πούμε ~10ms. Τι κάνει η ΚΜΕ όλη αυτή την ώρα; Χειρισμός σφάλματος σελίδας σε πραγματικά συστήματα ασύγχρονος χειρισμός, σε δύο στάδια
Εξυπηρέτηση σφάλματος σελίδας (3) Πόσο κοστίζει να έρθει μια σελίδα από το δίσκο; Ας πούμε ~10ms. Τι κάνει η ΚΜΕ όλη αυτή την ώρα; Χειρισμός σφάλματος σελίδας σε πραγματικά συστήματα ασύγχρονος χειρισμός, σε δύο στάδια Αρχικοποίηση Ε/Ε όταν ενεργοποιείται η ρουτίνα χειρισμού σφάλματος σελίδας το ΛΣ ζητά από το δίσκο να γεμίσει ένα πλαίσιο μνήμης με τη ζητούμενη σελίδα (DMA) η διεργασία αλλάζει κατάσταση, περνά σε αναμονή
Εξυπηρέτηση σφάλματος σελίδας (3) Πόσο κοστίζει να έρθει μια σελίδα από το δίσκο; Ας πούμε ~10ms. Τι κάνει η ΚΜΕ όλη αυτή την ώρα; Χειρισμός σφάλματος σελίδας σε πραγματικά συστήματα ασύγχρονος χειρισμός, σε δύο στάδια Αρχικοποίηση Ε/Ε όταν ενεργοποιείται η ρουτίνα χειρισμού σφάλματος σελίδας το ΛΣ ζητά από το δίσκο να γεμίσει ένα πλαίσιο μνήμης με τη ζητούμενη σελίδα (DMA) η διεργασία αλλάζει κατάσταση, περνά σε αναμονή Ολοκλήρωση Ε/Ε όταν ο δίσκος ολοκληρώσει τη μεταφορά διακοπή το ΛΣ διορθώνει τον πίνακα σελίδων η διεργασία γίνεται έτοιμη
Σελιδοποίηση κατ απαίτηση Κόστος Ρυθμός σφαλμάτων σελίδας p, 0 p 1 p = 0: δεν γίνονται ποτέ σφάλματα σελίδας p = 1: κάθε πρόσβαση προκαλεί σφάλμα σελίδας Πραγματικός χρόνος πρόσβασης Effectve Access Tme EAT = (1 p) x t m + p x (κόστος σφάλματος σελίδας + κόστος swap out + κόστος swap n + κόστος επανεκκίνησης) π.χ., για p = 1, t m = 200ns, t pf =8ms=8x10 6 ns EAT = 8200ns, χρόνος πρόσβασης 40 φορές μεγαλύτερος!
Εικονική Μνήμη - Σύνοψη Σελιδοποίηση Λογικές διευθύνσεις, Πίνακες Σελίδων Εικονική Μνήμη με σελιδοποίηση Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Σελιδοποίηση κατ απαίτηση Σφάλμα σελίδας Χειρισμός από το ΛΣ Δημιουργία διεργασιών σε συστήματα Εικονικής Μνήμης Αντιγραφή κατά την Εγγραφή (Copy-on-Wrte) Απεικόνιση Αρχείων στην Εικονική Μνήμη
Δημιουργία νέας διεργασίας π.χ. fork() Η νέα διεργασία είναι αντίγραφο της παλιάς Κληρονομεί όλα τα ανοιχτά αρχεία και αντίγραφο της μνήμης της αρχικής διεργασίας Από εκεί και πέρα, εκτελείται ανεξάρτητα Πόσο κοστίζει η δημιουργία της;
Δημιουργία νέας διεργασίας π.χ. fork() Η νέα διεργασία είναι αντίγραφο της παλιάς Κληρονομεί όλα τα ανοιχτά αρχεία και αντίγραφο της μνήμης της αρχικής διεργασίας Από εκεί και πέρα, εκτελείται ανεξάρτητα Πόσο κοστίζει η δημιουργία της; Αντιγράφεται όλη η μνήμη της παλιάς διεργασίας Πάντα;
Δημιουργία νέας διεργασίας π.χ. fork() Η νέα διεργασία είναι αντίγραφο της παλιάς Κληρονομεί όλα τα ανοιχτά αρχεία και αντίγραφο της μνήμης της αρχικής διεργασίας Από εκεί και πέρα, εκτελείται ανεξάρτητα Πόσο κοστίζει η δημιουργία της; Αντιγράφεται όλη η μνήμη της παλιάς διεργασίας Πάντα; Όχι! Σε συστήματα εικονικής μνήμης Αντιγραφή κατά την Εγγραφή Copy-on-Wrte (COW)
Δημιουργία νέας διεργασίας π.χ. fork() Η νέα διεργασία είναι αντίγραφο της παλιάς Κληρονομεί όλα τα ανοιχτά αρχεία και αντίγραφο της μνήμης της αρχικής διεργασίας Από εκεί και πέρα, εκτελείται ανεξάρτητα Πόσο κοστίζει η δημιουργία της; Αντιγράφεται όλη η μνήμη της παλιάς διεργασίας Πάντα; Όχι! Σε συστήματα εικονικής μνήμης Αντιγραφή κατά την Εγγραφή Copy-on-Wrte (COW)
Δημιουργία νέας διεργασίας π.χ. fork() Η νέα διεργασία είναι αντίγραφο της παλιάς Κληρονομεί όλα τα ανοιχτά αρχεία και αντίγραφο της μνήμης της αρχικής διεργασίας Από εκεί και πέρα, εκτελείται ανεξάρτητα Πόσο κοστίζει η δημιουργία της; Αντιγράφεται όλη η μνήμη της παλιάς διεργασίας Πάντα; Όχι! Σε συστήματα εικονικής μνήμης Αντιγραφή κατά την Εγγραφή Copy-on-Wrte (COW)
Copy-on-Wrte Γονική διεργασία (PID=981) A B C Εικονική Μνήμη P0 Φυσική Μνήμη
Copy-on-Wrte Γονική διεργασία (PID=981) A B C σελίδα A 1 B C Εικονική Μνήμη P0 Φυσική Μνήμη
Copy-on-Wrte Γονική διεργασία (PID=981) A B C r, x r, w r, w σελίδα A 1 B C Εικονική Μνήμη P0 Φυσική Μνήμη
Copy-on-Wrte σελίδα A 1 Γονική διεργασία (PID=981) A B B C A B Διεργασία παιδί (PID=987) C C Εικονική Μνήμη P0 Φυσική Μνήμη Εικονική Μνήμη P1
Copy-on-Wrte Γονική διεργασία (PID=981) A B C r, x r r σελίδα A 1 B C r, x r r A B C Διεργασία παιδί (PID=987) Εικονική Μνήμη P0 Φυσική Μνήμη Εικονική Μνήμη P1
Copy-on-Wrte Γονική διεργασία (PID=981) A B C Εικονική Μνήμη P0 r, x r r σελίδα A 1 B C Φυσική Μνήμη r, x r r Wrte C: Page Fault A B C Εικονική Μνήμη P1 Διεργασία παιδί (PID=987)
Copy-on-Wrte Γονική διεργασία (PID=981) A B C r, x r r σελίδα A 1 B C αντίγραφο C r, x r r A B C Διεργασία παιδί (PID=987) Εικονική Μνήμη P0 Φυσική Μνήμη Εικονική Μνήμη P1
Copy-on-Wrte Γονική διεργασία (PID=981) A B C r, x r r σελίδα A 1 B C αντίγραφο C r, x r r, w A B C Διεργασία παιδί (PID=987) Εικονική Μνήμη P0 Φυσική Μνήμη Εικονική Μνήμη P1
Copy-on-Wrte Γονική διεργασία (PID=981) A B C r, x r r σελίδα A 1 B C αντίγραφο D C r, x r r, w A B DC Διεργασία παιδί (PID=987) Εικονική Μνήμη P0 Φυσική Μνήμη Εικονική Μνήμη P1
Copy-on-Wrte Γονική διεργασία (PID=981) A B r, x r σελίδα A 1 B C r, x r A B Διεργασία παιδί (PID=987) C r αντίγραφο D C r, w DC Εικονική Μνήμη P0 Φυσική Μνήμη Εικονική Μνήμη P1 Μετά τη δημιουργία νέας διεργασίας, μοιράζονται σελίδες με διαφορετικά δικαιώματα πρόσβασης
Copy-on-Wrte Γονική διεργασία (PID=981) A B r, x r σελίδα A 1 B C r, x r A B Διεργασία παιδί (PID=987) C r αντίγραφο D C r, w DC Εικονική Μνήμη P0 Φυσική Μνήμη Εικονική Μνήμη P1 Μετά τη δημιουργία νέας διεργασίας, μοιράζονται σελίδες με διαφορετικά δικαιώματα πρόσβασης (Ότ)αν η διεργασία προσπαθήσει να γράψει σε κάποια σελίδα Εύρεση νέου πλαισίου, αντιγραφή και αλλαγή του πίνακα σελίδων
Εικονική Μνήμη - Σύνοψη Σελιδοποίηση Λογικές διευθύνσεις, Πίνακες Σελίδων Εικονική Μνήμη με σελιδοποίηση Δυναμική σύνδεση με μοιραζόμενες βιβλιοθήκες Σελιδοποίηση κατ απαίτηση Σφάλμα σελίδας Χειρισμός από το ΛΣ Δημιουργία διεργασιών σε συστήματα Εικονικής Μνήμης Αντιγραφή κατά την Εγγραφή (Copy-on-Wrte) Απεικόνιση Αρχείων στην Εικονική Μνήμη
Απεικόνιση Αρχείων στη Μνήμη (1) Αντί για read() και wrte(), πρόσβαση σε αρχεία με load και store απλουστεύει τον προγραμματισμό το αρχείο απεικονίζεται σε συνεχόμενο χώρο εικονικής μνήμης Ε/Ε με σελιδοποίηση κατ απαίτηση όταν η διεργασία αναφερθεί σε μια νέα σελίδα το ΛΣ γεμίζει το αντίστοιχο πλαίσιο με δεδομένα από το δίσκο
Απεικόνιση Αρχείων στη Μνήμη (2) Εικονική Μνήμη P 0 fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C
Απεικόνιση Αρχείων στη Μνήμη (2) H Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C
Απεικόνιση Αρχείων στη Μνήμη (2) H Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C
Απεικόνιση Αρχείων στη Μνήμη (2) H Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C A B C
Απεικόνιση Αρχείων στη Μνήμη (2) H Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr A B C H Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr A B C H Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr A B Πίνακας Σελίδων P 0 C H Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr A B Πίνακας Σελίδων P 0 C H Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr A B Πίνακας Σελίδων P 0 C H Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C Page Fault! A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr A B Πίνακας Σελίδων P 0 C read block C HC 102 Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C Page Fault! A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr A B Πίνακας Σελίδων P 0 C HC 102 Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C Page Fault! A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr A B Πίνακας Σελίδων P 0 C HC 102 Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C Page Fault! A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr A B 102 v Πίνακας Σελίδων P 0 C HC 102 Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C Page Fault! A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr A B 102 v Πίνακας Σελίδων P 0 C r,w (δικαιώματα open()) HC 102 Εικονική Μνήμη P 0 Φυσική Μνήμη fd = open( fle ); vaddr = mmap(, fd, ); access vaddr + offset C A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr1 A B C Εικονική Μνήμη P 0 A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr1 A B C B A HC Εικονική Μνήμη P 0 Φυσική Μνήμη A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr1 A B C B A HC Εικονική Μνήμη P 0 Φυσική Μνήμη A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr1 A B C B A HC Εικονική Μνήμη P 0 Φυσική Μνήμη E/E με δίσκο A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr1 A B C B A HC Εικονική Μνήμη P 0 Φυσική Μνήμη A B C
Απεικόνιση Αρχείων στη Μνήμη (2) vaddr1 A B B A C HC Εικονική Μνήμη P 0 Φυσική Μνήμη Εικονική Μνήμη P 1 A B C
Απεικόνιση Αρχείων στη Μνήμη (2) A vaddr2 vaddr1 A B B A B C C HC Εικονική Μνήμη P 0 Φυσική Μνήμη Εικονική Μνήμη P 1 A B C
Απεικόνιση Αρχείων στη Μνήμη (2) A vaddr2 vaddr1 A B B A B C C HC Εικονική Μνήμη P 0 Φυσική Μνήμη Εικονική Μνήμη P 1 A B C
Ερωτήσεις;
Ερωτήσεις; και στη λίστα: OS@lsts.cslab.ece.ntua.gr