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

1
Q

Τι είναι η μνήμη;

A

Μνήμη είναι εκεί που κρατάς την εικόνα των βυζιών μου ;)
Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη προσοχή

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Ποιος είναι ο νόμος του Parkinson;

A

«Τα προγράμματα τείνουν να καταλάβουν τόσο χώρο στη μνήμη, όσο τους
προσφέρεται»

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Τι είναι ο Διαχειριστής Μνήμης (Memory Manager);

A

Διαχειριστής Μνήμης είναι το τμήμα του λειτουργικού συστήματος που διαχειρίζεται τη μνήμη

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Ποια είναι τα βασικά καθήκοντα ενός Διαχειριστή Μνήμης;

A

Τα βασικά του καθήκοντα είναι :
– Να παρακολουθεί ποια τμήματα της μνήμης είναι σε χρήση και ποια όχι.
– Να χορηγεί μνήμη σε διεργασίες όποτε την χρειάζονται.
– Να επαναχορηγεί σε άλλες την μνήμη όταν οι πρώτες ολοκληρώνουν την
αποστολή τους.
– Να διαχειρίζεται την εναλλαγή (swapping) πληροφοριών μεταξύ κύριας μνήμης
και δίσκου, όταν η κύρια μνήμη δεν είναι αρκετή για να εξυπηρετηθούν όλες οι
διεργασίες.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Σε ποιες κατηγορίες διακρίνονται τα Συστήματα Διαχείρισης Μνήμης;

A

Τα Συστήματα Διαχείρισης Μνήμης διακρίνονται σε:
– Αυτά που μετακινούν διεργασίες μεταξύ κύριας μνήμης και
δίσκου κατά τη διάρκεια της εκτέλεσής τους (swapping και
paging)
– Αυτά που δε διαθέτουν τέτοιες τεχνικές

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Τι γνωρίζετε για τον μονοπρογραμματισμό;

A
  • Απλούστερο δυνατό σύστημα διαχείρισης μνήμης
  • Κάθε φορά έχουμε μόνο μία διεργασία στη μνήμη που επιτρέπεται
    να χρησιμοποιεί το σύνολό της
  • Συνηθέστερη τεχνική:
    Η μνήμη διαμοιράζεται ανάμεσα στο λειτουργικό σύστημα και σε μία μόνο διεργασία χρήστη
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Ποια είναι η διαδικασία εκτέλεσης διεργασίας του μονοπρογραμματισμού;

A

– Εισαγωγή εντολής από το χρήστη
– Το λειτουργικό σύστημα φορτώνει στη μνήμη από το δίσκο το
πρόγραμμα που ζητήθηκε και το εκτελεί
– Όταν η διεργασία τελειώσει, το λειτουργικό σύστημα τυπώνει ένα
χαρακτήρα προτροπής και περιμένει μία νέα εντολή για να φορτώσει μια
άλλη διεργασία

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Ποιες ανάγκες οδήγησαν στη χρήση του πολυπρογραμματισμού;

A

Ανάγκες για πολυπρογραμματισμό:
– Ευκολότερος ο προγραμματισμός μιας εφαρμογής χωρίζοντας την σε
δύο ή περισσότερες διεργασίες
– Παροχή διαλογικών υπηρεσιών ταυτόχρονα (μέσων ενός μεγάλου
υπολογιστή) σε ικανό αριθμό χρηστών.
– Αποδοτική χρήση της CPU όταν μια διεργασία βρίσκεται
«μπλοκαρισμένη» περιμένοντας να ολοκληρωθούν διάφορες εργασίες
εισόδου / εξόδου.

  • Για να είναι λογικές οι επιδόσεις του συστήματος πρέπει να
    βρίσκονται περισσότερες από μια διεργασίες στην κύρια
    μνήμη.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Πώς μοντελοποιείται ο πολυπρογραμματισμός; (ορισμός του βαθμού του πολυπρογραμματισμού)

