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

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

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

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

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

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

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

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

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

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

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

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

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

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

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

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

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

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

Φωνολογική Ανάπτυξη και Διαταραχές

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Προγραμματισμός Διαδικτύου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 7 : Ισορροπία αγοράς Καραμάνης Κωνσταντίνος

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 10 : Κατασκευή ΝΠΑ. Αλέξανδρος Τζάλλας

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

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

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

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

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

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

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

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

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

Διοικητική των επιχειρήσεων

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 6 : Ελαστικότητα προσφοράς Καραμάνης Κωνσταντίνος

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 6 : Δομές αρχείων. Δρ. Γκόγκος Χρήστος

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

Διδακτική της Πληροφορικής

Διοικητική των επιχειρήσεων

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

Διοίκηση Ανθρώπινων Πόρων

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

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

Διοικητική των επιχειρήσεων

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 12 : Μορφές Αγοράς Καραμάνης Κωνσταντίνος

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Προγραμματισμός Διαδικτύου

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 9:Παραγωγική διαδικασία Καραμάνης Κωνσταντίνος

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

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

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

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

Μάρκετινγκ Αγροτικών Προϊόντων

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

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

Προχωρημένα Θέματα Προγραμματισμού Δικτύων Ενότητα 8: ΈλεγχοςΡοήςΑνοικτούΒρόχου Φώτης Βαρζιώτης

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

Διοικητική των επιχειρήσεων

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

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

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

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

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Αντικειμενοστραφής Προγραμματισμός

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΚΑΛΑΘΟΣΦΑΙΡΙΣΗΣ ΙΙ

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

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

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

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

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

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

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

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

Διπλωματική Ιστορία Ενότητα 2η:

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

Εφαρμοσμένη Βελτιστοποίηση

Ψηφιακή Επεξεργασία Εικόνων

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

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

Αντικειμενοστραφής Προγραμματισμός

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

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

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Μάρκετινγκ Αγροτικών Προϊόντων

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

Transcript:

1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 8 : Διαχείριση Μνήμης Δημήτριος Λιαροκάπης

2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής Τ.Ε Λειτουργικά Συστήματα Ενότητα 8 : Διαχείριση Μνήμης Δημήτριος Λιαροκάπης Καθηγητής Εφαρμογών Άρτα, 2015

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

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

Κύρια Μνήμη Διαχείριση Mνήμης Εισαγωγή Βασική διαχείριση μνήμης Μνήμη και πολυπρογραμματισμός Τμηματοποίηση σταθερού μεγέθους Δυναμική τμηματοποίηση Εναλλαγή 5 5

Κύρια Μνήμη Εισαγωγή Βασική διαχείριση μνήμης Μνήμη και πολυπρογραμματισμός Τμηματοποίηση σταθερού μεγέθους Ίσα τμήματα Άνισα τμήματα Δυναμική τμηματοποίηση Εναλλαγή 6 6

1. Εισαγωγή Η διαχείριση μνήμης είναι η λειτουργία της υποδιαίρεσης της μνήμης από το λειτουργικό σύστημα με δυναμικό τρόπο ώστε να εξυπηρετούνται όσο το δυνατόν περισσότερες διεργασίες. Είναι απαραίτητη διότι : Η μνήμη είναι ένας ανεπαρκής πόρος και είναι απαραίτητη η αποτελεσματική χρήση της Παρέχει ευκολία στον προγραμματισμό Ενισχύει τον πολυπρογραμματισμό Παρέχει ασφάλεια και προστασία στις εκτελούμενες διεργασίες Οι προγραμματιστές επιζητούν την ελαχιστοποίηση του χρόνου προσπέλασης και τη μεγιστοποίηση του μεγέθους της μνήμης για την εκτέλεση των προγραμμάτων. 7 7

Διαχειριστής μνήμης Ο διαχειριστής μνήμης είναι ένα συστατικό του ΛΣ που ασχολείται με την οργάνωση και τις στρατηγικές διαχείρισης της μνήμης. Χαρακτηριστικά των διαχειριστών μνήμης: Εκχωρούν την πρωτεύουσα μνήμη σε διεργασίες Αντιστοιχούν το χώρο διευθύνσεων της διεργασίας στην κύρια μνήμη Ελαχιστοποιούν το χρόνο προσπέλασης χρησιμοποιώντας costeffective τεχνικές, στατικές ή δυναμικές. Αλληλεπιδρούν με ειδικό hardware για τη διαχείριση της μνήμης (MMU) για να βελτιώσουν την απόδοση. 8 8

