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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λιβανός Γιώργος Εξάμηνο 2017Β

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

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

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

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

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

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

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

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

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

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

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

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

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

Δομή Ηλεκτρονικού υπολογιστή

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

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

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

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

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

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

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

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

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

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

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

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

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

Ι.Ε.Κ. Χαϊδαρίου ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ. Σημειώσεις Θεωρίας

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

Πληροφορική 2. Λειτουργικά Συστήματα

Transcript:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) 1

ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη προσοχή Νόμος του Parkinson «Τα προγράμματα τείνουν να καταλάβουν τόσο χώρο στη μνήμη, όσο τους προσφέρεται» Ο μέσος προσωπικός υπολογιστής σήμερα έχει μνήμη πολύ μεγαλύτερη μνήμη ( 10.000) από τον ΙΒΜ 7094 (ο ισχυρότερος υπολογιστής στις αρχές της δεκαετίας του 60) Κάθε προγραμματιστής θα ήθελε να έχει μία ιδιωτική, απείρως μεγάλη και γρήγορη μη πτητική μνήμη (και βέβαια φθηνή) 2

ΕΙΣΑΓΩΓΗ Διαχειριστής Μνήμης (Memory Manager): Το τμήμα του λειτουργικού συστήματος που διαχειρίζεται τη μνήμη Τα βασικά του καθήκοντα είναι : Να παρακολουθεί ποια τμήματα της μνήμης είναι σε χρήση και ποια όχι. Να χορηγεί μνήμη σε διεργασίες όποτε την χρειάζονται. Να επαναχορηγεί σε άλλες την μνήμη όταν οι πρώτες ολοκληρώνουν την αποστολή τους. Να διαχειρίζεται την εναλλαγή (swapping) πληροφοριών μεταξύ κύριας μνήμης και δίσκου, όταν η κύρια μνήμη δεν είναι αρκετή για να εξυπηρετηθούν όλες οι διεργασίες. 3

ΔΙΑΧΕΙΡΗΣΗ ΜΝΗΜΗΣ ΧΩΡΙΣ ΕΝΑΛΛΑΓΗ Ή ΣΕΛΙΔΟΠΟΙΗΣΗ Διάκριση Συστημάτων Διαχείρισης Μνήμης Αυτά που μετακινούν διεργασίες μεταξύ κύριας μνήμης και δίσκου κατά τη διάρκεια της εκτέλεσής τους (swapping και paging) Αυτά που δε διαθέτουν τέτοιες τεχνικές Τα τελευταία θα μελετηθούν πρώτα μιας και είναι πιο απλά. 4

ΜΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΧΩΡΙΣ EΝΑΛΛΑΓΗ ΚΑΙ ΣΕΛΙΔΟΠΟΙΗΣΗ Στα παλιότερα συστήματα υπολογιστών τα προγράμματα έβλεπαν όλη τη διαθέσιμη φυσική μνήμη => κάτω από αυτές τις συνθήκες δεν ήταν δυνατό να εκτελούνται 2 προγράμματα ταυτόχρονα στη μνήμη Ακόμη και σε αυτή την περίπτωση υπάρχουν αρκετές διαθέσιμες επιλογές.. 5

ΜΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΧΩΡΙΣ EΝΑΛΛΑΓΗ ΚΑΙ ΣΕΛΙΔΟΠΟΙΗΣΗ Χρησιμοποιήθηκε σε μεγάλα συστήματα υπολογιστών & μίνι υπολογιστές (χρησιμοποιείται σπάνια πλέον) Διεργασία Χρήστη Λειτουργικό Σύστημα στη RAM Λειτουργικό Σύστημα στη RΟΜ Διεργασία Χρήστη Οδηγοί Συσκευών στη RΟΜ Διεργασία Χρήστη Λειτουργικό Σύστημα στη RAM Χρησιμοποιήθηκε στους πρώτους προσωπικούς υπολογιστές (π.χ. MS-DOS), όπου το τμήμα του συστήματος στη ROM ονομάζεται BIOS - Basic Input Output System (Βασικό Σύστημα Εισόδου Εξόδου) Χρησιμοποιείται σε μερικούς υπολογιστές χειρός και ενσωματωμένα συστήματα Κάθε φορά έχουμε μόνο μία διεργασία στη μνήμη που επιτρέπεται να χρησιμοποιεί το σύνολό της Συνηθέστερη τεχνική: Η μνήμη διαμοιράζεται ανάμεσα στο λειτουργικό σύστημα και σε μία μόνο διεργασία χρήστη Σημ: RAM =Random Access Memory (Μνήμη Τυχαίας Προσπέλασης), ROM = Read Only Memory (Μνήμη Μόνο για Ανάγνωση) 6

ΜΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΧΩΡΙΣ EΝΑΛΛΑΓΗ ΚΑΙ ΣΕΛΙΔΟΠΟΙΗΣΗ Διαδικασία εκτέλεσης διεργασίας Εισαγωγή εντολής από το χρήστη Το λειτουργικό σύστημα φορτώνει στη μνήμη από το δίσκο το πρόγραμμα που ζητήθηκε και το εκτελεί Όταν η διεργασία τελειώσει, το λειτουργικό σύστημα τυπώνει ένα χαρακτήρα προτροπής (prompt) και περιμένει μία νέα εντολή για να φορτώσει μια άλλη διεργασία Όταν δοθεί η νέα εντολή, το σύστημα φορτώνει στη μνήμη ένα νέο πρόγραμμα, το οποίο αντικαθιστά το προηγούμενο 7

ΠΟΛΥΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΧΡΗΣΙΜΟΠΟΙΗΣΗ ΜΝΗΜΗΣ Ανάγκες για πολυπρογραμματισμό: Ευκολότερος ο προγραμματισμός μιας εφαρμογής χωρίζοντας την σε δύο ή περισσότερες διεργασίες Παροχή διαλογικών υπηρεσιών ταυτόχρονα (μέσω ενός μεγάλου υπολογιστή) σε ικανό αριθμό χρηστών. Αποδοτική χρήση της CPU όταν μια διεργασία βρίσκεται «μπλοκαρισμένη» περιμένοντας να ολοκληρωθούν διάφορες εργασίες εισόδου / εξόδου. Για να είναι λογικές οι επιδόσεις του συστήματος πρέπει να βρίσκονται περισσότερες από μια διεργασίες στην κύρια μνήμη. 8

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΤΟΥ ΠΟΛΥΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Έστω μια διεργασία καταναλώνει τμήμα p του χρόνου της σε κατάσταση αναμονής για εργασίες εισόδου/εξόδου. Με n τέτοιες διεργασίες συγχρόνως στην μνήμη, η πιθανότητα όλες τους να περιμένουν για είσοδο/έξοδο (οπότε η CPU θα είναι αδρανής) είναι p n Αξιοποίηση της CPU = 1 p n Βαθμός πολυπρογραμματισμού είναι η αξιοποίηση της CPU συναρτήσει του n 9

ΠΟΛΥΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΣΤΑΘΕΡΑ ΤΜΗΜΑΤΑ ΜΝΗΜΗΣ Απλούστερος Τρόπος οργάνωσης της μνήμης ώστε να βρίσκονται σε αυτή περισσότερες από μία διεργασίες ταυτόχρονα: Διαίρεση της μνήμης σε τμήματα (partitions), ίσα ή άνισα Σύστημα με πολλές ουρές όπου τοποθετούνται οι διεργασίες που καταφθάνουν για να εκτελεσθούν. Η πρώτη προσέγγιση εξυπηρετεί την πρώτη διεργασία στην ουρά η οποία χωράει στο τμήμα της μνήμης που μόλις ελευθερώθηκε. Σύστημα με μία ουρά όπου τοποθετούνται οι διεργασίες που καταφθάνουν για να εκτελεσθούν Στην δεύτερη προσέγγιση τοποθετείται στο τμήμα που μόλις ελευθερώθηκε η μεγαλύτερη διεργασία που βρίσκεται στην ουρά και χωράει στο τμήμα αυτό. 10

ΠΟΛΥΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΣΤΑΘΕΡΑ ΤΜΗΜΑΤΑ ΜΝΗΜΗΣ Λειτουργικά Συστήματa 11