A
  • Έστω μια διεργασία καταναλώνει τμήμα p του χρόνου της σε
    κατάσταση αναμονής για εργασίες εισόδου/εξόδου.
  • Με n τέτοιες διεργασίες συγχρόνως στην μνήμη, η πιθανότητα
    όλες τους να περιμένουν για είσοδο/έξοδο (οπότε η CPU θα
    είναι αδρανής) είναι pn
  • Αξιοποίηση της CPU = 1 – pn
  • Βαθμός πολυπρογραμματισμού είναι η αξιοποίηση της CPU
    συναρτήσει του n
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Πώς λειτουργεί ο πολυπρογραμματισμός με σταθερά τμήματα μνήμης;

A

Η μνήμη διαιρείται σε τμήματα (partitions), ίσα ή άνισα
* Σύστημα με πολλές ουρές όπου τοποθετούνται οι διεργασίες που
καταφθάνουν για να εκτελεσθούν.
* Η πρώτη προσέγγιση εξυπηρετεί την πρώτη διεργασία στην ουρά η
οποία χωράει στο τμήμα της μνήμης που μόλις ελευθερώθηκε.
* Σύστημα με μία ουρά όπου τοποθετούνται οι διεργασίες που
καταφθάνουν για να εκτελεσθούν
* Στην δεύτερη προσέγγιση τοποθετείται στο τμήμα που μόλις
ελευθερώθηκε η μεγαλύτερη διεργασία που βρίσκεται στην ουρά και
χωράει στο τμήμα αυτό.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Ποια είναι δυο σημαντικά προβλήματα του πολυπρογραμματισμού;

A

Δύο σημαντικά προβλήματα του πολυπρογραμματισμού:
– η μετατόπιση (relocation)
– η προστασία (protection)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Τι είναι η μετατόπιση στον πολυπρογραμματισμό;

A

Μετατόπιση: προσδιορισμός της διεύθυνσης μνήμης στην οποία θα
μεταφερθεί ο έλεγχος του προγράμματος μετά από μια κλήση σε μια
σχετική διεύθυνση x του προγράμματος που εκτελείται. Η πραγματική
διεύθυνση στην οποία θα δοθεί ο έλεγχος του προγράμματος είναι
Διεύθυνση έναρξης του προγράμματος + x.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Ονομάστε τους δύο (2) επιπλέον καταχωρητές και τις τιμές που ανατίθενται σε αυτούς.

A

– Καταχωρητής Βάσης (base register): παίρνει ως τιμή τη διεύθυνση της αρχής
του τμήματος
– Καταχωρητής Ορίου (limit register): παίρνει ως τιμή το μέγεθος του τμήματος

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Τι είναι η εναλλαγή και γιατί είναι αναγκαία;

A

Εναλλαγή (swapping) είναι η μετακίνηση διεργασιών από την κύρια
μνήμη στον δίσκο και αντίστροφα.
Είναι αναγκαία γιατί:
* σε συστήματα διαμοιρασμού χρόνου (time sharing) υπάρχουν
πολλοί χρήστες (πολλές διεργασίες) που πρέπει να
εξυπηρετηθούν
* ο αριθμός και το μέγεθος των διεργασιών είναι μεγαλύτερος
από όσο μπορεί να χωρέσει στην μνήμη συγχρόνως.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Τι είναι η ιδεατή μνήμη;

A

Η ιδεατή μνήμη (virtual memory) παρουσιάζει στις διεργασίες
παραπάνω μνήμη από αυτή που διαθέτει το σύστημα. Αυτό
γίνεται χρησιμοποιώντας ιδεατές διευθύνσεις (virtual
addresses) οι οποίες μεταφράζονται σε πραγματικές από τη
μονάδα διαχείρισης μνήμης (memory management unit).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Τι είναι οι σελίδες;

A

Ο χώρος των ιδεατών διευθύνσεων διαιρείται σε ίσα μέρη που
ονομάζονται σελίδες (pages).

17
Q

Τι είναι τα πλαίσια σελίδας;

A

Ο χώρος της φυσικής μνήμης (physical memory) διαιρείται
αντίστοιχα σε πλαίσια σελίδας (page frames).