Στρατηγικές διαχείρισης μνήμης Σχεδιάζονται έτσι ώστε να είναι εφικτή η βέλτιστη δυνατή χρήση της κύριας μνήμης και διακρίνονται σε : Στρατηγικές προσκόμισης Καθορίζουν το σημείο όπου θα τοποθετηθεί το επόμενο τμήμα προγράμματος ή δεδομένων, καθώς μετακινείται από τη δευτερεύουσα μνήμη. Στρατηγικές τοποθέτησης Καθορίζουν το σημείο της κυρίας μνήμης όπου το σύστημα θα μπορούσε να τοποθετήσει τμήματα δεδομένων. Στρατηγικές επανατοποθέτησης Καθορίζουν ποιο τμήμα θα αφαιρεθεί από την κύρια μνήμη στις περιπτώσεις όπου η κύρια μνήμη είναι αρκετά πλήρης ώστε να παρέχει χώρο σε ένα νέο πρόγραμμα. 9 9

Εκχώρηση μνήμης Συνεχόμενη και μη συνεχόμενη εκχώρηση μνήμης Συνεχόμενη εκχώρηση μνήμης Ολόκληρο το πρόγραμμα τοποθετείται σε γειτονικές θέσεις μνήμης Αφορά τα πρώτα υπολογιστικά συστήματα όπου αν το πρόγραμμα ήταν μεγαλύτερο από τη διαθέσιμη μνήμη το σύστημα δεν μπορούσε να το εκτελέσει. Μη συνεχόμενη εκχώρηση μνήμης Το πρόγραμμα διαιρείται σε τεμάχια ή τμήματα που τοποθετούνται από το σύστημα σε μη γειτονικές σχισμές στην κύρια μνήμη. Η τεχνική αυτή κάνει εφικτή τη χρήση περιοχών που είναι πολύ μικρές για να χωρέσουν ολόκληρο πρόγραμμα. Αν και με τον τρόπο αυτό εισάγεται στο σύστημα πολυπλοκότητα αυτή δικαιολογείται από την αύξηση που επιτυγχάνεται στο βαθμό πολυπρογραμματισμού. Εφικτή μέσω της εικονικής μνήμης 10 1

2. Βασική διαχείριση μνήμης Μονοπρογραμματισμός Ένας χρήστης μονοπωλεί τη χρήση του συστήματος και όλοι οι πόροι είναι αφιερωμένοι σ αυτόν Επικαλύψεις (overlays) Τεχνική που επιτρέπει σε ένα σύστημα να εκτελεί προγράμματα που είναι μεγαλύτερα από την κύρια μνήμη (ή το τμήμα μνήμης). Ο προγραμματιστής διαιρεί το πρόγραμμα σε λογικές ενότητες. Όταν το πρόγραμμα δεν χρειάζεται μνήμη για ένα τμήμα, το σύστημα μπορεί να αντικαταστήσει όλη ή μέρη της κύριας μνήμης για να καλύψει μια ανάγκη (δηλ. να φορτώσει μια άλλη ενότητα) 11 1

Μονοπρογραμματισμός Τρεις απλοί τρόποι οργάνωσης μνήμης σε ΛΣ με μια διεργασία χρήστη Η προστασία μνήμης δεν τίθεται ως πρόβλημα 12 1

Επικαλύψεις (overlays) 13 1

3. Μνήμη και πολυπρογραμματισμός Η χρήση του επεξεργαστή από μία διεργασία διακόπτεται συχνά, λόγω της ανάγκης για λειτουργίες Ι/Ο που είναι υπερβολικά αργές συγκρινόμενες με την ταχύτητα της CPU. Η αύξηση της χρήσης της CPU επιτυγχάνεται με τα συστήματα πολυπρογραμματισμού, όπου αρκετοί χρήστες ανταγωνίζονται συγχρόνως για τους πόρους του συστήματος. Έτσι αρκετές διεργασίες πρέπει να βρίσκονται στην κύρια μνήμη την ίδια στιγμή, ώστε αν κάποια υλοποιεί λειτουργίες Ι/Ο κάποια άλλη να χρησιμοποιεί την CPU ώστε να αυξάνεται το ποσοστό χρήσης της CPU και η απόδοση (throughput) του συστήματος. 14 1

