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

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

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

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

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

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

Εισαγωγή στους Αλγορίθμους

Διοικητική Λογιστική

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Βάσεις Περιβαλλοντικών Δεδομένων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μηχανολογικό Σχέδιο Ι

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

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

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Εισαγωγή στους Αλγορίθμους

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

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

Ειδικά Θέματα Δικτύων Ι

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 1: Εκτιμητές και Ιδιότητες. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

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

Ιστορία της μετάφρασης

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Οργάνωση και Διοίκηση Πωλήσεων Ενότητα 1: Ο ΡΟΛΟΣ ΤΩΝ ΠΩΛΗΣΕΩΝ ΣΤΟ ΠΛΑΙΣΙΟ ΤΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΜΑΡΚΕΤΙΝΓΚ

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Διοίκηση Έργου. Ενότητα 4: Μέθοδοι Χρονικού Προγραμματισμού Έργων. Σαμαρά Ελπίδα Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Λογιστική Κόστους. Ενότητα 4: ΣΥΜΠΕΡΙΦΟΡΑ - ΦΥΣΗ ΚΟΣΤΟΥΣ. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Βάσεις Περιβαλλοντικών Δεδομένων

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Κβαντική Επεξεργασία Πληροφορίας

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Διοικητική Λογιστική

Οργάνωση και Διοίκηση Πωλήσεων

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών

Οικονομετρία Ι. Ενότητα 3: Θεώρημα των Gauss Markov. Δρ. Χαϊδώ Δριτσάκη Τμήμα Λογιστικής & Χρηματοοικονομικής

Τεχνικό Σχέδιο - CAD

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Εισαγωγή στη Διοίκηση Επιχειρήσεων Ενότητα 3: Λήψη Αποφάσεων Επίκ. Καθηγητής Θεμιστοκλής Λαζαρίδης Τμήμα Διοίκηση Επιχειρήσεων (Γρεβενά)

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Εκκλησιαστικό Δίκαιο

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 3: Πολλαπλή Παλινδρόμηση. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών. Ενότητα 11: ΚΛΙΜΑΚΕΣ ΜΕΤΡΗΣΗΣ 2 Λοΐζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση Αγροτικής Οικονομίας

ΦΥΣΙΚΗ. Ενότητα 2: ΔΙΑΝΥΣΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΣΥΝΤΕΤΑΓΜΕΝΩΝ. Αν. Καθηγητής Πουλάκης Νικόλαος ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε.

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Ειδικά θέματα γλώσσας C/C++. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Εισαγωγή στη Διοίκηση Επιχειρήσεων Ενότητα 1: Διοίκηση και Manager Επίκ. Καθηγητής Θεμιστοκλής Λαζαρίδης Τμήμα Διοίκηση Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Δομές Δεδομένων Ενότητα 1

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Βέλτιστος Έλεγχος Συστημάτων

Συστήματα Αναμονής. Ενότητα 9: Ανέλιξη Γέννησης - Θανάτου. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τεχνολογία Πολυμέσων. Ενότητα 8: Pool Table. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 4: Πηγές Δεδομένων- Δευτερογενή Στοιχεία. Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου

Ηλεκτρικές Μηχανές ΙI. Ενότητα 6: Εισαγωγή στους ασύγχρονους κινητήρες Τσιαμήτρος Δημήτριος Τμήμα Ηλεκτρολόγων Μηχανικών Τ.Ε

Ηλεκτροτεχνία ΙΙ. Ενότητα 2: Ηλεκτρικά κυκλώματα συνεχούς ρεύματος. Δημήτρης Στημονιάρης, Δημήτρης Τσιαμήτρος Τμήμα Ηλεκτρολογίας

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου Ενότητα 8 η : ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΩΝ ΛΟΓΙΚΩΝ ΕΛΕΓΚΤΩΝ

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου Ενότητα 2 η : ΠΕΡΙΓΡΑΦΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΜΑΘΗΜΑΤΙΚΑ ΜΟΝΤΕΛΑ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Κβαντική Επεξεργασία Πληροφορίας

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Transcript:

Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 6: Διαχείριση Μνήμης Ι Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοποί ενότητας Η κύρια μνήμη (RAM). Ιεραρχία Μνήμης. Διαχείριση Μνήμης. Διαχείριση μνήμης χωρίς αφαίρεση μνήμης. Εναλλαγή. Εικονική μνήμη. Σελιδοποίηση. 4

