ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β
Δυναμικι Κατάτμθςθ (1/8) Η δυναμικι κατάτμθςθ αναπτφχκθκε με ςτόχο να ξεπεραςτοφν οριςμζνεσ από τισ βαςικζσ δυςκολίεσ τθσ κατάτμθςθσ ςτακεροφ μεγζκουσ Σε αυτι τθν προςζγγιςθ εμπλζκονται πιο προθγμζνεσ τεχνικζσ διαχείριςθσ μνιμθσ Με τθ δυναμικι κατάτμθςθ, τα διαμερίςματα τθσ μνιμθσ είναι μεταβλθτοφ μεγζκουσ και πλικουσ Πταν μια διεργαςία φορτώνεται ςτθν κφρια μνιμθ, τθσ ανατίκεται τόςο μνιμθ, όςθ ακριβώσ χρειάηεται και κακόλου παραπάνω
Δυναμικι Κατάτμθςθ (2/8) Παράδειγμα χριςθσ κφριασ μνιμθσ 64 Mbytes: Αρχικά θ κφρια μνιμθ είναι κενι και περιζχει μόνο το ΛΣ (α) Οι πρώτεσ 3 διεργαςίεσ φορτώνονται ξεκινώντασ από εκεί που τελειώνει το ΛΣ και κατζχουν ακριβώσ όςο χρόνο χρειάηεται θ κακεμία (β,γ,δ) Με αυτόν τον τρόπο μζνει κενό ζνα κομμάτι μνιμθσ, το οποίο είναι πολφ μικρό για να χωρζςει μια τζταρτθ διεργαςία Κάποια χρονικι ςτιγμι καμία από τισ διεργαςίεσ ςτθ μνιμθ δεν είναι ζτοιμθ Το ΛΣ εκτοπίηει τθ διεργαςία 2 (ε), θ οποία αφινει αρκετό χώρο για τθ φόρτωςθ μιασ νζασ διεργαςίασ, τθ διεργαςία 4 (ςτ) Ρθγι: Stallings, W. (2017). Λειτουργικά Συςτιματα: Αρχζσ Σχεδίαςθσ. Εκδόςεισ Τηιόλα: Θεςςαλονίκθ: 421
Δυναμικι Κατάτμθςθ (3/8) : Κακώσ θ διεργαςία 4 είναι μικρότερθ από τθ διεργαςία 2, μζνει ακόμα ζνα μικρό κομμάτι μνιμθσ κενό Στθ ςυνζχεια φτάνουμε ςε ζνα ςθμείο όπου καμία διεργαςία ςτθν κφρια μνιμθ δεν είναι ζτοιμθ, αλλά είναι διακζςιμθ θ διεργαςία 2 όπου βρίςκεται ςτθν κατάςταςθ Ζτοιμθ- Σε Αναςτολι Κακώσ δεν υπάρχει αρκετόσ χώροσ ςτθ μνιμθ για τθ διεργαςία 2, το ΛΣ αφαιρεί τθ διεργαςία 1 (η) και επαναφζρει τθ διεργαςία 2 (θ) Ρθγι: Stallings, W. (2017). Λειτουργικά Συςτιματα: Αρχζσ Σχεδίαςθσ. Εκδόςεισ Τηιόλα: Θεςςαλονίκθ: 421
Ερώτθςθ Ρωσ ςχολιάηετε τθ δυναμικι κατάτμθςθ τθσ κφριασ μνιμθσ; Ροιο είναι το μεγαλφτερο μειονζκτθμα που μπορείτε να εντοπίςετε; Μπορείτε να προτείνετε ζναν εναλλακτικό τρόπο τοποκζτθςθσ των διεργαςιών ςτθ μνιμθ; Ρθγι: Stallings, W. (2017). Λειτουργικά Συςτιματα: Αρχζσ Σχεδίαςθσ. Εκδόςεισ Τηιόλα: Θεςςαλονίκθ: 421
Δυναμικι Κατάτμθςθ (4/8) Πρόβλθμα: Από το προθγοφμενο παράδειγμα φαίνεται ότι θ μζκοδοσ αυτι ξεκινά καλά και καταλιγει ςε μια κατάςταςθ, όπου υπάρχουν πολλά μικρά ανεκμετάλλευτα τμιματα μνιμθσ Πςθ περιςςότερθ ώρα λειτουργεί ζνα ςφςτθμα, τόςο θ μνιμθ κατακερματίηεται και ο βακμόσ χριςθσ τθσ μειώνεται Εξωτερικόσ Κατακερματιςμόσ αναφζρεται ςτθν κατάςταςθ όπου θ μνιμθ που είναι εξωτερικι ςε όλα τα διαμερίςματα γίνεται ολοζνα και περιςςότερο κατακερματιςμζνθ και δεν μπορεί να χρθςιμοποιθκεί
Δυναμικι Κατάτμθςθ (5/8) Λφςθ: Μια τεχνικι για τθν αντιμετώπιςθ του εξωτερικοφ κατακερματιςμοφ είναι θ ςφμπτυξη Με τθν πάροδο του χρόνου το ςφςτθμα μετατοπίηει τισ διεργαςίεσ, ζτςι ώςτε να καταλαμβάνουν ςυνεχόμενο χώρο ςτθ μνιμθ και όλθ θ ελεφκερθ μνιμθ να ςυγκεντρώνεται ςε ζνα block Ρροχποκζτει τθ δυνατότθτα δυναμικισ επανατοποκζτθςθσ, δθλαδι τθ μετακίνθςθ ενόσ προγράμματοσ από μια περιοχι τθσ μνιμθσ ςε μια άλλθ, χωρίσ να ακυρώνονται οι αναφορζσ μνιμθσ ςτο πρόγραμμα Η δυςκολία τθσ ςφμπτυξθσ είναι ότι πρόκειται για μια χρονοβόρα διαδικαςία και ότι ςπαταλά πολφτιμο χρόνο του επεξεργαςτι
Δυναμικι Κατάτμθςθ (6/8) Αλγόρικμοσ Τοποκζτθςθσ: Επειδι θ ςφμπτυξθ μνιμθσ είναι χρονοβόρα, ο ςχεδιαςτισ του ΛΣ πρζπει να είναι ευφυισ κατά τθν απόφαςθ του τρόπου ανάκεςθσ διεργαςιών ςτθ μνιμθ Πταν ζρκει θ ώρα για να φορτωκεί ι να εναλλαγεί μια διεργαςία ςτθν κφρια μνιμθ και αν υπάρχουν περιςςότερα από ζνα ελεφκερα blocks μνιμθσ που το μζγεκόσ τουσ να επαρκεί, τότε το ΛΣ πρζπει να αποφαςίςει ποιο ελεφκερο block κα ανακζςει ςτθ διεργαςία
Δυναμικι Κατάτμθςθ (7/8) Αλγόρικμοσ Τοποκζτθςθσ : Τρεισ αλγόρικμοι τοποκζτθςθσ που κα μποροφςαν να χρθςιμοποιθκοφν είναι: Ο αλγόρικμοσ καλφτερθσ τοποκζτθςθσ (best-fit): Επιλζγει το block που είναι πιο κοντά ςτο μζγεκοσ που ζχει ηθτθκεί Ο αλγόρικμοσ πρώτθσ τοποκζτθςθσ (first-fit): Ξεκινά ςαρώνοντασ τθ μνιμθ από τθν αρχι και επιλζγει το πρώτο διακζςιμο block που είναι αρκετά μεγάλο Ο αλγόρικμοσ επόμενθσ τοποκζτθςθσ (next-fit): Ξεκινά ςαρώνοντασ τθ μνιμθ από τθ κζςθ τθσ τελευταίασ τοποκζτθςθσ και επιλζγει το επόμενο διακζςιμο block που είναι αρκετά μεγάλο Πλοι οι αλγόρικμοι περιορίηονται ςτθν επιλογι μεταξφ ελεφκερων blocks κφριασ μνιμθσ που είναι ίςα ι μεγαλφτερα από τθ διεργαςία που πρόκειται να ειςαχκεί
Ερώτθςθ Ροιοσ αλγόρικμοσ κατά τθ γνώμθ ςασ ζχει τισ καλφτερεσ επιδόςεισ όςον αφορά ςτθ διαχείριςθ τθσ μνιμθσ και τθν ταχφτθτα;
Δυναμικι Κατάτμθςθ (8/8) Αξιολόγθςθ αλγόρικμων τοποκζτθςθσ: Το ποιοσ από τουσ 3 αλγόρικμουσ είναι καλφτεροσ εξαρτάται από τθν ακριβι ακολουκία των εναλλαγών των διεργαςιών που προκφπτουν και από το μζγεκόσ τουσ Γενικζσ παρατθριςεισ: Ο αλγόρικμοσ πρώτθσ τοποκζτθςθσ: Είναι ο απλοφςτεροσ και ταχφτεροσ αλγόρικμοσ Μπορεί όμωσ να διαςκορπίηει ςτο εμπρόςκιο τμιμα μικρά ελεφκερα διαμερίςματα που κα πρζπει να ελζγχονται ςε κάκε μεταγενζςτερο πζραςμα του αλγόρικμου Ο αλγόρικμοσ επόμενθσ τοποκζτθςθσ: Τείνει να παράγει ελαφρώσ χειρότερα αποτελζςματα από τον αλγόρικμο πρώτθσ τοποκζτθςθσ Οδθγεί ςυχνότερα ςε ανάκεςθ ενόσ ελεφκερου block ςτο τζλοσ τθσ μνιμθσ το μεγαλφτερο block ελεφκερθσ μνιμθσ, το οποίο ςυχνά εμφανίηεται ςτο τζλοσ τθσ, διαςπάται γριγορα απαιτείται θ ςφμπτυξθ να γίνεται πιο ςυχνά Ο αλγόρικμοσ τθσ καλφτερθσ τοποκζτθςθσ ζχει ςυχνά τθ χειρότερθ απόδοςθ, κακώσ, αν και κάκε αίτθμα ανάκεςθσ ςπαταλά πάντα το μικρότερο ποςό μνιμθσ, το αποτζλεςμα είναι ότι θ κφρια μνιμθ γεμίηει γριγορα από blocks που είναι πολφ μικρά για να ικανοποιοφν τισ αιτιςεισ ανάκεςθσ μνιμθσ απαιτείται θ ςφμπτυξθ να γίνεται πιο ςυχνά
Σφςτθμα Φίλων (1/) Τόςο τα ςχιματα κατάτμθςθσ ςτακεροφ μεγζκουσ όςο και τα ςχιματα δυναμικισ κατάτμθςθσ ζχουν ελαττώματα Η κατάτμθςθ ςτακεροφ μεγζκουσ περιορίηει το πλικοσ των ενεργών διεργαςιών και μπορεί να χρθςιμοποιιςει το χώρο αναποτελεςματικά εάν δεν υπάρχει καλι αντιςτοιχία μεταξφ των διακζςιμων μεγεκών διαμεριςμάτων και των μεγεκών των διεργαςιών Η διατιρθςθ ενόσ ςχιματοσ δυναμικισ κατάτμθςθσ είναι πιο δφςκολθ και περιλαμβάνει τθν επιβάρυνςθ τθσ ςφμπτυξθσ Ενδιαφζρον ςυνδυαςμόσ είναι το ςχιμα των φίλων
Σφςτθμα Φίλων (2/) Σε ζνα ςφςτθμα φίλων, τα blocks μνιμθσ είναι διακζςιμα ςε μεγζκθ των 2 k λζξεων, με l k u, όπου: 2 l = μζγεκοσ μικρότερου block που ανατίκεται 2 u = μζγεκοσ του μεγαλφτερου block που ανατίκεται, γενικά 2 u είναι το μζγεκοσ ολόκλθρθσ τθσ μνιμθσ που διατίκεται για ανάκεςθ Στθν αρχι, όλοσ ο διακζςιμοσ χώροσ για ανάκεςθ αντιμετωπίηεται ωσ ζνα block μεγζκουσ 2 u Αν πραγματοποιθκεί αίτθςθ μεγζκουσ s τζτοιου ώςτε 2 u-1 <s 2 u, τότε ανατίκεται ολόκλθρο το block Αλλιώσ το block χωρίηεται ςε δφο ίςα τμιματα, τουσ φίλουσ, μεγζκουσ 2 u-1 Αν 2 u-2 <s 2 u-1, τότε θ αίτθςθ ανατίκεται ςε ζνα από τα δφο τμιματα, αλλιώσ ζνασ από τουσ δφο φίλουσ χωρίηεται και πάλι ςτθ μζςθ Αυτι θ διαδικαςία ςυνεχίηεται μζχρι να παραχκεί το μικρότερο block που είναι μεγαλφτερο ι ίςο με το s και να ανατεκεί ςτθν αίτθςθ Πταν και οι δφο φίλοι απελευκερωκοφν, επανενώνονται και πάλι
Σφςτθμα Φίλων (3/) Ρθγι: Stallings, W. (2017). Λειτουργικά Συςτιματα: Αρχζσ Σχεδίαςθσ. Εκδόςεισ Τηιόλα: Θεςςαλονίκθ: 425
Σφςτθμα Φίλων (4/) Το ςφςτθμα των φίλων είναι ζνασ λογικόσ ςυνδυαςμόσ για τθν αντιμετώπιςθ των προβλθμάτων του ςχιματοσ κατάτμθςθσ τόςο ςτακεροφ όςο και μεταβλθτοφ μεγζκουσ Στισ μζρεσ μασ χρθςιμοποιείται κατά κφριο λόγο μόνο ςτα παράλλθλα ςυςτιματα ωσ ζνασ αποτελεςματικόσ τρόποσ ανάκεςθσ και απελευκζρωςθσ ςτα παράλλθλα προγράμματα Στα ςφγχρονα ΛΣ, θ χριςθ τθσ ιδεατισ μνιμθσ που βαςίηεται ςτθ ςελιδοποίθςθ και τθν τμθματοποίθςθ είναι καλφτερθ
Επανατοποκζτθςθ (1/3) Στθν περίπτωςθ των ιςομεγεκών διαμεριςμάτων και ςτθν περίπτωςθ τθσ μοναδικισ ουράσ διεργαςιών για ανιςομεγζκθ διαμερίςματα, μια διεργαςία μπορεί να κατζχει διαφορετικά διαμερίςματα κατά τθ διάρκεια ηωισ τθσ Η εικόνα τθσ διεργαςίασ φορτώνεται ςε κάποιο διαμζριςμα τθσ κφριασ μνιμθσ όταν δθμιουργείται για πρώτθ φορά Σε κάποια χρονικι ςτιγμι, θ διεργαςία μπορεί να εκτοπιςτεί από τθν κφρια μνιμθ και να ειςζλκει και πάλι αργότερα εφόςον τθσ ανατεκεί κάποιο διαμζριςμα μνιμθσ, ίςωσ διαφορετικό από αυτό που καταλάμβανε τθν τελευταία φορά Το ίδιο ιςχφει και για τθ δυναμικι κατάτμθςθ Επιπλζον, όταν χρθςιμοποιείται θ ςφμπτυξθ, οι διεργαςίεσ μετατοπίηονται όςο βρίςκονται ςτθν κφρια μνιμθ Οι κζςεισ, εντολών και δεδομζνων, ςτισ οποίεσ γίνεται αναφορά από μία διεργαςία δεν είναι ςτακερζσ αλλάηουν κάκε φορά που θ διεργαςία ειςζρχεται ι μετατοπίηεται
Επανατοποκζτθςθ (2/3) Για να λυκεί αυτό το πρόβλθμα, γίνεται ζνασ διαχωριςμόσ μεταξφ των διαφορετικών τφπων διευκφνςεων: Μια λογική διεφθυνςη είναι μια αναφορά ςε μια κζςθ μνιμθσ ανεξάρτθτθ από τθν τρζχουςα ανάκεςθ των δεδομζνων ςτθ μνιμθ πριν πραγματοποιθκεί θ πρόςβαςθ ςτθ μνιμθ, κα πρζπει να γίνει μετάφραςθ ςε μια φυςικι διεφκυνςθ Μια ςχετική διεφθυνςη είναι ζνα παράδειγμα λογικισ διεφκυνςθσ, ςτθν οποία θ διεφκυνςθ εκφράηεται ωσ μια κζςθ ωσ προσ ζνα γνωςτό ςθμείο, ςυνικωσ μια τιμι ςε ζναν καταχωρθτι του επεξεργαςτι Μια φυςική διεφθυνςη (ι απόλυτθ διεφκυνςθ), είναι μια πραγματικι κζςθ ςτθν κφρια μνιμθ
Επανατοποκζτθςθ (3/3) Συνικωσ, όλεσ οι αναφορζσ μνιμθσ τθσ διεργαςίασ που φορτώνεται είναι ςχετικζσ με τθν αρχι του προγράμματοσ Ζτςι, απαιτείται ζνασ μθχανιςμόσ υλικοφ για τθ μετάφραςθ ςχετικών διευκφνςεων ςε φυςικζσ διευκφνςεισ κφριασ μνιμθσ τθ ςτιγμι τθσ εκτζλεςθσ τθσ εντολισ που περιζχει τθν αναφορά Οι ςχετικζσ διευκφνςεισ που εμφανίηονται κατά τθν εκτζλεςθ μιασ διεργαςίασ μπορεί να περιλαμβάνουν τα περιεχόμενα των καταχωρθτών εντολών, τισ διευκφνςεισ των εντολών που διακλαδίηονται και καλοφν εντολζσ και τισ διευκφνςεισ των δεδομζνων κατά τθ φόρτωςθ ι αποκικευςθ εντολών Κάκε ςχετικι διεφκυνςθ μετατρζπεται ςε απόλυτθ διεφκυνςθ, ελζγχεται εάν βρίςκεται ςτα όρια μνιμθσ που ζχει ανατεκεί ςτο πρόγραμμα και εφόςον είναι μζςα ςτα όρια εκτελείται, αλλιώσ παράγεται μια διακοπι ςτο ΛΣ, θ οποία κα πρζπει να αντιμετωπίςει με κάποιο τρόπο το ςφάλμα
Βιβλιογραφία Stallings, W. (2017). Λειτουργικά Συςτιματα: Αρχζσ Σχεδίαςθσ. Εκδόςεισ Τηιόλα: Θεςςαλονίκθ.