Χρήση CPU Πλήθος διεργασιών 15 1

Πλήθος προγραμμάτων στη μνήμη Για τον καθορισμό του πλήθους των διεργασιών που μπορούν να υπάρχουν συγχρόνως στην κύρια μνήμη πρέπει να ληφθούν υπόψη και να εξισορροπηθούν τα εξής : Περισσότερες διεργασίες χρησιμοποιούν καλύτερα την CPU αλλά απαιτείται καλύτερη διαχείριση και προστασία της μνήμης Λιγότερες διεργασίες χρησιμοποιούν λιγότερη μνήμη Περισσότερη αναμονή για I/O σημαίνει μικρότερη χρήση επεξεργαστή Στο υπόλοιπο της διάλεξης θεωρούμε ότι σε κάθε διεργασία εκχωρείται συνεχής χώρος στη μνήμη 16 1

4 Τμηματοποίηση σταθερού μεγέθους Η μνήμη χωρίζεται σε τμήματα, τα οποία παραμένουν σταθερά σε αριθμό και μέγεθος κατά τη λειτουργία του συστήματος Κάθε διεργασία καταλαμβάνει ένα μόνο τμήμα Το μέγιστο πλήθος των διεργασιών στη μνήμη είναι ίσο με το πλήθος των τμημάτων Δύο προσεγγίσεις Ίσα τμήματα: Όλα τα τμήματα έχουν ίσο μέγεθος Άνισα τμήματα: Τα τμήματα έχουν διαφορετικά μεγέθη 17 1

4.1 Τμηματοποίηση σταθερού μεγέθους Ίσα Τμήματα Τμηματοποίηση σταθερού μεγέθους (fixed Partitioning) με ίσα τμήματα Κάθε διεργασία με μέγεθος μικρότερο ή ίσο με το μέγεθος του τμήματος μπορεί να φορτωθεί στο διαθέσιμο τμήμα Αν όλα τα τμήματα είναι γεμάτα, το Λ.Σ. μπορεί να κάνει εναλλαγή μιας διεργασίας Ένα πρόγραμμα είναι πιθανό να μη χωρά σε ένα τμήμα. Ο προγραμματιστής πρέπει να σχεδιάσει το πρόγραμμα με επικαλύψεις Με τη μέθοδο αυτή η χρησιμοποίηση της κύριας μνήμης είναι εξαιρετικά αναποτελεσματική. Κάθε πρόγραμμα, όσο μικρό και να είναι, καταλαμβάνει ένα ολόκληρο τμήμα. Ο ανεκμετάλλευτος χώρος εσωτερικά σε ένα τμήμα αναφέρεται ως εσωτερικός κατακερματισμός (internal fragmentation). 18 1

Ίσα τμήματα Εσωτερικός κατακερματισμός μέρος του τμήματος που δεν χρησιμοποιείται 19 1

Πλεονεκτήματα Ίσα τμήματα Μικρή επιβάρυνση στο Λ.Σ. Μειονεκτήματα Ανεπαρκής χρήση της μνήμης λόγω του εσωτερικού κατακερματισμού Οι μικρές διεργασίες δεν χρησιμοποιούν αποτελεσματικά τον χώρο των τμημάτων (εσωτερικός κατακερματισμός) 20 2

4.2 Τμηματοποίηση σταθερού μεγέθους Άνισα Τμήματα Τμηματοποίηση σταθερού μεγέθους με άνισα τμήματα Μειώνει τα προβλήματα της τμηματοποίησης ίσων τμημάτων Κάθε διεργασία με μέγεθος μικρότερο ή ίσο με το μέγεθος του τμήματος μπορεί να φορτωθεί στο διαθέσιμο τμήμα (προτιμάται το τμήμα που σπαταλά το λιγότερο χώρο) Αν όλα τα τμήματα είναι γεμάτα, το Λ.Σ. μπορεί να κάνει εναλλαγή μιας διεργασίας Ένα πρόγραμμα είναι πιθανό να μη χωρά σε κανένα τμήμα. Ο προγραμματιστής πρέπει να σχεδιάσει το πρόγραμμα με επικαλύψεις Πλεονεκτήματα Μειώνεται ο εσωτερικός κατακερματισμός. Αποτελεσματικότερη χρήση της κύριας μνήμης, σε σχέση με τη μέθοδο των ίσων τμημάτων 21 2

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

