ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 5 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Α
Διαχείριςθ Μνιμθσ (1/2) υςτιματα μονοπρογραμματιςμοφ: Η κφρια μνιμθ χωρίηεται ςε δφο τμιματα: Ζνα τμιμα για το λειτουργικό ςφςτθμα, όπου είναι εγκατεςτθμζνοσ ο παρακολουκθτισ και ο πυρινασ Ζνα τμιμα για το πρόγραμμα που εκτελείται εκείνθ τθ χρονικι ςτιγμι υςτιματα πολυπρογραμματιςμοφ: Σο τμιμα μνιμθσ του χριςτθ πρζπει να διαιρεκεί περαιτζρω ϊςτε να εξυπθρετεί πολλαπλζσ διεργαςίεσ Η εργαςία τθσ υποδιαίρεςθσ εκτελείται δυναμικά από το Λ και είναι γνωςτι ωσ διαχείριση μνήμης
Διαχείριςθ Μνιμθσ (2/2) Η αποτελεςματικι διαχείριςθ τθσ μνιμθσ είναι ηιτθμα ηωτικισ ςθμαςίασ ςτα ςυςτιματα πολυπρογραμματιςμοφ Αν λίγεσ μόνο διεργαςίεσ βρίςκονται ςτθ μνιμθ, τότε τον περιςςότερο χρόνο ο επεξεργαςτισ κα μζνει ανενεργόσ Η μνιμθ πρζπει να ανατίκεται αποτελεςματικά, ϊςτε να διαςφαλίηεται ότι ζνασ λογικόσ αρικμόσ ζτοιμων διεργαςιϊν κα καταναλϊνει διακζςιμο χρόνο επεξεργαςτι
Όροι Διαχείριςθσ Μνιμθσ Πλαίςιο: Ζνα ςτακεροφ μεγζκουσ block κφριασ μνιμθσ ελίδα: Ζνα ςτακεροφ μεγζκουσ block δεδομζνων που ανικει ςε δευτερεφουςα μνιμθ (π.χ. δίςκοσ). Μια ςελίδα δεδομζνων μπορεί προςωρινά να αντιγραφεί ςε ζνα πλαίςιο κφριασ μνιμθσ Σμιμα: Ζνα μεταβλθτοφ μεγζκουσ block δεδομζνων που ανικει ςε δευτερεφουςα μνιμθ. Ζνα ολόκλθρο τμιμα μπορεί προςωρινά να αντιγραφεί ςε μια διακζςιμθ περιοχι κφριασ μνιμθσ (τμθματοποίθςθ) ι το τμιμα αυτό μπορεί να διαιρεκεί ςε ςελίδεσ, οι οποίεσ μποροφν κακεμία ξεχωριςτά να αντιγραφοφν ςτθν κφρια μνιμθ (ςυνδυαςμόσ τμθματοποίθςθσ και ςελιδοποίθςθσ)
Απαιτιςεισ Διαχείριςθσ Μνιμθσ Για να ερευνιςουμε τουσ διάφορουσ μθχανιςμοφσ και πολιτικζσ διαχείριςθσ τθσ μνιμθσ, κα πρζπει να λάβουμε υπόψθ τισ απαιτιςεισ που θ διαχείριςθ μνιμθσ ςκοπεφει να ικανοποιιςει Απαιτιςεισ: Επανατοποκζτθςθ Προςταςία Διαμοιραςμόσ Λογικι οργάνωςθ Φυςικι οργάνωςθ
Επανατοποκζτθςθ τα ςυςτιματα πολυπρογραμματιςμοφ, ςε γενικζσ γραμμζσ ζνα ςφνολο διεργαςιϊν διαμοιράηεται τθ διακζςιμθ μνιμθ υνικωσ, δεν είναι δυνατόν για τον προγραμματιςτι να γνωρίηει εκ των προτζρων ποια άλλα προγράμματα είναι εγκατεςτθμζνα ςτθν κφρια μνιμθ τθ ςτιγμι τθσ εκτζλεςθσ του προγράμματοσ του Επιπλζον, εφόςον είναι εφικτι θ εναλλαγι ενεργϊν διεργαςιϊν μζςα και ζξω από τθν κφρια μνιμθ για να μεγιςτοποιείται ο βακμόσ χριςθσ του επεξεργαςτι, κα ιταν αρκετά περιοριςτικό, μόλισ ζνα πρόγραμμα εκτοπιςτεί ςτο δίςκο, να πρζπει να τοποκετθκεί ςτθν ίδια περιοχι μνιμθσ όταν επαναφζρεται ςτθν κφρια μνιμθ Αντικζτωσ είναι πολφ πικανό θ διεργαςία να πρζπει να επανατοποκετθκεί ςε κάποια άλλθ περιοχι μνιμθσ Είναι φανερό ότι το Λ κα πρζπει να γνωρίηει τθ κζςθ των πλθροφοριϊν ελζγχου τθσ διεργαςίασ και τθσ ςτοίβασ εκτζλεςθσ, κακϊσ επίςθσ και το ςθμείο ζναρξθσ τθσ εκτζλεςθσ του προγράμματοσ για τθν εκάςτοτε διεργαςία
Προςταςία (1/2) Κάκε διεργαςία πρζπει να προςτατεφεται ενάντια ςτισ ανεπικφμθτεσ παρεμβολζσ άλλων διεργαςιϊν, είτε αυτζσ είναι ςκόπιμεσ είτε τυχαίεσ Προγράμματα άλλων διεργαςιϊν δε κα πρζπει να μποροφν να πραγματοποιοφν αναφορζσ χωρίσ άδεια ςε κζςεισ μνιμθσ μιασ διεργαςίασ για λόγουσ ανάγνωςθσ ι εγγραφισ Κατά μία ζννοια, θ ικανοποίθςθ απαίτθςθσ επανατοποκζτθςθσ αυξάνει τθ δυςκολία ικανοποίθςθσ τθσ απαίτθςθσ προςταςίασ Άρα, όλεσ οι αναφορζσ μνιμθσ που παράγονται από μία διεργαςία πρζπει να ελεγχκοφν κατά τθ διάρκεια τθσ εκτζλεςθσ, για να διαςφαλιςτεί ότι ζχουν αναφορά μόνο ςτο χϊρο μνιμθσ που ζχει ανατεκεί ςε αυτι τθ διεργαςία
Προςταςία (2/2) υνικωσ: Μια διεργαςία χριςτθ δεν μπορεί να ζχει πρόςβαςθ ςε οποιοδιποτε τμιμα του Λ, οφτε ςε προγράμματα οφτε ςε δεδομζνα Ζνα πρόγραμμα μιασ διεργαςίασ δεν μπορεί να διακλαδωκεί ςε εντολι άλλθσ διεργαςίασ Χωρίσ ιδιαίτερθ ρφκμιςθ, ζνα πρόγραμμα μιασ διεργαςίασ δεν μπορεί να ζχει πρόςβαςθ ςτθν περιοχι δεδομζνων μιασ άλλθσ διεργαςίασ Άρα, ο επεξεργαςτισ πρζπει να είναι ςε κζςθ να απορρίπτει τζτοιεσ εντολζσ ςτο ςθμείο εκτζλεςθσ Η απαίτηςη προςταςίασ μνήμησ πρζπει να ικανοποιείται από τον επεξεργαςτή (υλικό μζροσ) και όχι από το ΛΣ (λογιςμικό)
Διαμοιραςμόσ Κάκε μθχανιςμόσ προςταςίασ πρζπει να είναι αρκετά ευζλικτοσ ϊςτε να επιτρζπει ςε αρκετζσ διεργαςίεσ να ζχουν πρόςβαςθ ςτθν ίδια περιοχι τθσ κφριασ μνιμθσ Παραδείγματα: Αν ζνα πλικοσ διεργαςιϊν εκτελεί το ίδιο πρόγραμμα, είναι ωφζλιμο να επιτρζπεται ςε κάκε διεργαςία να ζχει πρόςβαςθ ςτο ίδιο αντίγραφο προγράμματοσ παρά να ζχει το δικό τθσ ξεχωριςτό αντίγραφο Οι διεργαςίεσ που ςυνεργάηονται κα πρζπει να διαμοιράηονται τθν πρόςβαςθ ςτθν ίδια δομι δεδομζνων
Λογικι Οργάνωςθ (1/2) χεδόν ςε όλεσ τισ περιπτϊςεισ, θ κφρια μνιμθ του υπολογιςτι οργανϊνεται ωσ ζνασ γραμμικόσ, μονοδιάςτατοσ χϊροσ διευκφνςεων αποτελοφμενοσ από μία ακολουκία bytes ι λζξεων Η δευτερεφουςα μνιμθ, ςτο φυςικό τθσ επίπεδο είναι οργανωμζνθ παρόμοια Παρόλο που θ οργάνωςθ ςχεδόν αντικατοπτρίηει το πραγματικό υλικό τθσ μθχανισ, δεν αντιςτοιχεί ςτον τρόπο με τον οποίο είναι τυπικά δομθμζνα τα προγράμματα Σα περιςςότερα προγράμματα είναι οργανωμζνα ςε μονάδεσ, οριςμζνεσ από τισ οποίεσ δεν μποροφν να τροποποιθκοφν (μόνο για ανάγνωςθ, μόνο για εκτζλεςθ) και οριςμζνεσ από τισ οποίεσ περιζχουν δεδομζνα, τα οποία μποροφν να τροποποιθκοφν
Λογικι Οργάνωςθ (2/2) Αν το Λ και το υλικό του υπολογιςτι μποροφν να χειρίηονται αποτελεςματικά χριςτεσ και δεδομζνα με τθ μορφι μονάδων, τότε προκφπτουν τα ακόλουκα πλεονεκτιματα: Οι μονάδεσ μποροφν να γράφονται και να μεταγλωττίηονται ανεξάρτθτα, με όλεσ τισ αναφορζσ από μία μονάδα ςε μία άλλθ να επιλφονται από το ςφςτθμα κατά το χρόνο εκτζλεςθσ Με μικρι επιπρόςκετθ επιβάρυνςθ, διαφορετικοί βακμοί προςταςίασ (μόνο ανάγνωςθ, μόνο εκτζλεςθ) μποροφν να αποδοκοφν ςε διαφορετικζσ μονάδεσ Είναι δυνατι θ ειςαγωγι μθχανιςμϊν, με τουσ οποίουσ οι διεργαςίεσ μποροφν να διαμοιράηονται τισ μονάδεσ Η τεχνικι διαχείριςθσ μνιμθσ που ικανοποιεί άμεςα αυτζσ τισ απαιτιςεισ είναι θ τμηματοποίηςη
Φυςικι Οργάνωςθ (1/2) Η μνιμθ του υπολογιςτι είναι οργανωμζνθ ςε τουλάχιςτον δφο επίπεδα: Σθν κφρια μνιμθ: Παρζχει γριγορθ πρόςβαςθ με ςχετικά χαμθλό κόςτοσ Είναι πτθτικι, το οποίο ςθμαίνει ότι δεν παρζχει μόνιμθ αποκικευςθ Σθ δευτερεφουςα μνιμθ: Είναι πιο αργι και φκθνότερθ από τθν κφρια μνιμθ και είναι ςυνικωσ μθ πτθτικι Άρα, θ δευτερεφουςα μνιμθ μεγάλθσ χωρθτικότθτασ μπορεί να παρζχεται για μακροχρόνια αποκικευςθ προγραμμάτων και δεδομζνων, ενϊ θ μικρότερθ μνιμθ, θ κφρια, διατθρεί προγράμματα και δεδομζνα που εκείνθ τθ χρονικι ςτιγμι είναι ςε χριςθ
Φυςικι Οργάνωςθ (2/2) ε αυτό το ςχιμα των δφο επιπζδων, θ οργάνωςθ τθσ ροισ των πλθροφοριϊν ανάμεςα ςτθν κφρια και ςτθ δευτερεφουςα μνιμθ αποτελεί ςθμαντικό ηιτθμα για το ςφςτθμα Η ευκφνθ για αυτι τθ ροι δε κα πρζπει να αφινεται ςτον εκάςτοτε προγραμματιςτι, κακϊσ: Σθ ςτιγμι που γράφει τον κϊδικα δε γνωρίηει πόςοσ χϊροσ κα είναι διακζςιμοσ και που αυτόσ κα βρίςκεται Οι ενζργειζσ του μποροφν να ςπαταλοφν χρόνο του επεξεργαςτι (π.χ. όταν εφαρμόηεται θ επικάλυψθ) αλλά κα πρζπει να είναι ευκφνθ του ςυςτιματοσ
Κατάτμθςθ Μνιμθσ (1/10) Η κφρια λειτουργία τθσ διαχείριςθσ μνιμθσ είναι θ μεταφορά διεργαςιϊν ςτθν κφρια μνιμθ, ϊςτε να εκτελοφνται από το επεξεργαςτι ε όλα τα ςφγχρονα ςυςτιματα πολυπρογραμματιςμοφ θ λειτουργία αυτι βαςίηεται ςε ζνα ςχιμα που ονομάηεται ιδεατή μνήμη Η ιδεατι μνιμθ είναι με τθ ςειρά τθσ βαςιςμζνθ ςτθ χριςθ μιασ ι και των δφο βαςικϊν τεχνικϊν: τθσ τμθματοποίθςθσ και τθσ ςελιδοποίθςθσ Πριν από αυτζσ τισ τεχνικζσ κα αναλυκοφν απλοφςτερεσ τεχνικζσ που δεν περιλαμβάνουν τθν ζννοια τθσ ιδεατισ μνιμθσ
Κατάτμθςθ Μνιμθσ (2/10) Κατάτμθςθ ςτακεροφ μεγζκουσ: τα περιςςότερα ςχιματα για τθ διαχείριςθ μνιμθσ, μποροφμε να υποκζςουμε ότι το Λ απαςχολεί ζνα ςυγκεκριμζνο τμιμα τθσ κφριασ μνιμθσ Σο υπόλοιπο μζροσ τθσ κφριασ μνιμθσ είναι διακζςιμο για χριςθ από πολλζσ διεργαςίεσ Σο απλοφςτερο ςχιμα για τθ διαχείριςθ τθσ διακζςιμθσ μνιμθσ είναι θ κατάτμθςθ τθσ ςε περιοχζσ με ςτακερά όρια Σημείωςη: Η χριςθ κατάτμθςθσ ςτακεροφ μεγζκουσ είναι ςχεδόν άγνωςτθ ςτισ μζρεσ μασ
Κατάτμθςθ Μνιμθσ (3/10) Κατάτμθςθ ςτακεροφ μεγζκουσ : Μεγζκθ Διαμεριςμάτων: Όπωσ φαίνεται και ςτο ςχιμα, υπάρχουν 2 εναλλακτικζσ προτάςεισ για τθν κατάτμθςθ ςτακεροφ μεγζκουσ: Χριςθ ιςομεγεκϊν διαμεριςμάτων Χριςθ άνιςων διαμεριςμάτων τθν πρϊτθ περίπτωςθ κάκε διεργαςίασ, τθσ οποίασ το μζγεκοσ είναι μικρότερο ι ίςο με το μζγεκοσ του διαμερίςματοσ, μπορεί να φορτωκεί ςτο διαμζριςμα Αν όλα τα διαμερίςματα είναι πλιρθ και καμία διεργαςία δε βρίςκεται ςτθν Ζτοιμθ κατάςταςθ ι ςτθν κατάςταςθ Εκτζλεςθσ, το Λ μπορεί να εκτοπίςει μία διεργαςία από οποιοδιποτε διαμζριςμα και να φορτϊςει μια άλλθ, ϊςτε να υπάρχει δουλεία για τον επεξεργαςτι
Κατάτμθςθ Μνιμθσ (4/10) Κατάτμθςθ ςτακεροφ μεγζκουσ : Τπάρχουν δφο δυςκολίεσ ςτθ χριςθ ςτακερϊν ιςομεγεκϊν διαμεριςμάτων: Ζνα πρόγραμμα μπορεί να είναι πολφ μεγάλο, για να χωρζςει ςε ζνα διαμζριςμα Ο προγραμματιςτισ κα πρζπει να ςχεδιάςει το πρόγραμμα με τθ χριςθ τθσ επικαλφψεωσ, ζτςι ϊςτε μόνο ζνα τμιμα του προγράμματοσ να βρίςκεται ςτθν κφρια μνιμθ κάκε χρονικι ςτιγμι όταν απαιτείται μια μονάδα που δεν είναι παροφςα, το πρόγραμμα του χριςτθ πρζπει να φορτϊςει αυτι τθ μονάδα ςτο διαμζριςμα του προγράμματοσ, επικαλφπτοντασ οποιοδιποτε πρόγραμμα ι δεδομζνα υπάρχουν εκεί Ο βακμόσ χριςθσ τθσ κφριασ μνιμθσ είναι εξαιρετικά αναποτελεςματικόσ οποιοδιποτε πρόγραμμα, όςο μικρό και αν είναι, καταλαμβάνει ζνα ολόκλθρο διαμζριςμα οδθγοφμαςτε ςε εςωτερικό κατακερματιςμό
Κατάτμθςθ Μνιμθσ (5/10) Κατάτμθςθ ςτακεροφ μεγζκουσ : Και τα δφο προαναφερόμενα προβλιματα μποροφν να αμβλυνκοφν, αν και δεν επιλφονται, με τθ χριςθ διαμεριςμάτων διαφορετικοφ μεγζκουσ Αν για παράδειγμα ζχουμε: Προγράμματα μεγζκουσ μζχρι και 16 Mbytes μποροφν να εξυπθρετθκοφν χωρίσ επικάλυψθ Διαμερίςματα μικρότερα των 8 Mbytes επιτρζπουν ςε μικρότερα προγράμματα να εξυπθρετθκοφν με μικρότερο εςωτερικό κατακερματιςμό
Κατάτμθςθ Μνιμθσ (6/10) Κατάτμθςθ ςτακεροφ μεγζκουσ : Αλγόρικμοσ Σοποκζτθςθσ: Με τθ χριςθ διαμεριςμάτων ίςου μεγζκουσ θ τοποκζτθςθ διεργαςιϊν ςτθ μνιμθ είναι τετριμμζνθ Όςο υπάρχει διακζςιμο διαμζριςμα, μια διεργαςία μπορεί να φορτωκεί ςε αυτό Δεν ζχει ςθμαςία ποιο διαμζριςμα χρθςιμοποιείται, κακϊσ όλα τα διαμερίςματα ζχουν το ίδιο μζγεκοσ Αν όλα τα διαμερίςματα είναι κατειλθμμζνα με διεργαςίεσ που δεν είναι ζτοιμεσ να εκτελεςτοφν, τότε μία από αυτζσ πρζπει να εκτοπιςτεί για να αφιςει χϊρο ςε μία νζα διεργαςία Σο ποια διεργαςία κα εκτοπιςτεί είναι κζμα απόφαςθσ χρονοδρομολόγθςθσ
Κατάτμθςθ Μνιμθσ (7/10) Κατάτμθςθ ςτακεροφ μεγζκουσ : Αλγόρικμοσ Σοποκζτθςθσ: Με τθ χριςθ διαμεριςμάτων διαφορετικοφ μεγζκουσ, υπάρχουν δφο δυνατοί τρόποι για τθν ανάκεςθ διεργαςιϊν ςε διαμζριςμα Ο απλοφςτεροσ τρόποσ είναι θ ανάκεςθ κάκε διεργαςίασ ςτο μικρότερο διαμζριςμα, ςτο οποίο κα χωρά* * (Κάτι τζτοιο προχποκζτει ότι είναι γνωςτό το μζγιςτο ποςό μνιμθσ που κα απαιτιςει μια διεργαςία (γεγονόσ που δε ςυμβαίνει πάντα) αν δεν είναι γνωςτό το πόςο μεγάλθ κα γίνει μια διεργαςία, οι μόνεσ εναλλακτικζσ είναι θ χριςθ του ςχιματοσ επικάλυψθσ ι θ χριςθ τθσ ιδεατισ μνιμθσ) ε αυτι τθν περίπτωςθ απαιτείται μια ουρά χρονοδρομολόγθςθσ για κάκε διαμζριςμα, για να διατθροφνται οι διεργαςίεσ που ζχουν εκτοπιςτεί και προορίηονται για το διαμζριςμα αυτό
Κατάτμθςθ Μνιμθσ (8/10) Κατάτμθςθ ςτακεροφ μεγζκουσ : Αλγόρικμοσ Σοποκζτθςθσ : Ανάκεςθ κάκε διεργαςίασ ςτο μικρότερο διαμζριςμα, ςτο οποίο κα χωρά : Πλεονζκτθμα: Οι διεργαςίεσ ανατίκενται πάντα με τζτοιο τρόπο, ϊςτε να ελαχιςτοποιείται θ χαμζνθ μνιμθ ενόσ διαμερίςματοσ (εςωτερικόσ κατακερματιςμόσ) Μειονζκτθμα: Αν και θ τεχνικι αυτι μοιάηει βζλτιςτθ από τθν οπτικι γωνία ενόσ μεμονωμζνου διαμερίςματοσ, δεν είναι βζλτιςτθ από τθν άποψθ του ςυνολικοφ ςυςτιματοσ, κακϊσ τα μεγάλα διαμερίςματα μπορεί να παραμζνουν αχρθςιμοποίθτα, ακόμα και αν κάποια μικρότερθ διεργαςία κα μποροφςε να ανατεκεί ςε αυτό
Κατάτμθςθ Μνιμθσ (9/10) Κατάτμθςθ ςτακεροφ μεγζκουσ : Αλγόρικμοσ Σοποκζτθςθσ : Από τα προθγοφμενα ςυμπεραίνεται ότι θ προτιμότερθ λφςθ κα ιταν να χρθςιμοποιείται μια μοναδικι ουρά για όλεσ τισ διεργαςίεσ Όταν ζρκει θ ϊρα να φορτωκεί μία διεργαςία ςτθν κφρια μνιμθ, επιλζγεται το μικρότερο διακζςιμο διαμζριςμα που κα δεχτεί τθ διεργαςία τθν επιλογι, είναι πικανό να παίηουν ρόλο και άλλοι παράγοντεσ, όπωσ θ προτεραιότθτα και θ προτίμθςθ εκτοπιςμοφ μπλοκαριςμζνων διεργαςιϊν ζναντι ζτοιμων διεργαςιϊν
Κατάτμθςθ Μνιμθσ (10/10) Κατάτμθςθ ςτακεροφ μεγζκουσ : Αλγόρικμοσ Σοποκζτθςθσ : Πλεονεκτιματα διαμεριςμάτων άνιςου μεγζκουσ: Παρζχει ζνα βακμό ευελιξίασ ςτθν κατάτμθςθ ςτακεροφ μεγζκουσ Σα ςχιματα αυτά είναι ςχετικά απλά και απαιτοφν ελάχιςτο λογιςμικό λειτουργικοφ ςυςτιματοσ και επεξεργαςτικι επιβάρυνςθ Μειονεκτιματα διαμεριςμάτων άνιςου μεγζκουσ: Σο πλικοσ των διαμεριςμάτων που κακορίηονται κατά το χρόνο παραγωγισ του ςυςτιματοσ περιορίηει το πλικοσ των ενεργϊν διεργαςιϊν ςτο ςφςτθμα Επειδι τα μεγζκθ των τμθμάτων είναι προκακοριςμζνα κατά το χρόνο παραγωγισ του ςυςτιματοσ, οι μικρζσ εργαςίεσ δε κα χρθςιμοποιιςουν αποτελεςματικά το χϊρο των διαμεριςμάτων
Βιβλιογραφία Stallings, W. (2017). Λειτουργικά Συςτήματα: Αρχζσ Σχεδίαςησ. Εκδόςεισ Σηιόλα: Θεςςαλονίκθ.