18
Q

Πώς λειτουργεί η σελιδοποίηση;

A

Η σελιδοποίηση λύνει το πρόβλημα του εξωτερικού
κατακερματισμού επιτρέποντας ταυτόχρονα την φόρτωση του
προγράμματος σε διάσπαρτα τμήματα της κύριας μνήμης
* Η φυσική μνήμη χωρίζεται σε τμήματα ίσου μεγέθους (πλαίσια), ενώ
η λογική μνήμη του προγράμματος χωρίζεται σε τμήματα με το ίδιο
μέγεθος (σελίδες). Το μέγεθος είναι συνήθως 512-8192 bytes
* Η επιλογή της δύναμης του 2 για μέγεθος πλαισίου/σελίδας
απλοποιεί τη μετατροπή μιας λογικής διεύθυνσης σε φυσική

19
Q

Πώς γίνεται η αντιστοίχιση του αριθμού μιας σελίδας και της φυσικής
διεύθυνσης του πλαισίου;

A
  • Η αντιστοίχιση του αριθμού μιας σελίδας και της φυσικής
    διεύθυνσης του πλαισίου γίνεται μέσω του πίνακα σελίδων (page
    table)
    ** Αν ο αριθμός των bits των λογικών διευθύνσεων είναι m και το μέγεθος σελίδας
    είναι 2n, τότε:
    τα «υψηλότερα» (most significant) m-n bits μιας λογικής διεύθυνσης
    προσδιορίζουν τον αριθμό της σελίδας και τα υπόλοιπα n bits τη μετατόπιση
    μέσα στην σελίδα
20
Q

Ποια τα προβλήματα της σελιδοποίησης η του πίνακα σελίδων; δεν κατάλαβα…

A

Σημαντικά Προβλήματα
– Μεγάλος Πίνακας Σελίδων
– Γρήγορη Απεικόνιση

21
Q

Πώς γίνεται η αντικατάσταση σελίδων;

A
  • Όταν προκύπτει λάθος σελίδας,
    – το Λ.Σ. πρέπει να διαλέξει μια σελίδα και να την
    απομακρύνει για να εξασφαλίσει χώρο στη μνήμη για
    επόμενη σελίδα
  • Η τροποποιημένη σελίδα πρέπει πρώτα να σωθεί
  • Η μη τροποποιημένη απλώς διαγράφεται
  • Καλύτερη επίδοση του συστήματος επιτυγχάνεται αν επιλεγεί
    μία σελίδα που δεν χρησιμοποιείται συχνά
22
Q

Αναφέρετε επιγραμματικά τους έξι (6) αλγόριθμους αντικατάστασης σελίδων

A

1) optimal page replacement algorithm
2) Not Recently Used
3) first page in first page out
4) second chance replacement algorithm
5) clock
6) least recently used

23
Q

Περιγράψτε συνοπτικά τον optimal page replacement algorithm

A
  • Βασίζεται στο χρόνο μελλοντικής χρήσης της σελίδας
  • Θεωρητικά
    – είναι βέλτιστος αλγόριθμος
  • Πρακτικά
    – είναι αδύνατο να υλοποιηθεί αφού προϋποθέτει πρόβλεψη
    της μελλοντικής συμπεριφοράς των διεργασιών.
24
Q

Περιγράψτε συνοπτικά τον αλγόριθμο not recently used

A

Κάθε σελίδα έχει bit αναφοράς και bit τροποποίησης
– Τα bit ενεργοποιούνται όταν στη σελίδα γίνει αναφορά ή
τροποποίηση
* Οι σελίδες κατηγοριοποιούνται
0. δεν έγινε αναφορά, δεν τροποποιήθηκε
1. δεν έγινε αναφορά, τροποποιήθηκε
2. έγινε αναφορά, δεν τροποποιήθηκε
3. έγινε αναφορά, τροποποιήθηκε
* Ο NRU αντικαθιστά τις σελίδες τυχαία
– Από την χαμηλότερη αριθμημένη μη άδεια τάξη

