You are on page 1of 12

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

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ
FIXED PARTITIONING

Σ’ όλα τα σχήματα διαχείρισης μνήμης υποθέτουμε ότι το λειτουργικό


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

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ
FIXED PARTITIONING

Στη πρώτη περίπτωση κάθε διεργασία η οποία είναι ίσου ή μικρότερου


μεγέθους από τα κομμάτια στα οποία έχει τεμαχιστεί η μνήμη μπορεί φορτωθεί
εάν υπάρχει ελεύθερο κομμάτι της μνήμης. Εάν δεν υπάρχει ελέυθερο κομμάτι
μνήμης για φορτωθεί μία διεργασία η οποία είναι σε κατάσταση READY τότε
μπορεί να γίνει εναλλαγή διεργασιών.
Υπάρχουν δύο δυσκολίες να επιλυθούν όταν τα κομμάτια είναι
προκαθορισμένα και ίδιου μεγέθους:
Ένα πρόγραμμα είναι πιθανόν να είναι πολύ μεγάλο για να χωρέσει στα
σταθερού ίσου μεγέθους κομμάτια της μνήμης. Σ’ αυτή την περίπτωση το βάρος
πέφτει στον προγραμματιστή ο οποίος πρέπει να μπορεί να χωρίσει το
πρόγραμμα σε modules τα οποία θα πρέπει να φορτώνονται διαδοχικά.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ
FIXED PARTITIONING

Η δεύτερη είναι ότι η αξιοποίηση της μνήμης δεν είναι αποδοτική. Καθώς
οποιοδήποτε πρόγραμμα όσο και μικρό να είναι θα δεσμεύσει για να εκτελεστεί
ένα ολόκληρο κομμάτι της μνήμης, αποτέλεσμα αυτού είναι σε πολλές
περιπτώσεις μεγάλα τμήματα της μνήμης να μην αξιοποιούνται. Όπως για
παράδειγμα τα κομμάτια της μνήμης να είναι 8 ΜΒ και ένα πρόγραμμα να είναι 2
ΜΒ τότε τα 6 ΜΒ που υπολοίπονται στο κομμάτι μνήμης μένουν αναξιοποίητα.
Το φαινόμενο αυτό ονομάζεται internal fragmentation.
Τα προβλήματα αυτά μπορούν να μειωθούν χωρίς να λυθούν
χρησιμοποιώντας προκαθορισμένου μεγέθους τμήματα μνήμης όχι σταθερού
μεγέθους. Σ’ αυτή την περίπτωση κάθε διαδικασία «φορτώνεται» στο μικρότερο
τμήμα της μνήμης στο οποίο μπορεί να χωρέσει.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ
FIXED PARTITIONING

Η τεχνική αυτή του προκαθορισμένου μεγέθους τεμαχισμού της μνήμης


δεν χρησιμοποιείται σήμερα από κανένα λειτουργικό σύστημα.

DYNAMIC PARTITIONING

Οι δυσκολίες του τεμαχισμού σε τμήματα σταθερού μεγέθους οδήγησαν


στην δημιουργία τού δυναμικού τεμαχισμού της μνήμης. Αυτό σημαίνει ότι κάθε
διεργασία η οποία φορτώνεται στη μνήμη δεσμεύει ακριβώς τεμάχιο μνήμης με
μέγεθος το οποίο είναι ίδιο με το μέγεθος της διεργασίας. Ένα παράδειγμα της
δυναμικής δέσμευσης τμημάτων της μνήμης παρουσιάζεται στη συνέχεια.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

DYNAMIC PARTITIONING

Λειτουργικό Λειτουργικό Λειτουργικό Λειτουργικό


128 Κ 128 Κ 128 Κ 128 Κ
Σύστημα Σύστημα Σύστημα Σύστημα

Διεργασία 1 320 Κ Διεργασία 1 320 Κ Διεργασία 1 320 Κ

896 Κ Διεργασία 2 Διεργασία 2


224 Κ 224 Κ

576 Κ
Διεργασία 3
288 Κ
352 Κ
64 Κ
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

DYNAMIC PARTITIONING

Λειτουργικό Λειτουργικό Λειτουργικό Λειτουργικό


128 Κ 128 Κ 128 Κ 128 Κ
Σύστημα Σύστημα Σύστημα Σύστημα
Διεργασία 2
Διεργασία 1 320 Κ Διεργασία 1 320 Κ 320 Κ 224 Κ

