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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

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

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

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

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

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

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

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

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

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

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

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

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

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

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

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

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

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

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) 8 Prentice-Hall, Inc. All rights reserved. --9

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

Σελιδοποίηση Σύνοψη () Process Process Control Block Program Data User Stack Shared Address Space Page Table 8 9 8 8 99 8 9 Reference Bit Main Memory Hard Disk

Σελιδοποίηση Σύνοψη () Virtual memory Page Page Page Memory map Page table Page Page Page Physical memory Page n Page Page 8 Αναφορά σελίδας Έλεγχος χάρτη μνήμης Αν υπάρχει αντίστοιχο σημείο εισόδου στον πίνακα σελίδων για πλαίσιο φυσικής μνήμης τότε γίνεται αναφορά σ αυτό Διαφορετικά, η σελίδα δεν υπάρχει στη φυσική μνήμη και πρέπει να μεταφερθεί από τον δίσκο Αν η φυσική μνήμη είναι πλήρης, Εύρεση σελίδας προς αντικατάσταση Εναλλαγή στον δίσκο

Αντικατάσταση σελίδων Ασχολείται με την επιλογή μιας σελίδας στη μνήμη, η οποία θα αντικατασταθεί μόλις θα πρέπει να φορτωθεί μια νέα σελίδα. Το θέμα σχετίζεται και με πλήθος άλλων, όπως: Το πλήθος των πλαισίων που ανατίθενται σε κάθε ενεργή διεργασία Το σύνολο των υποψηφίων προς αντικατάσταση σελίδων Το λειτουργικό σύνολο (δες ζητήματα υλοποίησης και μοντελοποίησης)

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

Αλγόριθμοι αντικατάστασης σελίδων () PC H Load M J M Proc s page table v vi v i Process s logical memory PC A B D E Proc s page table v i v v Process s logical memory Δεν υπάρχουν ελεύθερα πλαίσια Εύρεση μιας σελίδας προς αντικατάσταση Αν φύγει η M θα προκληθεί σφάλμα σελίδας Αν φύγει η H πιθανόν να εξυπηρετεί Ο αλγόριθμος αντικατάστασης πρέπει να ελαχιστοποιεί τα σφάλματα σελίδας OS OS D H Load M J A? E Physical memory B M

Αλγόριθμοι αντικατάστασης σελίδων () present/absent frame dirty/clean. Clear all bits of the swapped frame entry f 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

Αποτίμηση των αλγορίθμων Διατήρηση του πλήθους των σφαλμάτων σελίδων όσο γίνεται χαμηλά. Η απόδοση των αλγορίθμων αντικατάστασης κρίνεται από τα σφάλματα που παράγονται σε σχέση με το αλφαριθμητικό αναφοράς (reference string) που είναι μια ακολουθία αναφοράς σελίδων. Παράγεται από την καταγραφή διευθύνσεων του συστήματος στις οποίες γίνεται αναφορά. Εξαρτάται από το πλήθος των διαθέσιμων πλαισίων: Περισσότερα πλαίσια μειώνουν το πλήθος σφαλμάτων σελίδας (γενικά αλλά..παράδοξο του Belady)

Αλγόριθμοι Βέλτιστος (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) 8 Prentice-Hall, Inc. All rights reserved. --9

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

Παράδειγμα - seven pages four frames Reference String F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - seven pages four frames Reference String F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - seven pages four frames Reference String F F F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - 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)

Παράδειγμα - 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)

Παράδειγμα - 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)

Παράδειγμα - seven pages four frames Reference String F F F F F F F Page Faults: F F F

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

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

Παράδειγμα () Seven pages Four frames Reference String F F F F F F F F Page Faults: F F F F

Παράδειγμα () Seven pages Five frames Reference String F F F F F F F F Page Faults: F F

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

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

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

Παράδειγμα - seven pages four frames Reference String F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - seven pages four frames Reference String F F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - seven pages four frames Reference String F F F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - seven pages four frames Reference String F F F F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - 8 seven pages four frames Reference String F F F F F F F F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - 9 seven pages four frames Reference String F F F F F F F F F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - seven pages four frames Reference String F F F F F F F F F F F F F F F Replacement Candidates:,,, Selected:

Παράδειγμα - 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:

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

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

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

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

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