ΧΩΡΟΣ ΔΙΕΥΘΥΝΣΕΩΝ Χώρος διευθύνσεων (address space): το σύνολο των διευθύνσεων το οποίο μπορεί να χρησιμοποιεί μία διεργασία για να απευθυνθεί στη μνήμη Κάθε διεργασία έχει τον δικό της χώρο διευθύνσεων, που είναι ανεξάρτητος από αυτούς που ανήκουν σε άλλες διεργασίες 12

ΕΠΑΝΑΤΟΠΟΘΕΤΗΣΗ Επανατοποθέτηση: προσδιορισμός της διεύθυνσης μνήμης στην οποία θα μεταφερθεί ο έλεγχος του προγράμματος μετά από μια κλήση σε μια σχετική διεύθυνση x του προγράμματος που εκτελείται. Η πραγματική διεύθυνση στην οποία θα δοθεί ο έλεγχος του προγράμματος είναι Διεύθυνση έναρξης του προγράμματος + x. Ύπαρξη δύο επιπλέον καταχωρητών Καταχωρητής Βάσης (base register): παίρνει ως τιμή τη διεύθυνση της αρχής του τμήματος Καταχωρητής Ορίου (limit register): παίρνει ως τιμή το μέγεθος του τμήματος π.χ. Αν ο καταχωρήτης βάσης περιέχει διεύθυνση που αντιστοιχεί στα 100Κ, μία εντολή της μορφής CALL 100 μετατρέπεται σε CALL 100K+100 Η χρήση των καταχωρητών είναι ένας εύκολος τρόπος για να έχει κάθε διεργασία τον δικό της ιδιωτικό χώρο διευθύνσεων, επειδή σε κάθε διεύθυνση μνήμης που παράγεται, αυτόματα προστίθενται τα περιεχόμενα του καταχωρητή βάσης πριν αυτή σταλεί στη μνήμη 13

ΕΝΑΛΛΑΓΗ Σε συστήματα διαμοιρασμού χρόνου (time sharing) υπάρχουν πολλοί χρήστες (πολλές διεργασίες) που πρέπει να εξυπηρετηθούν Ο αριθμός και το μέγεθος των διεργασιών είναι μεγαλύτερος από όσο μπορεί να χωρέσει στην μνήμη συγχρόνως. Mία προτεινόμενη λύση: το ΛΣ αποθηκεύει όλα τα περιεχόμενα της μνήμης σε ένα αρχείο δίσκου, και μετά προσκομίζει και εκτελεί το επόμενο πρόγραμμα Εναλλαγή (swapping) : Mετακίνηση διεργασιών από την κύρια μνήμη στον δίσκο και αντίστροφα. 14

ΕΝΑΛΛΑΓΗ Αχρησιμοποίητη μνήμη Επειδή η Α τοποθετείται σε διαφορετική θέση, οι διευθύνσεις που περιέχει πρέπει να επανατοποθετηθούν, είτε μέσω λογισμικού κατά την εναλλαγή είτε μέσω υλικού κατά τη διάρκεια της εκτέλεσης του προγράμματος (π.χ. καταχωρητές βάσης και ορίου) Σύμπτυξη μνήμης (memory compaction): τεχνική που επιτυγχάνει τον συνδυασμό όλων των κενών χώρων σε έναν μεγαλύτερο, με τη μετακίνηση όλων των διεργασιών προς τα κάτω, όσο πιο χαμηλά γίνεται (δεν χρησιμοποιείται συχνά καθώς απαιτεί πολύ χρόνο CPU) 15

ΕΝΑΛΛΑΓΗ Τμήμα στοίβας: χρησιμοποιείται για να διατηρεί τις κανονικές τοπικές μεταβλητές και τις διευθύνσεις επιστροφής Τμήμα δεδομένων: χρησιμοποιείται ως σωρός για τις μεταβλητές που δημιουργούνται και καταστρέφονται δυναμικά 16

ΙΔΕΑΤΗ ΜΝΗΜΗ Η ιδεατή μνήμη (virtual memory) παρουσιάζει στις διεργασίες παραπάνω μνήμη από αυτή που διαθέτει το σύστημα. Αυτό γίνεται χρησιμοποιώντας ιδεατές διευθύνσεις (virtual addresses), που συνθέτουν τον χώρο ιδεατών διευθύνσεων (virtual address space) Οι ιδεατές διευθύνσεις μεταφράζονται σε πραγματικές διευθύνσεις από τη μονάδα διαχείρισης μνήμης (memory management unit). Ο χώρος των ιδεατών διευθύνσεων διαιρείται σε ίσα μέρη που ονομάζονται σελίδες (pages). Ο χώρος της φυσικής μνήμης (physical memory) διαιρείται αντίστοιχα σε πλαίσια σελίδας (page frames). Το μέγεθος είναι συνήθως 512-8192 bytes 17