Περιεχόμενα ενότητας Η κύρια μνήμη (RAM). Ιεραρχία Μνήμης. Διαχείριση Μνήμης. Διαχείριση μνήμης χωρίς αφαίρεση μνήμης. Εναλλαγή. Εικονική μνήμη. Σελιδοποίηση. 5

Η κύρια μνήμη (RAM) Ιδεατά, ένας Η/Υ θα έπρεπε να έχει μία απείρως μεγάλη και πολύ γρήγορη μνήμη. Στην πράξη δεν είναι εφικτό και χρησιμοποιείται μία ιεραρχία μνήμης (registers, cache, RAM, δίσκος κτλ. Το Λ.Σ. είναι υπεύθυνο να διαχειριστεί αυτή την ιεραρχία μνήμης. Το τμήμα του Λ.Σ. που κάνει αυτή τη διαχείριση λέγεται διαχειριστής μνήμης (memory manager). Ποια τμήματα της μνήμης χρησιμοποιούνται; Ποιες διεργασίες χρειάζονται μνήμη; Ποιες διεργασίες δεν την χρειάζονται πλέον; Για τη διαχείριση της μνήμης χρησιμοποιούνται διάφορα αφαιρετικά μοντέλα (abstractions). 6

Ιεραρχία Μνήμης Γρήγορη μνήμη αλλά ακριβή. Μεγάλη χωρητικότητας μνήμη φτηνή αλλά και πιο αργή. Εικόνα 1: Ιεραρχία Μνήμης. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 7

Διαχείριση Μνήμης (1/2) Σήμερα οι Η/Υ έχουν χιλιάδες φορές περισσότερη μνήμη από τους Η/Υ τη δεκαετία του 60. Τα προγράμματα τείνουν να καταλαμβάνουν τόσο χώρο στη μνήμη όσο τους προσφέρεται. Η μνήμη είναι ένας πόρος ζωτικής σημασίας και η διαχείριση πρέπει να γίνεται προσεκτικά. 8

Διαχείριση Μνήμης (2/2) Ο Διαχειριστής Μνήμης (memory manager) είναι το τμήμα του OS που διαχειρίζεται τη μνήμη. Παρακολουθεί ποια τμήματα της μνήμης είναι σε χρήση και ποια όχι Χορηγεί μνήμη σε διεργασίες όποτε τη χρειάζονται και την αποδίδει στο σύστημα όταν αυτές ολοκληρώσουν το έργο τους Διαχειρίζεται την εναλλαγή διεργασιών (swapping) μεταξύ κύριας μνήμης και δίσκου όταν η κύρια μνήμη δεν είναι αρκετή για να εξυπηρετήσει όλες τις διεργασίες 9

Διαχείριση μνήμης χωρίς αφαίρεση μνήμης (no memory abstraction) 10

Χωρίς αφαίρεση μνήμης (1/2) Η απλούστερη λύση η οποία εφαρμόστηκε στα πρώτα συστήματα. Κάθε πρόγραμμα βλέπει όλη τη διαθέσιμη φυσική μνήμη. Η εντολή MOV REGISTER1, 1000 αντέγραφε τα περιεχόμενα του register στην πραγματική θέση 1000 τηςμνήμης. Δεν ήταν δυνατό να βρίσκονται ταυτόχρονα 2 ή περισσότερα προγράμματα στη μνήμη! Χωρίς προστασία της μνήμης, κάθε πρόγραμμα θα μπορούσε να διαβάσει ή να γράψει σε μία φυσική θέση που χρησιμοποιεί κάποιο άλλο πρόγραμμα. 11

Χωρίς αφαίρεση μνήμης (2/2) Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. Και στις τρεις περιπτώσεις, όταν ο χρήστης εκτελέσει ένα πρόγραμμα, αυτό φορτώνεται στην κύρια μνήμη από το Λ.Σ.. Όταν τερματίσει, ο χρήστης μπορεί να δώσει μία νέα διαταγή. Στις περιπτώσεις (α) και (γ) υπάρχει περίπτωση ένα πρόβλημα στο πρόγραμμα του χρήστη να δημιουργήσει σφάλμα στο Λ.Σ. (εφόσον βρίσκεται στη RAM). 12

Εκτέλεση πολλών προγραμμάτων χωρίς αφαίρεση μνήμης (1/3) Προσθήκη ειδικού υλικού προστασίας (h/w protection) της πρόσβασης στη μνήμη. Η μνήμη διαιρείται σε block (των 2 ΚΒ). Σε κάθε μπλοκ αντιστοιχίζεται ένα κλειδί προστασίας (4 bit) το οποίο αποθηκεύεται σε καταχωρητές της CPU. Για 1 ΜΒ μνήμης απαιτούνται μόλις 256 byte αποθηκευτικού χώρου! (512 καταχωρητές 4 bit) Ο καταχωρητής PSW περιείχε επίσης ένα κλειδί των 4 bit. Το υλικό προστασίας εμπόδιζε την πρόσβαση σε μία λέξη μνήμης, εάν το κλειδί του PSW ήταν διαφορετικό από το κλειδί προστασίας του μπλοκ μνήμης. Μόνο το ΛΣ είχε δυνατότητα να αλλάξει τις τιμές των κλειδιών προστασίας. Ο PSW περιλαμβάνει πληροφορίες όπως η κατάσταση (πυρήνα ή χρήστη), η προτεραιότητα της διεργασίας και διάφορα bit προστασίας (π.χ το κλειδί των 4 bit για την πρόσβαση στη μνήμη). 13

Εκτέλεση πολλών προγραμμάτων χωρίς αφαίρεση μνήμης (2/3) Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 14

Εκτέλεση πολλών προγραμμάτων χωρίς αφαίρεση μνήμης (3/3) Και τα δύο προγράμματα είναι φορτωμένα στη μνήμη, με διαφορετικό κλειδί προστασίας. Όμως τα προγράμματα χρησιμοποιούν απόλυτες και όχι σχετικές διευθύνσεις. Αν εκτελεστεί η εντολή JMP 28 του 2ου προγράμματος, θα προκαλέσει άλμα στη θέση μνήμης 28 που βρίσκεται το 1ο πρόγραμμα! Λύση: Στατική επανατοποθέτηση (static re-allocation). Με το που τοποθετείται το πρόγραμμα στη μνήμη στη θέση Χ, το ΛΣ πρόσθετε κατά τη φόρτωση του προγράμματος, την τιμή Χ σε κάθε εντολή που είχε αναφορά σε άλλη θέση μνήμης. Αργή λύση εφόσον επιβραδύνει τη φόρτωση. Επιπλέον, θα πρέπει να διαχωριστεί με κάποιο τρόπο, ποιες είναι αναφορές στη μνήμη και ποιες είναι απλές αριθμητικές τιμές. 15

Χώροι διευθύνσεων (address space) Χώρος διευθύνσεων (address space): ο χώρος που έχει στη μνήμη ένα πρόγραμμα. Με τις διεργασίες το Λ.Σ. θεωρεί ότι κάθε πρόγραμμα έχει τη δική του CPU. Με τους χώρους μνήμης, το Λ.Σ. θεωρεί ότι κάθε πρόγραμμα έχει τη δική του RAM, ανεξάρτητη από τη μνήμη των άλλων προγραμμάτων (εκτός από ειδικές περιπτώσεις). 1η λύση: Δυναμική επανατοποθέτηση (dynamic relocation) Χρήση δύο registers στη CPU. Καταχωρητής βάσης (base register): από πού ξεκινάει το πρόγραμμα. Καταχωρητής ορίου (limit register): το μήκος του προγράμματος. 16

Καταχωρητές βάσης και ορίου (1/2) Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 17

Καταχωρητές βάσης και ορίου (2/2) Για κάθε πρόσβαση στη μνήμη, το υλικό της CPU προσθέτει τον καταχωρητή βάσης (επανατοποθέτηση). Ταυτόχρονα, ελέγχει εάν το αποτέλεσμα είναι μεγαλύτερο ή ίσο από την τιμή του καταχωρητή ορίου (προστασία). Μειονέκτημα της χρήσης των καταχωρητών: πρέπει να γίνεται κάθε φορά μία πρόσθεση και μία σύγκριση. 18

Εναλλαγή (swapping) (1/4) Εάν η διαθέσιμη μνήμη δεν επαρκεί για όλα τα προγράμματα, τότε η λύση των καταχωρητών base και limit δεν επαρκεί. 2η λύση: Εναλλαγή (swapping). Το Λ.Σ. μεταφέρει κάποιες διεργασίες στη μνήμη για να μπορούν να εκτελεστούν στη CPU. Μετά από κάποιο χρονικό διάστημα, τις μεταφέρει στο δίσκο. Οι αδρανείς διεργασίες θα πρέπει να βρίσκονται στο δίσκο ώστε να μην καταλαμβάνουν μνήμη. Περιοδικά γίνεται έλεγχος ώστε να έχουν μεταφερθεί κάποια στιγμή, όλες οι διεργασίες στη μνήμη. Κάθε διεργασία θα είναι είτε ολόκληρη στη μνήμη είτε ολόκληρη στο δίσκο. 19

Εναλλαγή (swapping) (2/4) Οι αλλαγές στην κατανομή της μνήμης δημιουργούν κενά. Ο συνδυασμός των κενών αυτών λέγεται σύμπτυξη μνήμης (memory compaction). Είναι όμως αρκετά χρονοβόρος. Εικόνα 2: Εναλλαγή. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 20

Εναλλαγή (swapping) (3/4) Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 21

Εναλλαγή (swapping) (4/4) Εάν το μέγεθος των διεργασιών στη μνήμη είναι σταθερό, η κατανομή των διεργασιών στη μνήμη είναι πολύ απλή. Όμως σε πολλές γλώσσες, τα προγράμματα αυξάνουν το χώρο των δεδομένων τους, λαμβάνοντας δυναμικά χώρο από τη σωρό (heap). Αν μία διεργασία θέλει να επεκταθεί στη μνήμη αλλά ο χώρος γύρω της είναι κατειλημμένος, θα πρέπει: 1. Να αλλάξει θέση, ή 2. Να μεταφερθεί στο δίσκο, ή 3. Να τερματιστεί. 22

Παράδειγμα (1/2) Εικόνα 3: Παράδειγμα. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 23

Παράδειγμα (2/2) Αν τώρα έρθει ένα process P5 που χρειάζεται 4ΜΒ, δεν μπορεί να γίνει δεκτό, παρότι υπάρχει 4ΜΒ ελεύθερος χώρος στη ΚΜ. Αυτό το φαινόμενο ονομάζεται εξωτερικός κατακερματισμός (external fragmentation). Μια λύση στο πρόβλημα του external fragmentation είναι η σύμπτυξη μνήμης (storage compaction). Sυνδέει όλους τους άδειους χώρους της ΚΜ σ' ένα συνεχόμενο διαμέρισμα της ΚΜ. Σπάνια όμως χρησιμοποιείται επειδή απαιτεί χρονοβόρο memorytomemory copying (CPU time). Εικόνα 4: Παράδειγμα. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 24

Διαχείριση ελεύθερης μνήμης Για τη δυναμική εκχώρηση της μνήμης, θα πρέπει το Λ.Σ. να έχει κάποιο μηχανισμό για τη διαχείρισή της. Τεχνικές διαχείριση ελεύθερης μνήμης 1. Με χάρτες bit (bitmaps). 2. Με συνδεδεμένες λίστες (free lists). 25

Διαχείριση μνήμης με χάρτες bit (1/2) H μνήμη διαιρείται σε μονάδες κατανομής (allocation units). Σε κάθε allocation unit αντιστοιχεί ένα bit στον χάρτη bit. bit = 0: η μονάδα είναι ελεύθερη. bit = 1: η μονάδα είναι κατειλημμένη. Μέγεθος της μονάδας κατανομής. Μικρό allocation unit: μεγάλος χάρτης bit. Μεγάλο allocation unit: σπατάλη μνήμης στο τελευταίο unit που χρησιμοποιεί κάθε διεργασία. 26

Διαχείριση μνήμης με χάρτες bit (2/2) (a) Ένα τμήμα της μνήμης με πέντε διεργασίες και τρεις οπές. Οι διαβαθμίσεις δείχνουν τις μονάδες κατανομής. Οι γραμμοσκιασμένες περιοχές (που συμβολίζονται με (0) στο χάρτη bit) είναι ελεύθερες. (b) Ο αντίστοιχος χάρτης bit. Εικόνα 5: Διαχείριση μνήμης με χάρτες bit. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 27

Διαχείριση μνήμης με συνδεδεμένες λίστες (1/3) H συνδεδεμένη λίστα περιέχει πληροφορίες για το ποια και πόσα units είναι γεμάτα ή είναι ελεύθερα. Κάθε καταχώρηση στη λίστα έχει 4 πεδία: Μία ένδειξη για το εάν το τμήμα της μνήμης περιέχει μία (Δ)ιεργασία ή ένα (Κ)ενό (είναι άδειο). Τη διεύθυνση εκκίνησης. Το μέγεθος του τμήματος. Ένα δείκτη στην επόμενη καταχώρηση. Μόλις ολοκληρωθεί μία διεργασία, μπορεί η λίστα να ενημερωθεί πολύ εύκολα. 28

Διαχείριση μνήμης με συνδεδεμένες λίστες (2/3) Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 29

Διαχείριση μνήμης με συνδεδεμένες λίστες (3/3) Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 30

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

Εικονική Μνήμη (virtual memory) (1) Ανάγκη εκτέλεσης μεγάλων προγραμμάτων (μεγαλύτερων από τη διαθέσιμη μνήμη). Η εναλλαγή (swapping) ολόκληρων των προγραμμάτων δεν είναι αποδοτική (λόγω της ταχύτητας του δίσκου). Η εικονική μνήμη (virtual memory) επιλύει το πρόβλημα, διαιρώντας τα προγράμματα σε σελίδες μνήμης (pages). Δεν χρειάζεται να βρίσκονται ταυτόχρονα όλες οι σελίδες μνήμης ενός προγράμματος στη φυσική μνήμη. Όταν χρειάζεται πρόσβαση σε ένα τμήμα του προγράμματος που δεν βρίσκεται στη μνήμη, θα φορτωθεί δυναμικά η αντίστοιχη σελίδα. 32

Σελιδοποίηση (paging) Οι διευθύνσεις που δημιουργούνται από τα προγράμματα είναι εικονικές διευθύνσεις (virtual addresses). Άθροισμα όλων των εικονικών διευθύνσεων = χώρος εικονικών διευθύνσεων (virtual address space). Οι εικονικές διευθύνσεις μεταφέρονται από το δίσκο στη μνήμη μέσω της Μονάδας Διαχείρισης Μνήμης (Memory Management Unit MMU). 33

Σελιδοποίηση (1/4) Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 34

Σελιδοποίηση (2/4) Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 35

Σελιδοποίηση (3/4) Χώρος εικονικών διευθύνσεων (virtual address space): 0 64Κ. Χώρος φυσικών διευθύνσεων (physical memory): 0 32Κ. O χώρος εικονικών διευθύνσεων διαιρείται σε σελίδες (pages) των 4KB. Ο χώρος των φυσικών διευθύνσεων διαιρείται σε πλαίσια σελίδας (page frames) των 4KB. Πραγματικό μέγεθος σελίδων και πλαισίων: από 512 Byte 64 KB. Παράδειγμα: MOV REG, 0 Η εικονική διεύθυνση 0 στέλνεται στην MMU. H MMU βλέπει σε ποια σελίδα βρίσκεται η εικονική διεύθυνση 0 (στο παράδειγμά μας, βρίσκεται στη σελίδα 0). Μετά βλέπει σε ποιο πλαίσιο σελίδας έχει φορτωθεί η σελίδα 0 (στο πλαίσιο 2, δηλ. 8192-12287). Άρα η (εικονική διεύθυνση) 0 = (φυσική θέση) 0+8192 = 8192. 36

Σελιδοποίηση (4/4) Εάν ζητηθεί πρόσβαση σε μία εικονική μνήμη που εκείνη τη στιγμή δεν έχει χαρτογραφηθεί στη φυσική μνήμη θα συμβεί ένα σφάλμα σελίδας (page fault). Η ΜΜU κάνει μία παγίδευση (trap) στον πυρήνα του Λ.Σ. To Λ.Σ. επιλέγει ένα πλαίσιο σελίδας από τη φυσική μνήμη που έχει χρησιμοποιηθεί λίγο και το μεταφέρει στο δίσκο. Μετά φέρνει στο πλαίσιο αυτό την σελίδα για την οποία ζητήθηκε πρόσβαση και αλλάζει το χάρτη της μνήμης. Τέλος επανεκκινεί την εντολή που προκάλεσε το σφάλμα σελίδας. 37

Πίνακες σελίδων Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 38

Δομή μιας καταχώρισης πίνακα σελίδων Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 39

Επιτάχυνση της σελιδοποίησης (1/2) Ζητήματα υλοποίησης που αφορούν τη σελιδοποίηση: Η χαρτογράφηση από την εικονική διεύθυνση στη φυσική πρέπει να είναι γρήγορη. Διαφορετικά η χαρτογράφηση της μνήμης θα αποτελέσει σημείο συμφόρησης του συστήματος. Αν ο χώρος των εικονικών διευθύνσεων είναι μεγάλος, ο πίνακας σελίδων μπορεί να είναι μεγάλος. Με σελίδες των 4 ΚΒ και σελίδες των 32 bit, περίπου 1.000.000 εικονικές διευθύνσεις άρα και 1.000.000 εγγραφές στον πίνακα σελίδων. 40

Επιτάχυνση της σελιδοποίησης (2/2) 1η λύση: Χρήση γρήγορων καταχωρητών υλικού. Σε αυτούς τους καταχωρητές φορτώνεται μία φορά ο πίνακας σελίδων κάθε εκτελούμενης διεργασίας. Γρήγορη εκτέλεση, αργή φόρτωση του πίνακα. 2η λύση: Τοποθέτηση του πίνακα σελίδων στη RAM. Χρειάζεται μόνο ένας καταχωρητής για να δείχνει στην αρχή του πίνακα σελίδων. Απαιτούνται μία ή περισσότερες αναφορές στη μνήμη για την εκτέλεση κάθε εντολής. 41

Βιβλιογραφία 1. Tanenbaum κεφάλαιο 3 Πηγή των διαφανειών τα slides από τα βιβλία και τα online-tutorials των : 1. Α. Tanenbaum. 2. W. Stallings. Καθώς και οι online σημειώσεις των 1. Π. Κοτζανικολάου. 2. Κ. Λαμπρινουδάκη. 3. Κ. Μαργαρίτη. 4. Γ. Παπαδόπουλου. 5. Χ. Μανιφάβα. Αll material copyright 1996-2012 All Rights Reserved..42

Τέλος Ενότητας

Σημείωμα Αναφοράς Copyright ΤΕΙ Δυτικής Μακεδονίας, Φραγκούλης Γεώργιος. «Εισαγωγή στα Λειτουργικά Συστήματα». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: URL.

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο. που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο. που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο. Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 45

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς. το Σημείωμα Αδειοδότησης. τη δήλωση Διατήρησης Σημειωμάτων. το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει). μαζί με τους συνοδευόμενους υπερσυνδέσμους. 46

Σημείωμα Χρήσης Έργων Τρίτων Το Έργο αυτό κάνει χρήση των ακόλουθων έργων: Εικόνες/Σχήματα/Διαγράμματα/Φωτογραφί ες: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 47