Προσκόμιση σελίδων Κατ' Απαίτηση (Demand paging) : Μεταφέρει σελίδες στην κύρια μνήμη μόνον όταν γίνει μια αναφορά σε μια διεύθυνση της σελίδας και αυτή δεν υπάρχει στη μνήμη Δημιουργούνται πολλά σφάλματα σελίδας (page faults) όταν η διεργασία ξεκινά για πρώτη φορά Προ-σελιδοποίηση (pre-paging) : Μεταφέρει περισσότερες σελίδες από αυτές που χρειάζονται Είναι περισσότερο αποτελεσματική, αλλά δεν είναι πάντοτε εφικτή, εξαρτάται από τον αλγόριθμο αντικατάστασης. Αν χρησιμοποιείται DMA μπορεί να υλοποιηθεί συγχρόνως με την εκτέλεση του προγράμματος

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

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

Ρυθμός σφαλμάτων σελίδας () Σε ακραίες περιπτώσεις ο αλγόριθμος PFF μπορεί να δείχνει οτι μερικές διεργασίες απαιτούν περισσότερη μνήμη αλλά δεν υπάρχει διαθέσιμη. Αν μια διεργασία δεν διαθέτει αρκετές σελίδες θα παράγει πληθώρα σφαλμάτων σελίδων. Η σελίδα που αντικαθίσταται ίσως χρειαστεί και πάλι πολύ σύντομα (thrashing). Συνέπεια: η απόδοση πολυπρογραμματισμού μπορεί να μειωθεί δραματικά. Ο επεξεργαστής σπαταλά το μεγαλύτερο μέρος του χρόνου για την εναλλαγή τμημάτων παρά για την εκτέλεση των εντολών του χρήστη. Λύσεις : * Εναλλαγή, δηλαδή προσωρινή μεταφορά μιας διεργασίας στο δίσκο ώστε να ελευθερωθεί μνήμη. * Σε μόνιμα προβλήματα μείωση του βαθμού πολυ-προγραμματισμου.

Τhrashing CPU utilization thrashing degree of multiprogramming

Λειτουργικό Σύνολο () Το λειτουργικό σύνολο τη χρονική στιγμή t περιλαμβάνει όλες τις σελίδες που έχουν χρησιμοποιηθεί στις k πιο πρόσφατες αναφορές και είναι μια χονδρική εκτίμηση που προκύπτει από τις τοπικότητες των αναφορών μιας διεργασίας. Τα k, t καθορίζουν το μέγεθος και τη σύνθεση του λειτουργικού συνόλου. Βέλτιστος αριθμός πλαισίων p για μια διεργασία: μετά από ένα αρχικό χρονικό διάστημα t επιπτρέπει, για δεδομένο k, WS(k, t t) p

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

Working Set (WS) () Τρέχων Eικονικός Xρόνος (ΤEX): το λ.σ. υπολογίζει για κάθε διεργασία τον χρόνο που κατέλαβε τη CPU. Ορίζεται ένας Μέγιστος Eικονικός Xρόνος (ΜEX), ουσιαστικά το k στο προγούμενο σχήμα. Στο πίνακα σελίδων σημειώνεται εκτός από το Reference bit και ο Χρόνος Tελευταίας Xρήσης (ΧTX), δηλαδή ο τρέχων εικονικός χρόνος κατά τo page fault). Το Reference bit = σε κάθε timeout. Όταν συμβεί page fault το λ.σ. σαρώνει το πίνακα σελίδων: If (Reference bit == ) then η σελίδα ανήκει στο WS. Το R bit τίθεται στο και ενημερώνεται ο ΧTX. If (Reference bit == ) if (ΤEX ΧTX > ΜEX) then η σελίδα είναι εκτός WS else είναι εντός WS. Αν δεν υπάρχει σελίδα εκτός WS τότε αντικαθίσταται η σελίδα με R bit == και το max(τex ΧTX)... όμως το λ.σ. χρειάζεται tuning..

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

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

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

WSClock () Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

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

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

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

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

Σύνοψη διαχείρισης σφάλματος σελίδας. 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

Ενδεικτικοί χρόνοι σφάλματος σελίδας Step Actions Time interrupt handling a few hundred to a few * ns thousand instructions = µs frame allocation a few hundred to a few * ns thousand instructions = µs page replacement some instructions, write a page ms to disk page loading some instructions, read a page ms from disk page table update a few hundred instructions * ns = µs instruction restart a few instructions * ns =. µs Total time dominated by I/O operations... ms Υποθέσεις : MHz CPU clock cycle, ms μέσος χρόνος προσπέλασης και μεταφοράς ανά σελίδα