96 Κ
Διεργασία 4 128 Κ Διεργασία 4 128 Κ Διεργασία 4 128 Κ
224 Κ
96 Κ 96 Κ 96 Κ
Διεργασία 3 Διεργασία 3 Διεργασία 3 Διεργασία 3
288 Κ 288 Κ 288 Κ 288 Κ

64 Κ 64 Κ 64 Κ 64 Κ

EXTERNAL FRAGMENTATION

Δηλαδή η διαθέσιμη μνήμη τελικά από της εναλλαγές των διεργασιών


σ’ αυτή χωρίζεται με τέτοιο τρόπο που αφήνει μικρά τμήματα της μνήμης τα
οποία λόγω του πολύ μικρού τους μεγέθους δεν είναι δυνατόν να
χρησιμοποιηθούν.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ
PAGING

Χωρίζουμε την κάθε διεργασία σε τμήματα πολύ μικρού προκαθορισμένου


σταθερού μεγέθους, τα οποία ονομάζουμε pages και παράλληλα χωρίζουμε την
κύρια μνήμη του Η/Υ σε ίδιου μεγέθους τμήματα τα οποία ονομάζουμε frames ή
page frames. Μ’ αυτό το τρόπο o internal fragmentation περιορίζεται μόνο στην
τελευταία page που πιθανόν είναι μικρότερου μεγέθους από τις υπόλοιπες.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

Η μετάφραση από λογική διεύθυνση σε φυσική διεύθυνση γίνεται από


το hardware του συστήματος.

Α0 Α0
Α1 Α1
Α2 Α2
Α3 Α3
Β0
Β1
Β2

Δεκαπέντε Διαθέσιμες Pages Φορτώση της Process A Φορτώση της Process B


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

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

Α0 Α0 Α0
Α1 Α1 Α1
Α2 Α2 Α2
Α3 Α3 Α3
Β0 D0
Β1 D1
Β2 D2
C0 C0 C0
C1 C1 C1
C2 C2 C2
C3 C3 C3
D3
D4

Φορτώση της Process C Μεταφορά εκτός Φορτώση της Process D


της process Β
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

0 0 0 - 0 7 0 4 13
1 1 1 - 1 8 1 5 14
2 2 2 - 2 9 2 6
3 3 3 10 3 11
4 12
Process A Process B Process C Process D Free Frame
Page Table Page Table Page Table Page Table List
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ
SEGMENTATION

Ένας άλλος τρόπος τεμαχισμού της κύριας μνήμης είναι το segmentation.


Σύμφωνα με το τρόπο αυτό το πρόγραμμα και τα δεδομένα τα οποία σχετίζονται
μ’ αυτό χωρίζονται σε έναν αριθμό από segments. Δεν απαιτείται όλα τα
segments του ίδιου προγράμματος να έχουν το ίδιο μέγεθος, αν και υπάρχει ένα
μέγεθος το οποίο απότελεί το μέγιστο. Όπως και με το paging η λογική
διεύθυνση στο segmentation αποτελείται από δύο μέρη τον αριθμό του segment
και την θέση του στο συνολικό αριθμό (offset). Η λογική με την οποία το
segmentation δεσμεύει την μνήμη είναι ίδια με του dynamic partitioning με την
διαφορά ότι στο segmentation μία διεργασία είναι δυνατόν να φορτωθεί σε
περισσότερα από ένα segments και μάλιστα αυτά μπορεί να μην είναι
διαδοχικά.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ
SEGMENTATION

Το segmentation εξαλείφει το internal fragmentation αλλά δεν


αντιμετωπίζει το external fragmentation αν και επειδή οι διεργασίες χωρίζονται
σε μικρά τμήματα αυτός είναι πολύ περιορισμένος.
Η διαφορά για το προγραμματιστή είναι ότι ενώ το paging δεν είναι ορατό
το segmentation είναι και μπορεί αυτός να καθορίσει το πως θα τεμαχιστεί το
πρόγραμμα για να φορτωθεί πιό αποδοτικά στη μνήμη. Αυτό το οποίο πρέπει να
προσέχει ο προγραμματιστής είναι να μην υπορβεί το μέγιστο μέγεθος του
segment που ορίζεται από το λειτουργικό σύστημα.

You might also like