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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Αδιέξοδα Εργαστηριακές Ασκήσεις

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

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

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

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

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

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

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

Αρχιτεκτονική-ΙI Ενότητα 6 :

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα αρχείων, δίσκοι

Writing kernels for fun and profit

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

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

Υλισµικό διαχείρισης µνήµης (Memory management hardware)

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

Υλισμικό Διαχείρισης Μνήμης (Memory Management Hardware)

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

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

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

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

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

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

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

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

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

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

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

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

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

Δημήτρης Πρίτσος. ISLAB HACK: Βασικές Έννοιες της Αρχιτεκτονικής

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

Γλώσσες Προγραμματισμού Μεταγλωττιστές

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

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

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

Διάλεξη 6: Δείκτες και Πίνακες

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

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

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

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Τι σημαίνει; n Για την αποδοτική δέσμευση δομών δεδομένων μη. n Για την αποφυγή «διαρροών μνήμης» (memory leaks).

Σημειώσεις για τον 80x86

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Transcript:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης III Υλικό από: 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 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

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

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

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

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

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

Κατάτμηση (5) Μια εικονική διεύθυνση είναι ένας αριθμός τμήματος (segment number) και μια μετατόπιση offset. 5a68 2 2 base=eb4 bound=5a68 base=ff5 bound=2 74b ff5 4a eb4 base=4a bound=74b Κάθε τμήμα τοποθετείται σε μια συνεχόμενη περιοχή της μνήμης. Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Μετατροπή διεύθυνσης σε σύστημα με κατάτμηση () Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Μετατροπή διεύθυνσης σε σύστημα με κατάτμηση (2) Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Κατάτμηση : μετατροπή λογικών σε φυσικές διευθύνσεις Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Ανάλυση του παραδείγματος Λογική διεύθυνση : Αριθμός τμήματος : 4 bits και είναι ο αριθμός Μετατόπιση τμήματος 2 bits Μέγιστο μέγεθος τμήματος 22=496 bytes Η μετατόπιση της λογικής διεύθυνσης αντιστοιχεί στον αριθμό : 52+28+64+32+6=(752) 248 24 52 256 28 64 32 6 8 4 2 Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Μετάφραση σε φυσική διεύθυνση Αριθμός τμήματος Ο αριθμός αυτός χρησιμοποιείται στον segment table της διεργασίας για να βρεθεί η φυσική διεύθυνση της αρχής του τμήματος Συγκρίνεται η μετατόπιση με το μήκος του τμήματος. Αν ΜΕΤΑΤΟΠΙΣΗ > ΜΗΚΟΣ ΤΜΗΜΑΤΟΣ προκύπτει ΜΗ ΕΓΚΥΡΗ ΔΙΕΥΘΥΝΣΗ ΦΥΣΙΚΗ ΔΙΕΥΘΥΝΣΗ = ΑΘΡΟΙΣΜΑ : ΦΥΣΙΚΗΣ ΔΙΕΥΘΥΝΣΗΣ ΑΡΧΗΣ ΤΜΗΜΑΤΟΣ + ΜΕΤΑΤΟΠΙΣΗ Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Από τον process segment table προκύπτει ότι το segment έχει μήκος : 52 + 28 + 64 + 32 + 8 + 4 + 2 = 75 248 24 52 256 28 64 32 6 8 4 2 Άρα η λογική διεύθυνση πράγματι βρίσκεται στο segment (752 > 75) Για να βρεθεί η φυσική διεύθυνση θα προσθέσω τη μετατόπιση στη βάση του segment : base offset address Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Κατάτμηση (6) Η κατάτμηση είναι φανερή στον προγραμματιστή σε αντίθεση με τη σελιδοποίηση, και παρέχεται ως διευκόλυνση για την οργάνωση προγραμμάτων και δεδομένων (αρκεί ο προγραμματιστής να γνωρίζει τα όρια τμημάτων που αναγνωρίζει η γλώσσα προγραμματισμού καθώς και αν όλα μπορούν να έχουν δυναμικό μέγεθος). Ο προγραμματιστής βλέπει το πρόγραμμα σαν συλλογή από segments π.χ. main program, function, objects, global variables, stack Δεν υπάρχει μια απλή συσχέτιση μεταξύ των λογικών και των φυσικών διευθύνσεων. Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Παράδειγμα συστήματος με τμήματα Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Πλεονεκτήματα της κατάτμησης Η εικόνα της μνήμης είναι η εικόνα που έχει ο προγραμματιστής (ή ο έμπειρος χρήστης). Τα τμήματα προστατεύονται μεταξύ τους. Κάθε τμήμα περιέχει ένα τύπο πληροφορίας (πχ, instructions, stack, ). Η διαμοίραση τμημάτων είναι λογική και εύκολη. Αν όλες οι εντολές είναι σε ένα τμήμα και όλα τα δεδομένα σε άλλο, το τμήμα εντολών μπορεί να διαμοιραστεί ελεύθερα σε διαφορετικές διεργασίες (κάθε μια με τα δικά της δεδομένα). Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Διαμοίραση τμημάτων Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

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