Αλγόριθμοι τοποθέτησης Ίσου μεγέθους τμήματα Επειδή όλα τα τμήματα είναι ίσου μεγέθους, δεν έχει σημασία ποιο χρησιμοποιείται Αν είναι όλα κατειλημμένα γίνεται εναλλαγή ή αναμονή Διαφορετικού μεγέθους τμήματα Ουρά για κάθε τμήμα Κάθε διεργασία τοποθετείται στην ουρά που αντιστοιχεί στο μικρότερο τμήμα στο οποίο χωρά. Οι διεργασίες αντιστοιχούνται με τρόπο ώστε να ελαχιστοποιείται η σπατάλη μνήμης μέσα σε ένα τμήμα (εσωτερικός κατακερματισμός) Μπορεί να υπάρχει ελεύθερη μνήμη και διεργασίες να αναμένουν Μια μοναδική ουρά για όλες τις διεργασίες Όταν η διεργασία πρέπει να φορτωθεί στη μνήμη επιλέγεται το μικρότερο διαθέσιμο τμήμα που τη χωρά Καλύτερη ικανότητα για τη βελτιστοποίηση χρήσης της CPU 23 2

Αλγόριθμοι τοποθέτησης Άνισα τμήματα 24 2

5. Δυναμική τμηματοποίηση Τμήματα μεταβλητού μεγέθους και πλήθους Μια διεργασία αντιστοιχείται ακριβώς στην ποσότητα μνήμης που απαιτείται. Τελικά υπάρχουν κενά στη μνήμη. Αυτός είναι ο εξωτερικός κατακερματισμός (external fragmentation) Πρέπει να χρησιμοποιηθεί συμπίεση (compaction) που θα μετατοπίσει τις διεργασίες έτσι ώστε να είναι συνεχόμενες και όλη η ελεύθερη μνήμη να αποτελεί μια ενότητα (block). Η συμπίεση σπαταλά το χρόνο της CPU και προϋποθέτει τη δυνατότητα δυναμικής μετατόπισης (μεταφορά ενός προγράμματος σε άλλη περιοχή μνήμης χωρίς να ακυρώνονται οι αναφορές της μνήμης) 25 2

Δυναμική τμηματοποίηση 26 2

Αλγόριθμοι τοποθέτησης Το ΛΣ πρέπει να αποφασίσει ποιο ελεύθερο τμήμα της μνήμης θα εκχωρήσει σε μια διεργασία Αλγόριθμος καλύτερης τοποθέτησης (best-fit algorithm) Επιλογή του block που είναι πλησιέστερα στο μέγεθος που απαιτείται Έχει τη χειρότερη απόδοση Επειδή βρίσκει το μικρότερο block για τη διεργασία, η κύρια μνήμη γεμίζει γρήγορα από blocks που είναι πολύ μικρά και η συμπίεση πραγματοποιείται πιο συχνά 27 2

Αλγόριθμοι τοποθέτησης Αλγόριθμος πρώτης τοποθέτησης (First-fit algorithm) Ξεκινά και σαρώνει τη μνήμη από την αρχή και επιλέγει το πρώτο διαθέσιμο μπλοκ που είναι αρκετά μεγάλο. Ταχύτερος Πολλές διεργασίες φορτώνονται στο εμπρός τμήμα της μνήμης που θα πρέπει να εξετάζεται κάθε φορά που γίνεται προσπάθεια για την εύρεση ενός ελεύθερου block Αλγόριθμος επόμενης τοποθέτησης (next-fit algorithm) Ξεκινά να σαρώνει τη μνήμη από την τελευταία τοποθέτηση και επιλέγει το επόμενο αρκετά μεγάλο διαθέσιμο μπλοκ. Εκχωρεί συχνά ένα block μνήμης που βρίσκεται στο τέλος της μνήμης, όπου βρίσκεται το μεγαλύτερο block Το μεγαλύτερο block μνήμης διασπάται σε μικρότερα blocks Η συμπίεση απαιτείται για να αποκτηθεί ένα μεγάλο block στο τέλος της μνήμης. Παρόμοια επίδοση με τον αλγόριθμο πρώτης τοποθέτησης 28 2

Παράδειγμα 29 2

6. Εναλλαγή (swapping) 30 3