Σφάλματα σελίδας και απόδοση () Μια εντολή που κανονικά χρειάζεται μερικές δεκάδες nanoseconds θα χρειαστεί δεκάδες milliseconds αν συμβεί σφάλμα σελίδας Η συχνότητα σφαλμάτων σελίδας είναι πολύ σημαντική για την απόδοση του συστήματος. Ο ρυθμός σφαλμάτων σελίδας πρέπει να παραμένει χαμηλός. EAT = hit ratio * entry found + (-hit ratio) * entry not found

Σφάλματα σελίδας και απόδοση () Ποια είναι η απώλεια απόδοσης για ρυθμό σφαλμάτων σελίδας σε,; Χρόνος προσπέλασης χωρίς σφάλμα σελίδας: (Χρόνος προσπέλασης μνήμης συμπεριλαμβάνοντας τον πίνακα σελίδων και το TLB) = ns Χρόνος προσπέλασης με σφάλμα σελίδας και με αντικατάσταση σελίδας για το % των σφαλμάτων σελίδας : ( ms ο χρόνος φόρτωσης μιας σελίδας σε ελεύθερο πλαίσιο και ms ο χρόνος αντικατάστασης σελίδας λόγω μη ύπαρξης ελεύθερου πλαισίου). * ms +. * ms = ms EAT =. * ms + (-.) * ns = ns + 99.999999 ns ns - απώλεια %!

Σφάλματα σελίδας και απόδοση () Ποιος είναι ο ρυθμός σφαλμάτων, με τις ίδιες παραδοχές, ώστε να υπάρξει απώλεια απόδοσης % ; Η απώλεια απόδοσης κατά % αντιστοιχεί σε EAT = ns ns > p * ms + (- p) * ns > p *,, ns + n ns > p *,, ns p < /,, < /,,

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

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

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

Κατάτμηση () Κάθε σημαντική δυναμική δομή δεδομένων καταλαμβάνει δικό της χώρο διευθύνσεων (τμήμα, segment) που αναπύσσεται ανεξάρτητα από τις χώρους των άλλων δομών. Ο χώρος διευθύνσεων αποτελείται από το σύνολο των τμημάτων συν τον κοινόχρηστο χώρο. Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

Κατάτμηση () Τα τμήματα έχουν δικό τους γραμμικό χώρο λογικών διευθύνσεων που είναι ανεξάρτητος για το καθένα (μέχρι κάποιο μέγιστο). Η λογική διεύθυνση του ενιαίου χώρου διευθύνσεων της διεργασίας τώρα αποτελείται από δύο τμήματα: αριθμός τμήματος (segment number) και διεύθυνση εντός του τμήματος (segment offset) Τα τμήματα είναι λογικές οντότητες, διαχειρίσιμες σε επίπεδο προγράμματος εφαρμογής, πχ αρχεία που περιέχουν συναρτήσεις, δομές δεδομένων, σταθερές και μπορούν μεταγλωττίζονται ξεχωριστά, ώστε αλλαγές σε ένα τμήμα δεν επηρεάζουν τα άλλα τμήματα. Ιδιαίτερα χρήσιμα για μοιραζόμενες συναρτήσεις βιβλιοθήκης (shared libraries), με πολυεπίπεδες κοινές αναφορές, και άμεση δυνατότητα χαρακτηρισμού τμημάτων ως Read Only, Shared κλπ, καθώς και σε προγράμματα πολλαπλών αρχείων (separate compilation) Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

Κατάτμηση () Μια εικονική διεύθυνση είναι ένας αριθμός τμήματος (segment number) και μια μετατόπιση offset. a8 base=eb bound=a8 base=ff bound= b ff a eb base=a bound=b Κάθε τμήμα τοποθετείται σε μια συνεχόμενη περιοχή της μνήμης.

Μετατροπή διεύθυνσης σε σύστημα με κατάτμηση ()

Μετατροπή διεύθυνσης σε σύστημα με κατάτμηση ()

Κατάτμηση : μετατροπή λογικών σε φυσικές διευθύνσεις

Ανάλυση του παραδείγματος Λογική διεύθυνση : Αριθμός τμήματος : bits και είναι ο αριθμός Μετατόπιση τμήματος bits Μέγιστο μέγεθος τμήματος =9 bytes Η μετατόπιση της λογικής διεύθυνσης αντιστοιχεί στον αριθμό : +8+++=() 8 8 8