Σύγκριση κατάτμησης και σελιδοποίησης () Η κατάτμηση απαιτεί περισσότερο σύνθετο hardware για τον μετασχηματισμό των διευθύνσεων Η κατάτμηση έχει το μειονέκτημα του εξωτερικού κατακερματισμού Η σελιδοποίηση δημιουργεί πολύ μικρό εσωτερικό κατακερματισμό Η κατάτμηση είναι ορατή από τον προγραμματιστή ενώ η σελιδοποίηση είναι αδιαφανής Η κατάτμηση θεωρείται ως πλεονέκτημα που προσφέρεται στον προγραμματιστή για να οργανώσει λογικά ένα πρόγραμμα σε segments και να χρησιμοποιήσει διαφορετικά είδη προστασίας (π.χ. execute-only, read-write) Για το σκοπό αυτό στους πίνακες τμημάτων πρέπει να χρησιμοποιούνται bits προστασίας Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Σύγκριση σελιδοποίησης και κατάτμησης (2) σελιδοποίηση κατάτμηση Είναι απαραίτητο να γνωρίζει ο προγραμματιστής ότι χρησιμοποιείται αυτή η τεχνική; ΟΧΙ ΝΑΙ Πόσοι χώροι γραμμικών διευθύνσεων υπάρχουν; ΠΟΛΛΟΙ Ο συνολικός χώρος διευθύνσεων υπερβαίνει το μέγεθος της φυσικής μνήμης; ΝΑΙ ΝΑΙ Μπορούν οι διαδικασίες και τα δεδομένα να διαχωριστούν και να προστατευθούν ξεχωριστά; ΟΧΙ ΝΑΙ Μπορούν πίνακες με αυξομειούμενο μέγεθος να εξυπηρετηθούν εύκολα; ΟΧΙ ΝΑΙ Διευκολύνεται η διαμοίραση των διαδικασιών μεταξύ των χρηστών; ΟΧΙ ΝΑΙ Η απόκτηση ενός μεγάλου γραμμικού χώρου διευθύνσεων χωρίς να είναι αναγκαία η αγορά επιπλέον φυσικής μνήμης Να δοθεί η δυνατότητα σε προγράμματα και δεδομένα να διασπαστούν σε ανεξάρτητες λογικές ενότητες που διαμοιράζονται και προστατεύονται εύκολα. Ποιος είναι ο σκοπός αυτής της τεχνικής; Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

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

Κατάτμηση με σελιδοποίηση (2) Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

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

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

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

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

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

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

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

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

Κατάτμηση με σελιδοποίηση: Pentium () 'Εξι ειδικοί καταχωρητές τμημάτων (segment registers). Σημαντικότεροι ο Code Segment και ο Data Segmet registers. O Pentium selector φορτώνεται σε ένα καταχωρητή τμήματος. Global Descriptor Table (GDT): ένας πίνακας τμημάτων για όλο το σύστημα. Local Descriptor Table (LDT): ο πίνακας τμημάτων της διεργασίας. Privilege Level (Επίπεδο Προνομίων): -3 (δες επόμενη διαφάνεια) Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Κατάτμηση με σελιδοποίηση: Pentium (2) Επίπεδα προστασίας Pentium. Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Κατάτμηση με σελιδοποίηση: Pentium (3) Περιγραφέας τμήματος κώδικα (32 bits). Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Κατάτμηση με σελιδοποίηση: Pentium (4) Base address: Διεύθυνση βάσης πίνακα τμημάτων Offset: Αριθμός τμήματος Γραμμική διεύθυνση (linear address): Εικονική διεύθυνση ή Φυσική διεύθυνση (αν δεν υπάρχει σελιδοποίηση) Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Κατάτμηση με σελιδοποίηση: Pentium (5) Απεικόνιση της γραμμικής (εικονικής) διεύθυνσης σε φυσική. Δύο επίπεδα σελιδοποίησης μετά τη κατάτμηση. Tanenbaum, Modern Operating Systems 3 e, (c) 28 Prentice-Hall, Inc. All rights reserved. -3-66639

Διαχείριση μνήμης στο Unix Process A Process B Process A's virtual address space Physical memory (διαμοιρασμός κώδικα, text) Process B's virtual address space

Διαμοιραζόμενα αρχεία Two processes can share a mapped file.

Κλήσεις συστήματος POSIX για διαμοιρασμό αρχείων s is an error code b and addr are memory addresses len is a length prot controls protection flags are miscellaneous bits fd is a file descriptor offset is a file offset

Σελιδοποίηση UNIX The core map in 4BSD. Core map=πίνακας σελίδων, Two-handed Clock

Σελιδοποίηση Linux () Το Linux έχει τρία επίπεδα σελιδοποίησης.

Σελιδοποίηση Linux (2) Operation of the buddy algorithm. Δέσμευση μνήμης: Buddy algorithm

Windows () Virtual address space layout for 3 user processes White areas are private per process Shaded areas are shared among all processes

Windows (2) Mapped regions with their shadow pages on disk The lib.dll file is mapped into two address spaces at same time

Κλήσεις συστήματος Win32 Βασικές κλήσεις συστήματος Win32 API για απεικόνιση αρχείων στη μνήμη.

Πίνακας σελίδων Γραμμή πίνακα σελίδων στο Pentium

Διαχείριση μνήμης Windows () Λίστες σελίδων και κανόνες μετάβασης

Διαχείριση μνήμης Windows (2) Οργάνωση των λιστών σελίδων.