Διαχείριση Μνήμης Flashcards
Τι είναι η μνήμη;
Μνήμη είναι εκεί που κρατάς την εικόνα των βυζιών μου ;)
Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη προσοχή
Ποιος είναι ο νόμος του Parkinson;
«Τα προγράμματα τείνουν να καταλάβουν τόσο χώρο στη μνήμη, όσο τους
προσφέρεται»
Τι είναι ο Διαχειριστής Μνήμης (Memory Manager);
Διαχειριστής Μνήμης είναι το τμήμα του λειτουργικού συστήματος που διαχειρίζεται τη μνήμη
Ποια είναι τα βασικά καθήκοντα ενός Διαχειριστή Μνήμης;
Τα βασικά του καθήκοντα είναι :
– Να παρακολουθεί ποια τμήματα της μνήμης είναι σε χρήση και ποια όχι.
– Να χορηγεί μνήμη σε διεργασίες όποτε την χρειάζονται.
– Να επαναχορηγεί σε άλλες την μνήμη όταν οι πρώτες ολοκληρώνουν την
αποστολή τους.
– Να διαχειρίζεται την εναλλαγή (swapping) πληροφοριών μεταξύ κύριας μνήμης
και δίσκου, όταν η κύρια μνήμη δεν είναι αρκετή για να εξυπηρετηθούν όλες οι
διεργασίες.
Σε ποιες κατηγορίες διακρίνονται τα Συστήματα Διαχείρισης Μνήμης;
Τα Συστήματα Διαχείρισης Μνήμης διακρίνονται σε:
– Αυτά που μετακινούν διεργασίες μεταξύ κύριας μνήμης και
δίσκου κατά τη διάρκεια της εκτέλεσής τους (swapping και
paging)
– Αυτά που δε διαθέτουν τέτοιες τεχνικές
Τι γνωρίζετε για τον μονοπρογραμματισμό;
- Απλούστερο δυνατό σύστημα διαχείρισης μνήμης
- Κάθε φορά έχουμε μόνο μία διεργασία στη μνήμη που επιτρέπεται
να χρησιμοποιεί το σύνολό της - Συνηθέστερη τεχνική:
Η μνήμη διαμοιράζεται ανάμεσα στο λειτουργικό σύστημα και σε μία μόνο διεργασία χρήστη
Ποια είναι η διαδικασία εκτέλεσης διεργασίας του μονοπρογραμματισμού;
– Εισαγωγή εντολής από το χρήστη
– Το λειτουργικό σύστημα φορτώνει στη μνήμη από το δίσκο το
πρόγραμμα που ζητήθηκε και το εκτελεί
– Όταν η διεργασία τελειώσει, το λειτουργικό σύστημα τυπώνει ένα
χαρακτήρα προτροπής και περιμένει μία νέα εντολή για να φορτώσει μια
άλλη διεργασία
Ποιες ανάγκες οδήγησαν στη χρήση του πολυπρογραμματισμού;
Ανάγκες για πολυπρογραμματισμό:
– Ευκολότερος ο προγραμματισμός μιας εφαρμογής χωρίζοντας την σε
δύο ή περισσότερες διεργασίες
– Παροχή διαλογικών υπηρεσιών ταυτόχρονα (μέσων ενός μεγάλου
υπολογιστή) σε ικανό αριθμό χρηστών.
– Αποδοτική χρήση της CPU όταν μια διεργασία βρίσκεται
«μπλοκαρισμένη» περιμένοντας να ολοκληρωθούν διάφορες εργασίες
εισόδου / εξόδου.
- Για να είναι λογικές οι επιδόσεις του συστήματος πρέπει να
βρίσκονται περισσότερες από μια διεργασίες στην κύρια
μνήμη.
Πώς μοντελοποιείται ο πολυπρογραμματισμός; (ορισμός του βαθμού του πολυπρογραμματισμού)
- Έστω μια διεργασία καταναλώνει τμήμα p του χρόνου της σε
κατάσταση αναμονής για εργασίες εισόδου/εξόδου. - Με n τέτοιες διεργασίες συγχρόνως στην μνήμη, η πιθανότητα
όλες τους να περιμένουν για είσοδο/έξοδο (οπότε η CPU θα
είναι αδρανής) είναι pn - Αξιοποίηση της CPU = 1 – pn
- Βαθμός πολυπρογραμματισμού είναι η αξιοποίηση της CPU
συναρτήσει του n
Πώς λειτουργεί ο πολυπρογραμματισμός με σταθερά τμήματα μνήμης;
Η μνήμη διαιρείται σε τμήματα (partitions), ίσα ή άνισα
* Σύστημα με πολλές ουρές όπου τοποθετούνται οι διεργασίες που
καταφθάνουν για να εκτελεσθούν.
* Η πρώτη προσέγγιση εξυπηρετεί την πρώτη διεργασία στην ουρά η
οποία χωράει στο τμήμα της μνήμης που μόλις ελευθερώθηκε.
* Σύστημα με μία ουρά όπου τοποθετούνται οι διεργασίες που
καταφθάνουν για να εκτελεσθούν
* Στην δεύτερη προσέγγιση τοποθετείται στο τμήμα που μόλις
ελευθερώθηκε η μεγαλύτερη διεργασία που βρίσκεται στην ουρά και
χωράει στο τμήμα αυτό.
Ποια είναι δυο σημαντικά προβλήματα του πολυπρογραμματισμού;
Δύο σημαντικά προβλήματα του πολυπρογραμματισμού:
– η μετατόπιση (relocation)
– η προστασία (protection)
Τι είναι η μετατόπιση στον πολυπρογραμματισμό;
Μετατόπιση: προσδιορισμός της διεύθυνσης μνήμης στην οποία θα
μεταφερθεί ο έλεγχος του προγράμματος μετά από μια κλήση σε μια
σχετική διεύθυνση x του προγράμματος που εκτελείται. Η πραγματική
διεύθυνση στην οποία θα δοθεί ο έλεγχος του προγράμματος είναι
Διεύθυνση έναρξης του προγράμματος + x.
Ονομάστε τους δύο (2) επιπλέον καταχωρητές και τις τιμές που ανατίθενται σε αυτούς.
– Καταχωρητής Βάσης (base register): παίρνει ως τιμή τη διεύθυνση της αρχής
του τμήματος
– Καταχωρητής Ορίου (limit register): παίρνει ως τιμή το μέγεθος του τμήματος
Τι είναι η εναλλαγή και γιατί είναι αναγκαία;
Εναλλαγή (swapping) είναι η μετακίνηση διεργασιών από την κύρια
μνήμη στον δίσκο και αντίστροφα.
Είναι αναγκαία γιατί:
* σε συστήματα διαμοιρασμού χρόνου (time sharing) υπάρχουν
πολλοί χρήστες (πολλές διεργασίες) που πρέπει να
εξυπηρετηθούν
* ο αριθμός και το μέγεθος των διεργασιών είναι μεγαλύτερος
από όσο μπορεί να χωρέσει στην μνήμη συγχρόνως.
Τι είναι η ιδεατή μνήμη;
Η ιδεατή μνήμη (virtual memory) παρουσιάζει στις διεργασίες
παραπάνω μνήμη από αυτή που διαθέτει το σύστημα. Αυτό
γίνεται χρησιμοποιώντας ιδεατές διευθύνσεις (virtual
addresses) οι οποίες μεταφράζονται σε πραγματικές από τη
μονάδα διαχείρισης μνήμης (memory management unit).