ΙΔΕΑΤΗ ΜΝΗΜΗ Δεν χρειάζεται να βρίσκονται όλες οι σελίδες στη μνήμη για να εκτελεστεί ένα πρόγραμμα. Όταν το πρόγραμμα αναφέρεται σε ένα τμήμα του χώρου διευθύνσεων που δεν βρίσκεται στη φυσική μνήμη, ειδοποιείται το ΛΣ να προσκομίσει το κομμάτι που λείπει και να επανεκτελέσει την εντολή που απέτυχε. Η ιδεατή μνήμη εφαρμόζεται στα συστήματα πολυπρογραμματισμού, επιτρέποντας να βρίσκονται τμήματα από διάφορα προγράμματα στη μνήμη την ίδια χρονική στιγμή. Το χρονικό διάστημα που ένα πρόγραμμα περιμένει να μεταφερθούν από τον σκληρό δίσκο στη μνήμη κάποια τμήματά του, η CPU μπορεί να εκχωρηθεί σε κάποια άλλη διεργασία 18

ΣΕΛΙΔΟΠΟΙΗΣΗ Η σελιδοποίηση λύνει το πρόβλημα του εξωτερικού κατακερματισμού επιτρέποντας ταυτόχρονα την φόρτωση του προγράμματος σε διάσπαρτα τμήματα της κύριας μνήμης Πολλοί επεξεργαστές υποστηρίζουν πολλαπλά μεγέθη σελίδας, τα οποία μπορούν να αναμιχθούν με όποιο τρόπο κρίνει καλύτερο το ΛΣ Η επιλογή της δύναμης του 2 για μέγεθος πλαισίου/σελίδας απλοποιεί τη μετατροπή μιας λογικής διεύθυνσης σε φυσική Η αντιστοίχιση του αριθμού μιας σελίδας και της φυσικής διεύθυνσης του πλαισίου γίνεται μέσω του πίνακα σελίδων (page table) 19

ΙΔΕΑΤΗ ΜΝΗΜΗ -ΠΑΡΑΔΕΙΓΜΑ Η σχέση μεταξύ των εικονικών διευθύνσεων και των διευθύνσεων της φυσικής μνήμης δίνεται από τον πίνακα σελίδων. Κάθε σελίδα ξεκινάει σε ένα πολλαπλάσιο του 4096 και τελειώνει 4095 πιο ψηλά, οπότε: 4Κ-8Κ -> 4096-8191 8Κ-12Κ -> 8192-12287 Μόνο 8 από τις εικονικές σελίδες μπορούν να χαρτογραφηθούν στη φυσική μνήμη Ένα bit παρουσίας/απουσίας (present/absent bit) παρακολουθεί ποιες σελίδες είναι πραγματικά παρούσες στη φυσική μνήμη 20