Εναλλαγή (Swapping) Η εκχώρηση μνήμης αλλάζει καθώς Έρχονται νέες διεργασίες στη μνήμη Διεργασίες εγκαταλείπουν τη μνήμη Εναλλάσσονται στο δίσκο Ολοκληρώνουν την εκτέλεσή τους Πραγματοποιείται συνεχής εκχώρηση μνήμης στις διεργασίες Συνήθως εφαρμόζεται σε συνδυασμό με τη δυναμική τμηματοποίηση Οι γκρι περιοχές είναι μνήμη που δεν χρησιμοποιείται 31 3

Περιορισμοί της εναλλαγής Προβλήματα με την εναλλαγή Η διεργασία πρέπει να χωρά στη φυσική μνήμη (αδύνατη η εκτέλεση μεγαλύτερων διεργασιών) λόγω της συνεχούς εκχώρησης Η μνήμη κατακερματίζεται και απαιτείται συμπίεση για την επανασυναρμολόγηση μεγαλύτερων ελεύθερων περιοχών Οι διεργασίες μπορούν να βρίσκονται και στη μνήμη και στο δίσκο Οι επικαλύψεις επιλύουν το πρώτο πρόβλημα Κατατέμνουν τη διεργασία στη διάρκεια του χρόνου (κυρίως τα δεδομένα) Δεν επιλύουν το πρόβλημα του κατακερματισμού 32 3

Άσκηση 1 Ένα σύστημα τοποθετεί διεργασίες στη μνήμη χρησιμοποιώντας δυναμική πολιτική τοποθέτησης. Κατά την πλέον πρόσφατη χρονική στιγμή έγινε φόρτωση μιας διεργασίας που χρειαζόταν 12KB μνήμης και η εικόνα μνήμης του συστήματος διαμορφώθηκε ως εξής : Οι σκιασμένες περιοχές δηλώνουν αχρησιμοποίητα τμήματα μνήμης, οι λευκές τα κενά τμήματα ενώ η περιοχή με μαύρο χρώμα τη θέση όπου έγινε η τελευταία τοποθέτηση. Οι αριθμοί δηλώνουν το μέγεθος σε KB. Να σχεδιάσετε την εικόνα μνήμης μετά την τοποθέτηση μιας νέας διεργασίας που χρειάζεται 22KB μνήμης σύμφωνα με τους αλγορίθμους : first-fit, best-fit, next-fit. 33 3

Άσκηση 2 Υποθέστε ότι έχετε ελεύθερη μνήμη σε τμήματα μεγέθους100kb, 500KB, 200KB, 300KB, και 600KB (με αυτή τη σειρά) και υπάρχουν κατά σειρά απαιτήσεις μνήμης για 212KB, 417KB, 112KB, και 426KB. Ερωτήσεις Δείξτε πως ο αλγόριθμος πρώτης τοποθέτησης θα διευθετήσει τις απαιτήσεις στην ελεύθερη μνήμη. Υπολογίστε το ελεύθερο τμήμα μνήμης μετά από κάθε άφιξη. Δείξτε πως ο αλγόριθμος βέλτιστης τοποθέτησης θα διευθετήσει τις ίδιες απαιτήσεις στην ελεύθερη μνήμη. Υπολογίστε το ελεύθερο τμήμα μνήμης μετά από κάθε άφιξη. Δείξτε πως ο αλγόριθμος επόμενης τοποθέτησης θα διευθετήσει τις απαιτήσεις στην ελεύθερη μνήμη (last allocated block 200KB). Υπολογίστε το ελεύθερο τμήμα μνήμης μετά από κάθε άφιξη. 34 3

3 Βιβλιογραφία Λειτουργικά Συστήματα, 8η Έκδοση, Stallings William Λειτουργικά Συστήματα 9η Εκδ., Abraham Silberschatz, Peter Baer Galvin, Greg Gagne

3 36 Σημείωμα Αναφοράς Copyright Τεχνολογικό Ίδρυμα Ηπείρου. Δημήτριος Λιαροκάπης. Λειτουργικά Συστήματα. Έκδοση: 1.0 Άρτα, 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: http://eclass.teiep.gr/courses/comp116/

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

3 Τέλος Ενότητας Επεξεργασία: Ευάγγελος Καρβούνης Άρτα, 2015

3 Τέλος Ενότητας Διαχείριση Μνήμης