Μετάφραση σε φυσική διεύθυνση Αριθμός τμήματος Ο αριθμός αυτός χρησιμοποιείται στον segment table της διεργασίας για να βρεθεί η φυσική διεύθυνση της αρχής του τμήματος Συγκρίνεται η μετατόπιση με το μήκος του τμήματος. Αν ΜΕΤΑΤΟΠΙΣΗ > ΜΗΚΟΣ ΤΜΗΜΑΤΟΣ προκύπτει ΜΗ ΕΓΚΥΡΗ ΔΙΕΥΘΥΝΣΗ ΦΥΣΙΚΗ ΔΙΕΥΘΥΝΣΗ = ΑΘΡΟΙΣΜΑ : ΦΥΣΙΚΗΣ ΔΙΕΥΘΥΝΣΗΣ ΑΡΧΗΣ ΤΜΗΜΑΤΟΣ + ΜΕΤΑΤΟΠΙΣΗ

Από τον process segment table προκύπτει ότι το segment έχει μήκος : + 8 + + + 8 + + = 8 8 8 Άρα η λογική διεύθυνση πράγματι βρίσκεται στο segment ( > ) Για να βρεθεί η φυσική διεύθυνση θα προσθέσω τη μετατόπιση στη βάση του segment : base offset address

Κατάτμηση () Η κατάτμηση είναι φανερή στον προγραμματιστή σε αντίθεση με τη σελιδοποίηση, και παρέχεται ως διευκόλυνση για την οργάνωση προγραμμάτων και δεδομένων (αρκεί ο προγραμματιστής να γνωρίζει τα όρια τμημάτων που αναγνωρίζει η γλώσσα προγραμματισμού καθώς και αν όλα μπορούν να έχουν δυναμικό μέγεθος). Ο προγραμματιστής βλέπει το πρόγραμμα σαν συλλογή από segments π.χ. main program, function, objects, global variables, stack Δεν υπάρχει μια απλή συσχέτιση μεταξύ των λογικών και των φυσικών διευθύνσεων.

Παράδειγμα συστήματος με τμήματα

Πλεονεκτήματα της κατάτμησης Η εικόνα της μνήμης είναι η εικόνα που έχει ο προγραμματιστής (ή ο έμπειρος χρήστης). Τα τμήματα προστατεύονται μεταξύ τους. Κάθε τμήμα περιέχει ένα τύπο πληροφορίας (πχ, instructions, stack, ). Η διαμοίραση τμημάτων είναι λογική και εύκολη. Αν όλες οι εντολές είναι σε ένα τμήμα και όλα τα δεδομένα σε άλλο, το τμήμα εντολών μπορεί να διαμοιραστεί ελεύθερα σε διαφορετικές διεργασίες (κάθε μια με τα δικά της δεδομένα).

Εφαρμογή κατάτμησης Ανάπτυξη φαινομένου κατακερματισμού (fragrmentation). Ουσιαστικά εφαρμογή δυναμικών διαμερισμάτων. Απαλοιφή ενδιάμεσων κενών με σύπτυξη (compaction). Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

Σύγκριση κατάτμησης και σελιδοποίησης () Η κατάτμηση απαιτεί περισσότερο σύνθετο hardware για τον μετασχηματισμό των διευθύνσεων Η κατάτμηση έχει το μειονέκτημα του εξωτερικού κατακερματισμού Η σελιδοποίηση δημιουργεί πολύ μικρό εσωτερικό κατακερματισμό Η κατάτμηση είναι ορατή από τον προγραμματιστή ενώ η σελιδοποίηση είναι αδιαφανής Η κατάτμηση θεωρείται ως πλεονέκτημα που προσφέρεται στον προγραμματιστή για να οργανώσει λογικά ένα πρόγραμμα σε segments και να χρησιμοποιήσει διαφορετικά είδη προστασίας (π.χ. execute-only, read-write) Για το σκοπό αυτό στους πίνακες τμημάτων πρέπει να χρησιμοποιούνται bits προστασίας