ΙΔΕΑΤΗ ΜΝΗΜΗ Αν το πρόγραμμα αναφερθεί σε μία σελίδα που η MMU διαπιστώσει ότι δεν έχει χαρτογραφηθεί στη μνήμη (Χ), τότε η CPU οδηγείται σε παγίδευση (trap) στο ΛΣ (σφάλμα σελίδας (page fault). Το ΛΣ: Επιλέγει ένα πλαίσιο σελίδας που έχει χρησιμοποιηθεί ελάχιστα και αποθηκεύει τα περιεχόμενά του στον δίσκο (αν δεν υπάρχουν ήδη εκεί) Προσκομίζει από το δίσκο τη ζητούμενη σελίδα και την τοποθετεί στο πλαίσιο σελίδας που ελευθερώθηκε Αλλάζει τον χάρτη μνήμης Επανεκκινεί την εντολή που προκάλεσε την παγίδευση 21

ΠΙΝΑΚΕΣ ΣΕΛΙΔΩΝ Αν ο αριθμός των bits των λογικών διευθύνσεων είναι m και το μέγεθος σελίδας είναι 2 n, τότε: τα «υψηλότερα» (most significant) m-n bits μιας λογικής διεύθυνσης προσδιορίζουν τον αριθμό της σελίδας και τα υπόλοιπα n bits τη μετατόπιση μέσα στην σελίδα Σημαντικά Προβλήματα Μεγάλος Πίνακας Σελίδων, αν ο χώρος των εικονικών διευθύνσεων είναι μεγάλος Γρήγορη Απεικόνιση 22

ΠΙΝΑΚΕΣ ΣΕΛΙΔΩΝ -ΠΑΡΑΔΕΙΓΜΑ H εισερχόμενη εικονική διεύθυνση των 16bit διαιρείται σε έναν αριθμό σελίδας μήκους 4bit & μία σχετική διεύθυνση (offset) των 12bit 4bit για τον αριθμό σελίδας => μπορούμε να αναφερθούμε σε 16 σελίδες 12bit για τη σχετική διεύθυνση => μπορούμε να απευθυνθούμε σε 4096byte μέσα σε μία σελίδα 23

ΠΙΝΑΚΕΣ ΣΕΛΙΔΩΝ -ΠΑΡΑΔΕΙΓΜΑ Ο αριθμός σελίδας χρησιμοποείται ως αριθμοδείκτης θέσης στον πίνακα σελίδων & δείχνει τον αριθμό του πλαισίου σελίδας που αντιστοιχεί στην εικονική σελίδα Αν το bit παρουσίας/απουσίας είναι 0, προκαλείται μία παγίδευση στο ΛΣ Αν το bit παρουσίας/απουσίας είναι 1, ο αριθμός πλαισίου σελίδας που βρέθηκε στον πίνακα σελίδων αντιγράφεται στα 3 πιιο σημαντικά bit του καταχωρητή εξόδου, μαζί με τη σχετική διεύθυνση των 12bit, η οποία αντιγράφεται από την εισερχόμενη εικονική διεύθυνση-> φυσική διεύθυνση των 15bit 24

ΑΛΓΟΡΙΘΜΟΙ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ ΣΕΛΙΔΩΝ Όταν προκύπτει λάθος σελίδας, το Λ.Σ. πρέπει να διαλέξει μια σελίδα και να την απομακρύνει για να εξασφαλίσει χώρο στη μνήμη για επόμενη σελίδα Η τροποποιημένη σελίδα πρέπει πρώτα να σωθεί Η μη τροποποιημένη απλώς διαγράφεται Καλύτερη επίδοση του συστήματος επιτυγχάνεται αν επιλεγεί μία σελίδα που δεν χρησιμοποιείται συχνά 25

ΑΛΓΟΡΙΘΜΟΣ ΤΗΣ ΒΕΛΤΙΣΤΗΣ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ ΣΕΛΙΔΑΣ Optimal page replacement algorithm Βασίζεται στο χρόνο μελλοντικής χρήσης της σελίδας Θεωρητικά είναι βέλτιστος αλγόριθμος Πρακτικά είναι αδύνατο να υλοποιηθεί αφού προϋποθέτει πρόβλεψη της μελλοντικής συμπεριφοράς των διεργασιών. 26

ΑΛΓΟΡΙΘΜΟΣ ΤΗΣ ΒΕΛΤΙΣΤΗΣ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ ΣΕΛΙΔΑΣ Optimal page replacement algorithm Βασική ιδέα: σε κάθε σελίδα μπορεί να ανατεθεί μια ετικέτα με τον αριθμό των εντολών που θα εκτελεστούν πριν γίνει η 1 η αναφορά σε αυτή Πρέπει να αφαιρεθεί η σελίδα με την μεγαλύτερη ετικέτα Πρόβλημα: τη στιγμή που συμβαίνει το λάθος σελίδας το ΛΣ δεν είναι δυνατόν να γνωρίζει πότε θα γίνει η επόμενη αναφορά σε κάθε μία από τις σελίδες 27

ΑΛΓΟΡΙΘΜΟΣ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ ΣΕΛΙΔΑΣ ΠΟΥ ΔΕΝ ΧΡΗΣΙΜΟΠΟΙΗΘΗΚΕ ΠΡΟΣΦΑΤΑ Not Recently Used (NRU) Κάθε σελίδα έχει bit αναφοράς (ανάγνωση ή εγγραφή) και bit τροποποίησης Τα bit ενεργοποιούνται όταν στη σελίδα γίνει αναφορά ή τροποποίηση Οι σελίδες κατηγοριοποιούνται 0. δεν έγινε αναφορά, δεν τροποποιήθηκε 1. δεν έγινε αναφορά, τροποποιήθηκε (προκύπτει από την κατηγορία 3 όταν το bit αναφοράς γίνει 0 μετά από διακοπή του ρολογιού) 2. έγινε αναφορά, δεν τροποποιήθηκε 3. έγινε αναφορά, τροποποιήθηκε Ο NRU αντικαθιστά τις σελίδες τυχαία Από την χαμηλότερη αριθμημένη μη άδεια τάξη 28

ΑΛΓΟΡΙΘΜΟΣ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ ΣΕΛΙΔΑΣ ΠΡΩΤΗ ΜΕΣΑ, ΠΡΩΤΗ ΕΞΩ (FIFO) First page In First page Out (FIFO) Διατήρηση μιας λίστας από το ΛΣ με τις σελίδες που βρίσκονται στην μνήμη με τη σειρά που ήρθαν Όταν προκύπτει λάθος σελίδας, η σελίδα που βρίσκεται στην αρχή της λίστας αφαιρείται και η καινούργια σελίδα προστίθεται στην ουρά της λίστας Μειονέκτημα Οι παλαιότερες σελίδες μπορεί να είναι ακόμη χρήσιμες 29

ΑΛΓΟΡΙΘΜΟΣ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ ΣΕΛΙΔΩΝ ΔΕΥΤΕΡΗΣ ΕΥΚΑΙΡΙΑΣ Second chance replacement algorithm Τροποποίηση του FIFO έτσι ώστε σελίδες που έχουν χρησιμοποιηθεί πρόσφατα όταν είναι υποψήφιες για αντικατάσταση να μεταφέρονται πάλι στην αρχή της ουράς Μειονέκτημα Είναι άσκοπα μη αποδοτικός μιας και διαρκώς μετακινεί σελίδες γύρω από τη λίστα 30

ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ ΡΟΛΟΓΙΟΥ Clock Τροποποίηση του αλγορίθμου δεύτερης ευκαιρίας έτσι ώστε ο έλεγχος για τις σελίδες που έχουν χρησιμοποιηθεί να γίνεται κυκλικά και να μη μεταφέρονται στην αρχή της ουράς. Διαφέρει από τον αλγόριθμο δεύτερης ευκαιρίας μόνο στην υλοποίηση Όταν προκύψει σφάλμα σελίδας, ελέγχεται η σελίδα στην οποία δείχνει ο δείκτης Αν το bit αναφοράς είναι 0, η σελίδα αφαιρείται, η νέα σελίδα τοποθετείται στη θέση της μέσα στο ρολόι, και ο δείκτης προχωρά κατά μία θέση. Αν το bit αναφοράς είναι 1, τότε γίνεται 0 και ο δείκτης προχωρά στην επόμενη σελίδα Η διαδικασία επαναλαμβάνεται μέχρι να βρεθεί κάποια σελίδα που να έχει την τιμή 0 στο bit αναφοράς 31

ΑΛΓΟΡΙΘΜΟΣ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ ΤΗΣ ΛΙΓΟΤΕΡΟ ΠΡΟΣΦΑΤΑ ΧΡΗΣΙΜΟΠΟΙΗΜΕΝΗΣ ΣΕΛΙΔΑΣ Least Recently Used (LRU) Κάθε σελίδα σχετίζεται με έναν μετρητή ο οποίος μετράει τον αριθμό των προσβάσεων στη σελίδα. Η σελίδες με τις λιγότερες προσβάσεις είναι αυτές που απομακρύνονται. 32

ΑΛΓΟΡΙΘΜΟI ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ Όλοι οι αλγόριθμοι που περιγράφηκαν εξαρτώνται από ειδικό υλικό και δεν βοηθούν στη σχεδίαση ενός Λ.Σ. που δεν έχει αυτό το υλικό 33