25
Q

Περιγράψτε συνοπτικά τον αλγόριθμο first page in first page out

A
  • Διατήρηση μιας λίστας με δεσμούς όλων των σελίδων
    – Με τη σειρά που ήρθαν στη μνήμη
  • Σελίδα στην αρχή της λίστας που αντικαταστάθηκε
  • Μειονέκτημα
    – Σελίδα στην μνήμη το περισσότερο που μπορεί να
    χρησιμοποιηθεί
26
Q

Περιγράψτε συνοπτικά τον second chance replacement algorithm

A
  • Τροποποίηση του FIFO έτσι ώστε
    – σελίδες που έχουν χρησιμοποιηθεί πρόσφατα όταν είναι υποψήφιες για
    αντικατάσταση να μεταφέρονται πάλι στην αρχή της ουράς
  • Μειονέκτημα
    – Είναι άσκοπα μη αποδοτικός μιας και διαρκώς μετακινεί σελίδες γύρω
    από τη λίστα
27
Q

Περιγράψτε συνοπτικά τον αλγόριθμο clock

A
  • Τροποποίηση του αλγορίθμου δεύτερης ευκαιρίας έτσι ώστε
    – ο έλεγχος για τις σελίδες που έχουν χρησιμοποιηθεί να
    γίνεται κυκλικά και να μη μεταφέρονται στην αρχή της
    ουράς.
  • Διαφέρει από τον αλγόριθμο δεύτερης ευκαιρίας μόνο στην
    υλοποίηση
28
Q

Περιγράψτε συνοπτικά τον αλγόριθμο least recently used

A
  • Κάθε σελίδα σχετίζεται με έναν μετρητή ο οποίος μετράει τον αριθμό των
    προσβάσεων στη σελίδα.
  • Η σελίδες με τις λιγότερες προσβάσεις είναι αυτές που απομακρύνονται.
  • Όλοι οι αλγόριθμοι που περιγράφηκαν εξαρτώνται από ειδικό υλικό και δεν
    βοηθούν στη σχεδίαση ενός Λ.Σ. Που δεν έχει αυτό το υλικό
29
Q

Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα του μικρού μεγέθους σελίδας;

A
  • Πλεονεκτήματα
    – Λιγότερη εσωτερική κατάτμηση
    – Διάφορες δομές δεδομένων χωράνε καλύτερα,τομείς κώδικα
    – Λιγότερο αχρησιμοποίητο πρόγραμμα στην μνήμη
  • Μειονεκτήματα
    – Τα προγράμματα χρειάζονται περισσότερες σελίδες, μεγαλύτεροι
    πίνακες σελίδων
  • Επιβάρυνση λόγω του πίνακα σελίδας και της
    εσωτερικής κατάτμησης
30
Q

Τι είναι η κατάτμηση;

A
  • Η κατάτμηση (segmentation) επιτρέπει το διαχωρισμό της
    μνήμης μιας διεργασίας σε πολλά γραμμικά τμήματα.
  • Η κατάτμηση επιτρέπει:
    – την εύκολη μεταφορά του κώδικα, αφού κάθε τμήμα του εκφράζεται σχετικά με
    την αρχή του τμήματος.
    – την προστασία των δεδομένων ανάλογα με τον τύπο τους.
    – Την υλοποίηση διαμοιραζομένων βιβλιοθηκών (shared libraries)
  • Η κατάτμηση υλοποιείται με βάση δομών στη μνήμη που καλούνται
    περιγραφείς (descriptors) και περιέχουν τα χαρακτηριστικά στοιχεία κάθε
    τμήματος (θέση στην πραγματική μνήμη, προστασία, μέγεθος).
31
Q

Τι περιέχουν τα τμήματα που προκύπτουν από την κατάτμηση;

A

Τα τμήματα αυτά για κάθε διεργασία μπορούν να περιέχουν:
– Τον κώδικα
– Τη στοίβα
– Τα αρχικοποιημένα δεδομένα
– Το χώρο ανάπτυξης της δυναμικής μνήμης