Σύγκριση σελιδοποίησης και κατάτμησης () σελιδοποίηση κατάτμηση Είναι απαραίτητο να γνωρίζει ο προγραμματιστής ότι χρησιμοποιείται αυτή η τεχνική; ΟΧΙ ΝΑΙ Πόσοι χώροι γραμμικών διευθύνσεων υπάρχουν; ΠΟΛΛΟΙ Ο συνολικός χώρος διευθύνσεων υπερβαίνει το μέγεθος της φυσικής μνήμης; ΝΑΙ ΝΑΙ Μπορούν οι διαδικασίες και τα δεδομένα να διαχωριστούν και να προστατευθούν ξεχωριστά; ΟΧΙ ΝΑΙ Μπορούν πίνακες με αυξομειούμενο μέγεθος να εξυπηρετηθούν εύκολα; ΟΧΙ ΝΑΙ Διευκολύνεται η διαμοίραση των διαδικασιών μεταξύ των χρηστών; ΟΧΙ ΝΑΙ Η απόκτηση ενός μεγάλου γραμμικού χώρου διευθύνσεων χωρίς να είναι αναγκαία η αγορά επιπλέον φυσικής μνήμης Να δοθεί η δυνατότη-τα σε προγράμματα και δεδομένα να δια-σπαστούν σε ανεξάρ-τητες λογικές ενότη-τες που διαμοιρά-ζονται και προστα-τεύονται εύκολα. Ποιος είναι ο σκοπός αυτής της τεχνικής;

Κατάτμηση με σελιδοποίηση () Οι σύγχρονοι υπολογιστές χρησιμοποιούν συνδυασμό κατάτμησης και σελιδοποίησης. Ο χώρος διευθύνσεων του χρήστη χωρίζεται σε ένα πλήθος τμημάτων και κάθε τμήμα διασπάται σε ένα πλήθος σελίδων σταθερού μεγέθους που είναι το ίδιο με το μέγεθος πλαισίου της κύριας μνήμης. Κάθε διεργασία συνδέεται με έναν πίνακα τμήματος και έναν αριθμό από πίνακες σελίδων, έναν για κάθε τμήμα της διεργασίας. Επιλύεται το πρόβλημα του εξωτερικού κατακερματισμού μέσω της σελιδοποίησης των τμημάτων. Κάθε είσοδος στον πίνακα τμημάτων δεν περιέχει τη διεύθυνση βάσης του τμήματος, αλλά τη διεύθυνση βάσης του πίνακα σελίδων που αντιστοιχεί στο τμήμα.

Κατάτμηση με σελιδοποίηση ()

Κατάτμηση με σελιδοποίηση ()

Κατάτμηση με σελιδοποίηση: MULTICS () Κάθε διεργασία είχε εικονική μνήμη που αποτελείται από ^8 τμήματα. Κάθε τμήμα σελιδοποιείται ξεχωριστά. Τα τμήματα ελέγχονται από τον πίνακα περιγραφέων (descriptors). Κάθε περιγραφέας τμήματος έχει μήκος bit και δείχνει σε ξεχωριστό πίνακα σελίδων για κάθε τμήμα. Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

Κατάτμηση με σελιδοποίηση: MULTICS () Περιγραφέας τμήματος bits. Φυσική διεύθυνση bits (^ bytes) αλλά δεδομένα στοιχισμένα στα (^) bytes. Άρα απαιτούνται 8 bits για τη διεύθυνση του πίνακα σελίδων. Μέγιστος αριθμός σελίδων ανά τμήμα (^) Σελιδοποίηση και των πινάκων τμημάτων / σελίδων. Τυπικό μέγεθος σελίδας Κ (^)words. Δύο εναλλακτικά μεγέθη σελίδων. Δυνατότητα ενιαίου τμήματος. Σημείωση αν το τμήμα είναι εντός-εκτός μνήμης. Προστασία RWX Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

Κατάτμηση με σελιδοποίηση: MULTICS () Εικονική διεύθυνση bit. Χωρίζεται σε τρία τμήματα: Αριθμός τμήματος (segment number)8 bit (^8 τμήματα) Aριθμός σελίδας (page number) bit (^ σελίδες ανά τμήμα) Διεύθυνση εντός σελίδας (page offset) bits (^ λέξεις ανά σελίδα) Φυσική διεύθυνση bits. Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

Κατάτμηση με σελιδοποίηση: MULTICS () Αλγόριθμος 'μετάφρασης' της εικονικής σε φυσική διεύθυνση: Ο αριθμός τμήματος (segmeny number )δείχνει τον περιγραφέα τμήματος. (Εδώ κανονικά υπάρχει περίπτωση για segment fault, αφού και ο πίνακας τμημάτων είναι σελιδοποιημένος αλλά..) Ο περιγραφέας τμήματος δηλώνει αν ο πίνακας σελίδων είναι στη μνήμη. Αν όχι έχουμε segment fault. O περιγραφέας τμήματος δηλώνει αν τα δικαιώματα πρόσβασης είναι επαρκή. Αν όχι έχουμε protection violation fault. Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

Κατάτμηση με σελιδοποίηση: MULTICS () Τελικά ο περιγραφέας τμήματος δείχνει στη διεύθυνση βάσης του πίνακα σελίδων του τμήματος Ο αριθμός σελίδας δείχνει στη σωστή θέση (page number ) στο πίνακα σελίδων. Αν η σελίδα δεν βρίσκεται στη μνήμη έχουμε page fault. Τελικά η θέση του πίνακα σελίδας παράγει τη διεύθυνση βάσης της σελίδας στη μνήμη. Η διεύθυνση μέσα στη σελίδα (page offset) προστίθεται στη διεύθυνση βάσης σελίδας για να παράγει τη φυσική διεύθυνση. Η πρόσβαση στη μνήμη μπορεί να πραγματοποιηθεί. Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

Κατάτμηση με σελιδοποίηση: MULTICS () Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

Κατάτμηση με σελιδοποίηση: MULTICS () Απλοποιημένη μορφή του MULTICS TLB. Τα δύο πρώτα και το τελευταίο πεδίο είναι τα πεδία συσχέτισης του πίνακα. Κατόπιν γίνεται έλεγχος στα δικαιώματα πρόσβασης και τελικά παράγεται η δ/νση του page frame. Επίσης υπάρχει ηλικία της σελίδας για τους αλγόριθμους αντικατάστασης. Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

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

Διαμοίραση τμημάτων

Διαμοίραση σελίδων Κάθε τμήμα (sergment) έχει το δικό του πίνακα σελίδων. Τα διαμοιραζόμενα τμήματα παραπέμπουν σε κοινούς πίνακες σελίδων. Τα κοινόχρηστα αυτά τμήματα συνήθως είναι Read Only (πχ κώδικας ή βιβλιοθήκες). Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

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

Ε/Ε Αρχείων με Απεικόνιση Μνήμης () Η Ε/Ε αρχείων με απεικόνιση μνήμης (memory mapped file I/O, mmap) επιτρέπει σε μια διεργασία να εκτελέσει λειτουργίες ανάγνωσης / εγγραφής σε αρχείο με τον ίδιο τρόπο που πραγματοποεί αναγνώσεις / εγγραφές σε μια περιοχή της κύριας μνήμης. Το λ.σ. απεικονίζει disk blocks του αρχείου σε page frames στη κύρια μνήμη. Ο ενταμιευτής του αρχείου αντιστοιχεί σε ένα ή περισσότερα page frames στη μνήμη. Έτσι οι λειτουργίες Ε/Ε στο αρχείο αντιστοιχίζονται με λειτουργίες προσπέλασης μιας διεργασίας στη συγκεκριμένη σελίδα μνήμης. Με αυτό το μηχανισμό το λ.σ., αφού δεσμεύσει σελίδες στη κύρια μνήμη για μια διεργασία, απεικονίζει σελίδες από τα αρχεία κώδικα και δεδομένων της διεργασίας που βρίσκονται στο δίσκο. Η Ε/Ε αρχείων με απεικόνιση μνήμης απλοποιεί την Ε/Ε και το διαμοιρασμό αρχείων σε πολλές διεργασίες, όπως το διαμοιρασμό σελίδων.

Ε/Ε Αρχείων με Απεικόνιση Μνήμης () Διαμοιρασμός αρχείου με απεικόνιση μνήμης. Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9

Copy-on-Write Η μέθοδος Αντιγραφή-κατά την-εγγραφή (Copy-on-Write) λειτουργεί ως εξής: Κατά τη δημιουργία μιας διεργασίας με fork() οι διεργασίες γονέα και παιδιού αρχικά μοιράζονται τις ίδιες σελίδες στη κύρια μνήμη. Αν κάποια από τις δύο διεργασίες προσπαθήσουν να τροποποιήσουν μια μοιραζόμενη σελίδα τότε το λ.σ. Δεσμεύει νέα σελίδα στη κύρια μνήμη όπου αντιγράφει τη μοιραζόμενη σελίδα για τη μια διεργασία, ώστε να δημιουργηθούν δύο ιδιωτικές σελίδες, μια για κάθε διεργασία. Η μέθοδος COW επιτρέπει οικονομικότερη διαχείριση των πλαισίων σελίδων της μνήμης.

Κλήσεις συστήματος POSIX Διαχείριση Μνήμης Οι συναρτήσεις malloc(), realloc(), free() κλπ συνήθως δεν προκαλούν κλήσεις συστήματος. Tanenbaum, Modern Operating Systems e, (c) 8 Prentice-Hall, Inc. All rights reserved. --9