Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Αδιέξοδο Ορισμοί – είδη πόρων Γράφοι εκχώρησης πόρων

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Αδιέξοδο Ορισμοί – είδη πόρων Γράφοι εκχώρησης πόρων"— Μεταγράφημα παρουσίασης:

1 Αδιέξοδο Ορισμοί – είδη πόρων Γράφοι εκχώρησης πόρων
Συνθήκες αδιεξόδου Προσεγγίσεις αδιεξόδου Πρόληψη Αποφυγή Ανίχνευση Το πρόβλημα των συνδαιτημόνων φιλοσόφων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

2 1. Αδιέξοδο (Deadlock) Η μόνιμη / επ’ αόριστον αναμονή ενός συνόλου διεργασιών που είτε συναγωνίζονται για πόρους του συστήματος είτε επικοινωνούν μεταξύ τους. Σε ένα σύστημα πολυπρογραμματισμού η συνολική απαίτηση πόρων από όλες τις συνεξελισσόμενες ενεργές διεργασίες υπερβαίνει κατά πολύ το συνολικό ποσό των διαθέσιμων πόρων. Όλα τα αδιέξοδα εμπεριέχουν τις συγκρουόμενες ανάγκες για πόρους από δύο ή περισσότερες διεργασίες Βασικός σκοπός είναι η σχεδίαση συστημάτων όπου το αδιέξοδο δεν θα μπορεί να συμβεί Γενικά δεν υπάρχει αποτελεσματική λύση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

3 Αλληλουχία γεγονότων που απαιτούνται για τη χρήση ενός πόρου:
Απαίτηση (request) Χρήση Απελευθέρωση του πόρου Αναμονή αν η απαίτηση δεν ικανοποιηθεί Η αιτούμενη διεργασία αναστέλλεται Η αιτούμενη διεργασία αποτυγχάνει εμφανίζοντας μήνυμα λάθους ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

4 Το αδιέξοδο είναι πιθανό
3 2 4 1 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

5 Αδιέξοδο ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

6 Επαναχρησιμοποιήσιμοι Πόροι
Χρησιμοποιούνται με ασφάλεια από μια διεργασία σε κάθε χρονική στιγμή και δεν εξαντλούνται από αυτή τη χρήση. Οι διεργασίες αποκτούν πόρους που θα απελευθερώσουν στη συνέχεια ώστε να χρησιμοποιηθούν από άλλες διεργασίες. Τέτοιοι πόροι είναι : επεξεργαστές, I/O κανάλια, κύρια και δευτερεύουσα μνήμη, αρχεία, βάσεις δεδομένων, και σημαφόροι. Το αδιέξοδο προκύπτει όταν μια διεργασία δεσμεύει ένα πόρο και απαιτεί έναν άλλο. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

7 Η αιτία αδιεξόδων αυτού του είδους είναι συχνά η πολύπλοκη λογική των προγραμμάτων.
Μια στρατηγική αντιμετώπισης είναι η επιβολή περιορισμών που να αφορούν τη σειρά με την οποία ζητούνται οι πόροι. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

8 3. Συνθήκες αδιεξόδου Το αδιέξοδο συμβαίνει όταν ισχύουν όλα τα παρακάτω (ΣΥΝΘΗΚΕΣ ΑΔΙΕΞΟΔΟΥ) : Αμοιβαίος αποκλεισμός: οι εκχωρούμενοι πόροι είναι στην αποκλειστική κυριότητα της διεργασίας. Κάθε πόρος εκχωρείται σε μία διεργασία ή είναι διαθέσιμος. Κατοχή και αναμονή: Η διεργασία μπορεί να δεσμεύει έναν πόρο ενώ περιμένει έναν άλλο Μη προεκχώρηση: Κανένας πόρος δεν μπορεί να αποσπασθεί δια της βίας από τη διεργασία που την κατέχει Κυκλική αναμονή: Ύπαρξη μιας κλειστής αλυσίδας διεργασιών 2 ή περισσοτέρων διεργασιών. Κάθε μία αναμένει ένα πόρο που κατέχεται από το επόμενο μέλος της αλυσίδας. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

9 Αμοιβαίος αποκλεισμός
Μόνον μια διεργασία τη φορά μπορεί να χρησιμοποιεί ένα πόρο Παράδειγμα : εκτυπωτής – μόνον ο printer daemon μπορεί να χρησιμοποιεί τον πόρο Δεν μπορούν όλες οι συσκευές να λειτουργήσουν παρόμοια ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

10 Κατοχή και αναμονή (Hold-and-wait)
Μια διεργασία μπορεί να κατέχει πόρους καθώς αναμένει την εκχώρηση κάποιων άλλων πόρων Περιπτώσεις : Μια διεργασία απαιτεί όλους τους πόρους πριν ξεκινήσει (άρα δεν θα περιμένει ποτέ στη συνέχεια) Μια διεργασία απαιτεί όλους τους πόρους όταν δεν διαθέτει κανέναν Η διεργασία μπορεί να διακόψει τη χρήση των πόρων Προβλήματα Δεν είναι γνωστές οι απαιτήσεις πόρων κατά την έναρξη της διεργασίας Παρατεταμένη στέρηση Δεσμεύονται πόροι που θα μπορούσαν να χρησιμοποιηθούν από άλλες διεργασίες ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

11 Μη προεκχώρηση (No preemption)
Αν μια διεργασία που δεσμεύει συγκεκριμένους πόρους αρνείται μια επιπλέον απαίτηση τότε η διεργασία πρέπει να αποδεσμεύσει τους αρχικούς πόρους Αν μια διεργασία απαιτήσει έναν πόρο που δεσμεύεται από κάποια άλλη διεργασία, το Λ.Σ. θα μπορεί να προεκχωρήσει τη 2η διεργασία και να απαιτήσει από την 1η να απελευθερώσει τους πόρους που κατέχει. παράδειγμα Η διακοπή μιας εγγραφής CD δημιουργεί ένα σημαντικό κόστος Προφανής λύση Ο οδηγός συσκευής του CD-R απαγορεύει μια δεύτερη λειτουργία open() ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

12 Δεν είναι μια βιώσιμη επιλογή για την πλειονότητα των πόρων
Κανένας πόρος δεν μπορεί να αποσπασθεί δια της βίας από τη διεργασία που τον κατέχει. Εφαρμόζεται σε πόρους η κατάσταση των οποίων μπορεί να αποθηκευθεί και αργότερα να γίνει επαναφορά, όπως : Καταχωρητές της CPU και χώρος μνήμης Δεν είναι μια βιώσιμη επιλογή για την πλειονότητα των πόρων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

13 Κυκλική αναμονή Πρέπει να υπάρχει μια κυκλική αλυσίδα με 2 ή περισσότερες διεργασίες Κάθε μια διεργασία περιμένει έναν πόρο που κατέχεται από άλλη διεργασία της αλυσίδας Προλαμβάνεται με τον ορισμό μια γραμμικής διάταξης των πόρων Resource A απαιτεί δεσμεύεται Process P1 Process P2 Resource B δεσμεύεται απαιτεί ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

14 Παράδειγμα – κυκλική αναμονή
P1 P2 P3 R1 R2 R3 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

15 Παράδειγμα – δεν υπάρχει κυκλική αναμονή
R1 R2 P1 P2 P3 R3 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

16 4. Προσεγγίσεις αδιεξόδου
Το αδιέξοδο είναι μια γενική κατάσταση! Δεν υπάρχει μια ενιαία στρατηγική αντιμετώπισης κάθε είδους αδιεξόδου. Απαιτεί την ανάλυση όλων των διεργασιών που χρειάζονται πόρους. ΔΕΝ μπορεί να ληφθεί μια τοπική απόφαση που θα στηρίζεται στις ανάγκες μιας διεργασίας Υπάρχουν 4 προσεγγίσεις αδιεξόδου: ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

17 Πρόληψη (Prevention) : Δεν επιτρέπεται ποτέ να συμβεί αδιέξοδο
Αποφυγή (Avoidance): Το σύστημα λαμβάνει απόφαση για να αποτρέψει μελλοντική κατάσταση αδιεξόδου Ανίχνευση (Detection) & Επαναφορά (Recovery) : έλεγχος για αδιέξοδο (περιοδικά ή σποραδικά), στη συνέχεια επαναφορά Χειροκίνητη μεσολάβηση: Ο χειριστής κάνει επανεκκίνηση του συστήματος, αν φαίνεται υπερβολικά αργό. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

18 1. Πρόληψη αδιεξόδου Σχεδιασμός του συστήματος έτσι ώστε να παραβιάζει μία από τις 4 αναγκαίες συνθήκες. Πρόληψη κατοχής και αναμονής εξ αρχής απαίτηση όλων των πόρων Αναμονή μέχρι να καταστούν διαθέσιμοι όλοι οι πόροι Πρόληψη της κυκλικής αναμονής με τον καθορισμό τον ορισμό μια γραμμικής διάταξης των τύπων των πόρων Μια διεργασία που δεσμεύει κάποιους πόρους μπορεί να απαιτήσει μόνον τύπους πόρων υψηλότερης τάξης ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

19 2. Αποφυγή αδιεξόδου Οι πόροι εκχωρούνται με τρόπο που εγγυάται ότι δεν θα βρεθεί ποτέ σημείο στο οποίο θα συμβεί αδιέξοδο Η αποφυγή του αδιεξόδου επιτρέπει τις τρεις απαραίτητες συνθήκες αλλά κάνει διακριτικές επιλογές ώστε να εξασφαλιστεί ότι δεν θα προκύψει ποτέ αδιέξοδο. Έτσι επιτρέπεται μεγαλύτερος συγχρονισμός σε σχέση με την πρόληψη. Απαιτείται γνώση των μελλοντικών απαιτήσεων της διεργασίας. Προϋποθέτει ότι το σύστημα έχει κάποια πρόσθετη και εκ των προτέρων διαθέσιμη πληροφόρηση. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

20 Λαμβάνεται δυναμικά μια απόφαση σχετικά με το αν η ικανοποίηση μιας απαίτησης , σε σχέση με την τρέχουσα εκχώρηση πόρων, θα οδηγήσει σε αδιέξοδο, που βασίζεται σε : Στο συνολικό ποσό των διαθέσιμων πόρων Στους τρέχοντες διαθέσιμους πόρους Στις απαιτήσεις πόρων εκ μέρους των διεργασιών Στην πρόσφατη εκχώρηση πόρων στις διεργασίες ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

21 Το απλούστερο και πλέον χρήσιμο μοντέλο απαιτεί ότι κάθε διεργασία δηλώνει το μέγιστο πλήθος των πόρων κάθε τύπου που είναι πιθανόν να χρειαστεί. Ο αλγόριθμος αποφυγής αδιεξόδου εξετάζει δυναμικά την κατάσταση ανάθεσης πόρων για να εξασφαλίσει ότι δεν μπορεί να προκύψει κατάσταση κυκλικής αναμονής. Η κατάσταση ανάθεσης πόρων ορίζεται από το πλήθος των διαθέσιμων και εκχωρούμενων πόρων και από το μέγιστο πλήθος των απαιτήσεων εκ μέρους των διεργασιών. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

22 Αλγόριθμος του τραπεζίτη (Dijkstra 1965)
Είναι γνωστός και ως άρνηση ανάθεσης πόρων Δεν επιτρέπει την ικανοποίηση αυξημένων απαιτήσεων για πόρους σε μια διεργασία αν αυτή η εκχώρηση πόρων μπορεί να οδηγήσει σε αδιέξοδο. Κατάσταση του συστήματος : είναι η τρέχουσα ανάθεση πόρων στις διεργασίες Ασφαλής κατάσταση : υπάρχει μια τουλάχιστον ακολουθία εκτέλεσης των διεργασιών που μπορεί να εκτελεστεί μέχρι το τέλος (δηλαδή δεν οδηγεί σε αδιέξοδο) Μη ασφαλής κατάσταση : είναι η κατάσταση που δεν είναι ασφαλής ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

23 3. Ανίχνευση αδιεξόδου Ο αλγόριθμος του τραπεζίτη είναι απαισιόδοξος : πάντοτε υποθέτει ότι μια διεργασία δεν θα απελευθερώσει τους πόρους που κατέχει μέχρι να αποκτήσει όλους τους πόρους που χρειάζεται. Συνέπειες : Μικρό ποσό παραλληλίας Πολύπλοκοι έλεγχοι για κάθε απαίτηση εκχώρησης πόρου (πολυπλοκότητα O(n2)) Οι στρατηγικές ανίχνευσης αδιεξόδου δεν οριοθετούν την πρόσβαση σε πόρους και δεν περιορίζουν τις ενέργειες των διεργασιών. Οι απαιτούμενοι πόροι εκχωρούνται στις διεργασίες, όποτε αυτό είναι δυνατό. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

24 Το πότε και πόσο συχνά καλείται ο αλγόριθμος εξαρτάται από:
Περιοδικά το Λ.Σ. εφαρμόζει έναν αλγόριθμο ανίχνευσης αδιεξόδου που δίνει τη δυνατότητα να εντοπισθεί η συνθήκη της κυκλικής αναμονής. Το πότε και πόσο συχνά καλείται ο αλγόριθμος εξαρτάται από: Πόσο συχνά συνηθίζεται να συμβαίνει αδιέξοδο Το πλήθος των διεργασιών που πρέπει να επιστρέψουν σε προηγούμενη κατάσταση Αν ο αλγόριθμος καλείται αυθαίρετα δεν εξασφαλίζεται η ανίχνευση της διεργασίας που προκαλεί το αδιέξοδο ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

25 Στην πράξη, τα περισσότερα Λ. Σ
Στην πράξη, τα περισσότερα Λ.Σ. εθελοτυφλούν και αντιμετωπίζουν το πρόβλημα με συνδυασμό τεχνικών, όπως: Διακοπή κατοχής και αναμονής: Όταν μια διεργασία δεν μπορεί να αποκτήσει έναν πόρο, τότε δεν μπορεί να ολοκληρωθεί και αποτυγχάνει Όρια (Quotas) Υψηλής απόδοσης τεχνικές προγραμματισμού: Απαίτηση χρήσης σημαφόρων με καθορισμένη προτεραιότητα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

26 Στρατηγικές όταν ανιχνευθεί αδιέξοδο
Τερματισμός διεργασίας & προεκχώρηση πόρων Διακοπή όλων των διεργασιών που περιήλθαν σε αδιέξοδο Δημιουργία αντιγράφου ασφαλείας κάθε διεργασίας που βρίσκεται σε αδιέξοδο, σε κάποιο προηγούμενο σημείο ελέγχου και επανεκκίνηση όλων των διεργασιών Το αρχικό αδιέξοδο μπορεί να ξανασυμβεί Διαδοχική διακοπή όλων των διεργασιών που βρίσκονται σε αδιέξοδο ώστε να μην υπάρχει πλέον αδιέξοδο Διαδοχική προεκχώρηση πόρων έως ότου δεν θα υπάρχει αδιέξοδο ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

27 Κριτήρια επιλογής των διεργασιών που βρίσκονται σε αδιέξοδο
Επιλέγεται η διεργασία που έχει : καταναλώσει το μικρότερο ποσό χρόνου επεξεργασίας μέχρι την τρέχουσα στιγμή παράγει το μικρότερο πλήθος γραμμών εξόδου ποσό μέχρι την τρέχουσα στιγμή τον μεγαλύτερο εκτιμώμενο χρόνο Το μικρότερο πλήθος πόρων που της έχουν εκχωρηθεί Τη μικρότερη προτεραιότητα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

28 Συνδυασμένη προσέγγιση ανίχνευσης αδιεξόδου
Ο συνδυασμός των τριών προσεγγίσεων Πρόληψης, Αποφυγής, Ανίχνευσης επιτρέπει τη χρήση της βέλτιστης προσέγγισης για κάθε πόρο του συστήματος Μια κατά το δυνατόν βέλτιστη προσέγγιση περιλαμβάνει: Διαμοίραση των πόρων σε ιεραρχικά διατεταγμένες κλάσεις Χρήση των πλέον κατάλληλων τεχνικών για τη διαχείριση αδιεξόδων μέσα σε κάθε κλάση. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

29 5. Το πρόβλημα των συνδαιτημόνων φιλοσόφων
Πέντε φιλόσοφοι κάθονται γύρω από ένα κυκλικό τραπέζι. Κάθε φιλόσοφος καταναλώνει το χρόνο του διαδοχικά σκεπτόμενος και τρώγοντας. Στο κέντρο του τραπεζιού υπάρχει ένα μεγάλο πιάτο με spaghetti. Κάθε φιλόσοφος χρειάζεται δύο πηρούνια (forks) για να φάει λίγο spaghetti. Υπάρχει ένα πηρούνι ανάμεσα σε κάθε ζεύγος φιλοσόφων και όλοι συμφωνούν ότι θα χρησιμοποιούν μόνον τα πηρούνια που βρίσκονται δεξιά και αριστερά από τον καθένα. Κάθε φιλόσοφος είναι μια διεργασία και κάθε πηρούνι είναι ένας διαμοιραζόμενος πόρος με ενέργειες δέσμευσης και απελευθέρωσης. Αν ένας φιλόσοφος πεινάσει, πρέπει πρώτα να πάρει τα πηρούνια δεξιά και αριστερά του δεξιό για να μπορέσει να ξεκινήσει να τρώει. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

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

31 Μπορεί να συμβεί αδιέξοδο…
Η προφανής λύση think for a while Μπορεί να συμβεί αδιέξοδο… pick up left fork pick up right fork eat for a while return left fork Here is a trivial solution to the problem. As we’ve already got used to in this course, the trivial solution does not work… The most serious problem of this program is that deadlock could occur! What if every philosopher sits down about the same time and picks up his left fork as shown in the following figure? In this case, all forks are locked and none of the philosophers can successfully lock his right fork. As a result, we have a circular waiting (i.e., every philosopher waits for his right fork that is currently being locked by his right neighbour), and hence a deadlock occurs. return right fork ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

32 Η παρατεταμένη στέρηση είναι πρόβλημα…
think for a while pick up left fork pick up right fork eat for a while return left fork return right fork Η παρατεταμένη στέρηση είναι πρόβλημα… Another scenario: imagine that two philosophers are fast thinkers and fast eaters. They think fast and get hungry fast. Then, they sit down in opposite chairs. Because they are so fast, it is possible that they can lock their forks and eat. After finish eating and before their neighbours can lock the forks and eat, they come back again and lock the chopsticks and eat. In this case, the other three philosophers, even though they have been sitting for a long time, they have no chance to eat. This is a starvation. Note that it is not a deadlock because there is no circular waiting, and every one has a chance to eat! ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

33 Δεν υπάρχει συμμετρική λύση Λύσεις
Προσθήκη ενός ακόμη πηρουνιού Μέγιστος αριθμός 4 φιλοσόφων στο τραπέζι (κυκλική αναμονή) Να εκτελείται διαφορετική αλληλουχία ενεργειών για τους φιλοσόφους με άρτιο και περιττό αύξοντα αριθμό δηλαδή δημιουργία δύο ομάδων φιλοσόφων. Η μία ομάδα (περιττός α/α) θα αποκτά πρώτα το δεξιό και μετά το αριστερό πηρούνι και η άλλη ομάδα (άρτιος α/α) πρώτα το αριστερό και μετά το δεξιό πηρούνι. Ένας φιλόσοφος επιτρέπεται να αποκτήσει τα πηρούνια μόνον όταν και τα δύο είναι διαθέσιμα (κρίσιμο τμήμα) - (κατοχή και αναμονή) Σχεδιασμός του συστήματος έτσι ώστε ένας φιλόσοφος να «κλέψει» ένα πηρούνι που δεν είναι γειτονικό του. Αλγόριθμος Lehmann-Rabin (non deterministic) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

34 7. Διαχείριση κύριας μνήμης
Εισαγωγή Διαχειριστής μνήμης Ιεραρχία μνήμης Στρατηγικές διαχείρισης μνήμης Συνεχόμενη και μη συνεχόμενη εκχώρηση μνήμης Βασική διαχείριση μνήμης Μνήμη και πολυπρογραμματισμός Τμηματοποίηση σταθερού μεγέθους Τμηματοποίηση μεταβλητού μεγέθους Δυναμική τμηματοποίηση Αλγόριθμοι τοποθέτησης δυναμικής τμηματοποίησης Σύστημα ζευγών ή φίλων Εναλλαγή ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

35 1. Εισαγωγή Η διαχείριση μνήμης είναι η λειτουργία της υποδιαίρεσης της μνήμης από το λειτουργικό σύστημα με δυναμικό τρόπο ώστε να εξυπηρετούνται όσο το δυνατόν περισσότερες διεργασίες. Είναι απαραίτητη διότι : Η μνήμη είναι ένας ανεπαρκής πόρος και είναι απαραίτητη η αποτελεσματική χρήση της Παρέχει ευκολία στον προγραμματισμό Ενισχύει τον πολυπρογραμματισμό Παρέχει ασφάλεια και προστασία στις εκτελούμενες διεργασίες Οι προγραμματιστές επιζητούν την ελαχιστοποίηση του χρόνου προσπέλασης και τη μεγιστοποίηση του μεγέθους της μνήμης για την εκτέλεση των προγραμμάτων (ωστόσο η μνήμη για την εκτέλεση προγραμμάτων πρέπει να είναι cost-effective). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

36 2. Διαχειριστής μνήμης Ο διαχειριστής μνήμης είναι ένα συστατικό του Λ.Σ. που ασχολείται με την οργάνωση και τις στρατηγικές διαχείρισης της μνήμης. Χαρακτηριστικά των διαχειριστών μνήμης : Εκχωρούν την πρωτεύουσα μνήμη σε διεργασίες Αντιστοιχούν το χώρο διευθύνσεων της διεργασίας στην κύρια μνήμη Ελαχιστοποιούν το χρόνο προσπέλασης χρησιμοποιώντας cost-effective τεχνικές, στατικές ή δυναμικές. Αλληλεπιδρούν με ειδικό hardware για τη διαχείριση της μνήμης (MMU) για να βελτιώσουν την απόδοση. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

37 Primary Secondary 3. Ιεραρχία Μνήμης (Executable) CPU Registers
L1 Cache Memory L2 Cache Memory “Main” Memory Larger storage Rotating Magnetic Memory Faster access Secondary L1 (level 1) cache: usually on the CPU chip L2 & L3 cache: off-chip, made of SRAM Optical Memory Sequentially Accessed Memory ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

38 4. Στρατηγικές διαχείρισης μνήμης
Σχεδιάζονται έτσι ώστε να είναι εφικτή η βέλτιστη δυνατή χρήση της κύριας μνήμης και διακρίνονται σε : Στρατηγικές προσκόμισης Καθορίζουν το σημείο όπου θα τοποθετηθεί το επόμενο τμήμα προγράμματος ή δεδομένων, καθώς μετακινείται από τη δευτερεύουσα μνήμη. Στρατηγικές τοποθέτησης Καθορίζουν το σημείο της κυρίας μνήμης όπου το σύστημα θα μπορούσε να τοποθετήσει τμήματα δεδομένων. Στρατηγικές επανατοποθέτησης Καθορίζουν ποιο τμήμα θα αφαιρεθεί από την κύρια μνήμη στις περιπτώσεις όπου η κύρια μνήμη είναι αρκετά πλήρης ώστε να παρέχει χώρο σε ένα νέο πρόγραμμα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

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

40 6. Βασική διαχείριση μνήμης
Μονοπρογραμματισμός Ένας χρήστης μονοπωλεί τη χρήση του συστήματος και όλοι οι πόροι είναι αφιερωμένοι σ’ αυτόν Επικαλύψεις (overlays) Τεχνική που επιτρέπει σε ένα σύστημα να εκτελεί προγράμματα που είναι μεγαλύτερα από την κύρια μνήμη. Ο προγραμματιστής διαιρεί το πρόγραμμα σε λογικές ενότητες. Όταν το πρόγραμμα δεν χρειάζεται μνήμη για ένα τμήμα, το σύστημα μπορεί να αντικαταστήσει όλη ή μέρη της κύριας μνήμης για να καλύψει μια ανάγκη (δηλ. να φορτώσει μια άλλη ενότητα) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

41 7. Μνήμη και πολυπρογραμματισμός
Η χρήση του επεξεργαστή από μία διεργασία διακόπτεται συχνά, λόγω της ανάγκης για λειτουργίες Ι/Ο που είναι υπερβολικά αργές συγκρινόμενες με την ταχύτητα της CPU. Η αύξηση της χρήσης της CPU επιτυγχάνεται με τα συστήματα πολυπρογραμματισμού, όπου αρκετοί χρήστες ανταγωνίζονται συγχρόνως για τους πόρους του συστήματος. Έτσι αρκετές διεργασίες πρέπει να βρίσκονται στην κύρια μνήμη την ίδια στιγμή, ώστε αν κάποια υλοποιεί λειτουργίες Ι/Ο κάποια άλλη να χρησιμοποιεί την CPU ώστε να αυξάνεται το ποσοστό χρήσης της CPU και η απόδοση (throughput) του συστήματος. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

42 Πόσα προγράμματα είναι αρκετά;
Για τον καθορισμό του πλήθους των διεργασιών που μπορούν να υπάρχουν συγχρόνως στην κύρια μνήμη πρέπει να ληφθούν υπόψη και να εξισορροπηθούν τα εξής : Περισσότερες διεργασίες χρησιμοποιούν καλύτερα την CPU αλλά απαιτείται καλύτερη διαχείριση και προστασία της μνήμης Λιγότερες διεργασίες χρησιμοποιούν λιγότερη μνήμη (φθηνότερα!) Περισσότερη αναμονή για I/O σημαίνει μικρότερη χρήση επεξεργαστή ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

43 8. Τμηματοποίηση σταθερού μεγέθους (Fixed Partitioning) –ίσα τμήματα
Ίσου μεγέθους τμήματα (equal-size partitions) Κάθε διεργασία με μέγεθος μικρότερο ή ίσο με το μέγεθος του τμήματος μπορεί να φορτωθεί στο διαθέσιμο τμήμα Αν όλα τα τμήματα είναι γεμάτα, το Λ.Σ. μπορεί να κάνει εναλλαγή μιας διεργασίας Ένα πρόγραμμα είναι πιθανό να μη χωρά σε ένα τμήμα. Ο προγραμματιστής πρέπει να σχεδιάσει το πρόγραμμα με επικαλύψεις Με τη μέθοδο αυτή η χρησιμοποίηση της κύριας μνήμης είναι εξαιρετικά αναποτελεσματική (inefficient). Κάθε πρόγραμμα, όσο μικρό και να είναι, καταλαμβάνει ένα ολόκληρο τμήμα. Ο ανεκμετάλλευτος χώρος εσωτερικά σε ένα τμήμα αναφέρεται ως εσωτερικός κατακερματισμός (internal fragmentation). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

44 Εσωτερικός κατακερματισμός – μέρος του τμήματος που δεν χρησιμοποιείται
Operating System Operating System 8 M 8 M 8 M 8 M process 1 8 M Unused 8 M 8 M 8 M 8 M ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

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

46 9. Τμηματοποίηση σταθερού μεγέθους – άνισα τμήματα
9. Τμηματοποίηση σταθερού μεγέθους – άνισα τμήματα Μειώνει τα προβλήματα της τμηματοποίησης ίσων τμημάτων Πλεονεκτήματα Δεν υπάρχει εσωτερικός κατακερματισμός. Περισσότερο αποτελεσματική χρήση της κύριας μνήμης, σε σχέση με τη μέθοδο των ίσων τμημάτων Μειονεκτήματα Ανεπαρκής χρήση του επεξεργαστή λόγω της ανάγκης για συμπίεση για την αντιμετώπιση του εξωτερικού κατακερματισμού (τμήματα της μνήμης που δεν φαίνονται στο χρήστη και δεν χρησιμοποιούνται λόγω μεγέθους). Operating System 8 M 2 M process 1 4 M 6 M 8 M 8 M 12 M ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

47 Κατακερματισμός ΕΣΩΤΕΡΙΚΟΣ : είναι η μνήμη που δεν χρησιμοποιείται (δαπανάται) και είναι ορατή μόνον από τη διεργασία που ζητά μνήμη. Συμβαίνει επειδή η ποσότητα μνήμης που θα εκχωρηθεί στη διεργασία πρέπει να είναι μεγαλύτερη ή ίση από την αιτούμενη ποσότητα. ΕΞΩΤΕΡΙΚΟΣ : είναι η μνήμη που δεν χρησιμοποιείται (δαπανάται) και είναι ορατή από το σύστημα εκτός των διεργασιών που απαιτούν μνήμη. Συμβαίνει επειδή όλες οι απαιτήσεις μνήμης δεν είναι του ίδιου μεγέθους. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

48 Αλγόριθμοι τοποθέτησης
Ίσου μεγέθους τμήματα Επειδή όλα τα τμήματα είναι ίσου μεγέθους, δεν έχει σημασία ποιο χρησιμοποιείται Αν είναι όλα κατειλημμένα γίνεται εναλλαγή Διαφορετικού μεγέθους τμήματα Ουρά για κάθε τμήμα Κάθε διεργασία μπορεί να αντιστοιχηθεί στο μικρότερο τμήμα στο οποίο χωρά. Οι διεργασίες αντιστοιχούνται με τρόπο ώστε να ελαχιστοποιείται η σπατάλη μνήμης μέσα σε ένα τμήμα (εσωτερικός κατακερματισμός) Μια μοναδική ουρά για όλες τις διεργασίες Όταν η διεργασία πρέπει να φορτωθεί στη μνήμη επιλέγεται το μικρότερο διαθέσιμο τμήμα καλύτερη ικανότητα για τη βελτιστοποίηση χρήσης της CPU ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

49 900K Partition 4 700K Partition 3 600K Partition 2 500K Partition 1
OS Partition 1 Partition 2 Partition 3 Partition 4 100K 500K 600K 700K 900K ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

50 10. Δυναμική τμηματοποίηση
Τμήματα μεταβλητού μεγέθους και πλήθους Μια διεργασία αντιστοιχείται ακριβώς στην ποσότητα μνήμης που απαιτείται. Τελικά υπάρχουν κενά στη μνήμη. Αυτός είναι ο εξωτερικός κατακερματισμός (external fragmentation) Πρέπει να χρησιμοποιηθεί συμπίεση (compaction) που θα μετατοπίσει τις διεργασίες έτσι ώστε να είναι συνεχόμενες και όλη η ελεύθερη μνήμη να αποτελεί μια ενότητα (block). Η συμπίεση σπαταλά το χρόνο της CPU και προϋποθέτει τη δυνατότητα δυναμικής μετατόπισης (μεταφορά ενός προγράμματος σε άλλη περιοχή μνήμης χωρίς να ακυρώνονται οι αναφορές της μνήμης) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

51 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

52 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

53 11. Αλγόριθμοι τοποθέτησης δυναμικής τμηματοποίησης
11. Αλγόριθμοι τοποθέτησης δυναμικής τμηματοποίησης Το Λ.Σ. πρέπει να αποφασίσει ποιο ελεύθερο τμήμα της μνήμης θα εκχωρήσει σε μια διεργασία Αλγόριθμος καλύτερης τοποθέτησης (best-fit algorithm) Επιλογή του block που είναι πλησιέστερα στο μέγεθος που απαιτείται Έχει τη χειρότερη απόδοση Μια και βρίσκει το μικρότερο block για τη διεργασία, η κύρια μνήμη γεμίζει γρήγορα από blocks που είναι πολύ μικρά και η συμπίεση πραγματοποιείται πιο συχνά ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

54 Αλγόριθμος πρώτης τοποθέτησης (First-fit algorithm)
Ξεκινά και σαρώνει τη μνήμη από την αρχή και επιλέγει το πρώτο διαθέσιμο μπλοκ που είναι αρκετά μεγάλο. Ταχύτερος Πολλές διεργασίες φορτώνονται στο εμπρός τμήμα της μνήμης που θα πρέπει να εξετάζεται κάθε φορά που γίνεται προσπάθεια για την εύρεση ενός ελεύθερου block May have many process loaded in the front end of memory that must be searched over when trying to find a free block ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

55 Αλγόριθμος επόμενης τοποθέτησης (next-fit algorithm)
Ξεκινά να σαρώνει τη μνήμη από την τελευταία τοποθέτηση και επιλέγει το επόμενο αρκετά μεγάλο διαθέσιμο μπλοκ. εκχωρεί συχνά ένα block μνήμης που βρίσκεται στο τέλος της μνήμης, όπου βρίσκεται το μεγαλύτερο block Το μεγαλύτερο block μνήμης διασπάται σε μικρότερα blocks Η συμπίεση απαιτείται για να αποκτηθεί ένα μεγάλο block στο τέλος της μνήμης. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

56 Εκχώρηση block 16K 8K 8K 12K First Fit 12K 22K Last allocated
Best Fit 6K 18K 2K 8K 8K 6K 6K Allocated block 14K Free block 14K Next Fit 36K 20K Before ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06 After

57 13. Εναλλαγή (swapping) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

58 Εναλλαγή (Swapping) Η εκχώρηση μνήμης αλλάζει καθώς
B C B C B C D C D C D A A B A OS OS OS OS OS OS OS Η εκχώρηση μνήμης αλλάζει καθώς Έρχονται νέες διεργασίες στη μνήμη Διεργασίες εγκαταλείπουν τη μνήμη Εναλλάσσονται στο δίσκο Ολοκληρώνουν την εκτέλεσή τους Οι γκρι περιοχές είναι μνήμη που δεν χρησιμοποιείται ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

59 Εναλλαγή : αφήνοντας χώρο για ανάπτυξη
Ανάγκη για τη δυνατότητα ανάπτυξης των προγραμμάτων Εκχώρηση περισσότερης μνήμης για δεδομένα Μεγαλύτερο stack Εκχώρηση μεγαλύτερης ποσότητας μνήμης από όση απαιτείται καταρχήν αναποτελεσματική: σπατάλη μνήμης που δεν χρησιμοποιείται Τι θα συμβεί αν η διεργασία απαιτεί υπερβολική ποσότητα μνήμης; Stack Process B Data Code Stack Process A Data Code OS ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

60 Περιορισμοί της εναλλαγής
Προβλήματα με την εναλλαγή Η διεργασία πρέπει να χωρά στη φυσική μνήμη (αδύνατη η εκτέλεση μεγαλύτερων διεργασιών) Η μνήμη κατακερματίζεται (fragmented) Εξωτερικός κατακερματισμός: πλήθος μικρών ελεύθερων περιοχών Απαιτείται συμπίεση για την επανασυναρμολόγηση μεγαλύτερων ελεύθερων περιοχών Οι διεργασίες μπορούν να βρίσκονται και στη μνήμη και στο δίσκο Οι επικαλύψεις επιλύουν το πρώτο πρόβλημα Κατατέμνουν τη διεργασία στη διάρκεια του χρόνου (κυρίως τα δεδομένα) Δεν επιλύουν το πρόβλημα του κατακερματισμού ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

61 Άσκηση - 24 Υποθέστε ότι έχετε ελεύθερη μνήμη σε τμήματα μεγέθους 100KB, 500KB, 200KB, 300KB, and 600KB (με αυτή τη σειρά) και υπάρχουν κατά σειρά απαιτήσεις μνήμης για 212KB, 417KB, 112KB, and 426KB. Δείξτε πως ο αλγόριθμος πρώτης τοποθέτησης θα διευθετήσει τις απαιτήσεις στην ελεύθερη μνήμη. Υπολογίστε το ελεύθερο τμήμα μνήμης μετά από κάθε άφιξη. Δείξτε πως ο αλγόριθμος βέλτιστης τοποθέτησης θα διευθετήσει τις ίδιες απαιτήσεις στην ελεύθερη μνήμη. Υπολογίστε το ελεύθερο τμήμα μνήμης μετά από κάθε άφιξη. Δείξτε πως ο αλγόριθμος επόμενης τοποθέτησης θα διευθετήσει τις απαιτήσεις στην ελεύθερη μνήμη (last allocated block 200KB). Υπολογίστε το ελεύθερο τμήμα μνήμης μετά από κάθε άφιξη. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

62 Άσκηση - 25 Ένα σύστημα τοποθετεί διεργασίες στη μνήμη χρησιμοποιώντας δυναμική πολιτική τοποθέτησης. Κατά την πλέον πρόσφατη χρονική στιγμή έγινε φόρτωση μιας διεργασίας που χρειαζόταν 12KB μνήμης και η εικόνα μνήμης του συστήματος διαμορφώθηκε ως εξής : Οι σκιασμένες περιοχές δηλώνουν αχρησιμοποίητα τμήματα μνήμης, οι λευκές τα κενά τμήματα ενώ η περιοχή με μαύρο χρώμα τη θέση όπου έγινε η τελευταία τοποθέτηση. Οι αριθμοί δηλώνουν το μέγεθος σε KB. Να σχεδιάσετε την εικόνα μνήμης μετά την τοποθέτηση μιας νέας διεργασίας που χρειάζεται 22KB μνήμης σύμφωνα με τους αλγορίθμους : first-fit, best-fit, next-fit. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

63 Άσκηση - 26     Ο διαχειριστής μνήμης ενός συστήματος που χρησιμοποιεί στρατηγική τμημάτων μεταβλητού μεγέθους διαθέτει ελεύθερα τμήματα μεγέθους 600, 400, 1000, 2200, 1600, 1050 bytes. Θεωρείστε κατά σειρά τις παρακάτω διαδοχικές απαιτήσεις: ποιο τμήμα θα επιλεγεί για απαίτηση 1603 bytes με τη μέθοδο best-fit; ποιο τμήμα θα επιλεγεί για απαίτηση 949 bytes με τη μέθοδο best-fit; ποιο τμήμα θα επιλεγεί για απαίτηση 963 bytes με τη μέθοδο first-fit; ποιο τμήμα θα επιλεγεί για απαίτηση 349 bytes με τη μέθοδο first-fit? Υποθέστε ότι η λίστα ελεύθερων τμημάτων διατάσσεται κατά αύξουσα σειρά μεγέθους των τμημάτων που αναφέρονται στην αρχή της άσκησης. Ποιο τμήμα θα επιλεγεί για απαίτηση 1603 bytes με τη μέθοδο first-fit; ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

64 8. Ιδεατή Μνήμη – Οργάνωση
Εισαγωγή Σύνδεση και Φόρτωση Ιδεατές και πραγματικές διευθύνσεις Λογικές, σχετικές και φυσικές διευθύνσεις Μετάφραση διεύθυνσης Λογική οργάνωση Τμηματοποίηση ιδεατής μνήμης Σελιδοποίηση Πίνακες σελίδων Κατάτμηση Πίνακες τμημάτων Κατάτμηση με σελιδοποίηση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

65 1. Εισαγωγή Η κύρια μνήμη είναι, μετά από το χρόνο χρήσης της CPU, ο δεύτερος πιο σημαντικός πόρος σε ένα υπολογιστικό σύστημα. Ακόμη και με σχετικά μεγάλο μέγεθος η ποσότητα της διαθέσιμης κύριας μνήμης συχνά δεν είναι ικανοποιητική. Η λήψη πληροφοριών από τον σκληρό δίσκο αντί της κύριας μνήμης καθυστερεί υπέρμετρα το σύστημα 60 ns χρόνος προσπέλασης της κύριας μνήμης 10 ms (= 10,000,000 ns) μέσος χρόνος προσπέλασης των σκληρών δίσκων Πολλές διεργασίες πρέπει να συνυπάρχουν στη μνήμη ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

66 Η διαχείριση μνήμης επιτυγχάνεται μέσω μιας πολύπλοκης σχέσης μεταξύ του υλικού μέρους του επεξεργαστή και του λογισμικού του Λ.Σ. Οι βασικές τεχνικές διαχείρισης μνήμης ανταγωνίζονται για τη δέσμευση περιορισμένου χώρου στην κύρια μνήμη. Η λύση της μεγαλύτερης κύριας μνήμης είναι συνήθως απαγορευτικά δαπανηρή. Η δεύτερη λύση είναι η δημιουργία της ψευδαίσθησης ότι υπάρχει περισσότερη μνήμη από όση είναι εγκατεστημένη και αποτελεί τη βασική ιδέα της ιδεατής μνήμης (virtual memory). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

67 Αρχιτεκτονική συστημάτων
CPU Main Memory Control Unit I/O Devices Registers Controllers Arithmetic Logic Unit (ALU) System Bus ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06 [David Jones]

68 Μνήμη και CPU Main Memory CPU Bus Control Unit Registers MMU
Arithmetic Logic Unit (ALU) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

69 2. Σύνδεση και Φόρτωση Το πρώτο βήμα κατά τη δημιουργία μιας ενεργής διεργασίας είναι η φόρτωση ενός προγράμματος στην κύρια μνήμη και η δημιουργία της εικόνας διεργασίας. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

70 Η εφαρμογή αποτελείται από έναν αριθμό μεταφρασμένων και μεταγλωττισμένων ενοτήτων (modules) με τη μορφή κώδικα αντικειμένου (object code). Αυτές οι ενότητες συνδέονται για την επίλυση οποιασδήποτε αναφοράς μεταξύ τους ενώ συγχρόνως πραγματοποιούνται αναφορές και σε ρουτίνες βιβλιοθήκης. Οι ρουτίνες βιβλιοθήκης μπορούν να ενσωματωθούν στο πρόγραμμα ή να αναφέρονται ως διαμοιραζόμενος κώδικας που πρέπει να παρέχεται από το Λ.Σ. κατά τη στιγμή της εκτέλεσης. Η μονάδα σύνδεσης (linker) παίρνει ως είσοδο μια συλλογή από modules αντικειμένων και παράγει ένα module φόρτωσης που αποτελείται από ένα ολοκληρωμένο σύνολο από προγράμματα και δεδομένα που θα περάσουν στον φορτωτή. Σε κάθε module αντικειμένου μπορούν να υπάρχουν αναφορές διεύθυνσης σε θέσεις άλλων modules. Η μονάδα φόρτωσης τοποθετεί το module που πρόκειται να φορτωθεί στην κύρια μνήμη. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

71 Δόμηση του χώρου διευθύνσεων
Source code Library code Other objects Secondary memory C Link Edit Primary memory Reloc Object code Compile time: μεταγλώττιση Link time: σύνδεση στοιχείων Loader Load time: Εκχώρηση πρωτεύουσας μνήμης Διευθέτηση διευθύνσεων στο χώρο διευθύνσεων Αντιγραφή του χώρου διευθύνσεων από τη δευτερεύουσα στην πρωτεύουσα μνήμη Process address space ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

72 Φόρτωση με μετατόπιση (relocation)
Απόλυτη φόρτωση Το υπό φόρτωση module φορτώνεται πάντοτε στην ίδια θέση στην κύρια μνήμη. Οι αναφορές διεύθυνσης θα πρέπει να είναι απόλυτες διευθύνσεις της κύριας μνήμης. Φόρτωση με μετατόπιση (relocation) Το υπό φόρτωση module μπορεί να τοποθετηθεί οπουδήποτε στην κύρια μνήμη. Ο interpreter ή ο compiler παράγουν διευθύνσεις σχετικές με ένα γνωστό σημείο που είναι συνήθως η αρχή του προγράμματος. Δυναμική εκτέλεση φόρτωσης Το υπό φόρτωση module φορτώνεται στην κύρια μνήμη με όλες τις αναφορές μνήμης σε σχετική μορφή. Οι απόλυτες διευθύνσεις υπολογίζονται κατά τη στιγμή εκτέλεσης μιας εντολής. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

73 Στατική σύνδεση (static linking)
Στρατηγικές σύνδεσης Στατική σύνδεση (static linking) Τα object files και οι βιβλιοθήκες συνδυάζονται σε ένα μοναδικό εκτελέσιμο αρχείο κατά τη διάρκεια της σύνδεσης Δυναμική σύνδεση (dynamic linking) Ta οbject files παραμένουν αποσυνδεδεμένα Ο κώδικας αντιστοιχείται και συνδέεται κατά τον χρόνο εκτέλεσης. Παράδειγμα αποτελούν οι βιβλιοθήκες συστήματος (system libraries). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

74 3. Ιδεατές και πραγματικές διευθύνσεις
Τα συστήματα ιδεατής μνήμης καλύπτουν τις ανάγκες των διεργασιών μέσω της ψευδαίσθησης ότι έχουν στη διάθεσή τους περισσότερη κύρια μνήμη από όση διαθέτει το υπολογιστικό σύστημα. Έτσι υπάρχουν δύο τύποι διευθύνσεων στα συστήματα ιδεατής μνήμης : Αυτές στις οποίες αναφέρονται οι διεργασίες (ιδεατές ή εικονικές διευθύνσεις – virtual addresses) Αυτές που είναι διαθέσιμες στην κύρια μνήμη (φυσικές ή πραγματικές διευθύνσεις – real addresses) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

75 Εικονική και φυσική μνήμη
virtual memory (data names) physical memory (data locations) translation virtual address physical address M-1 N-1 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

76 4. Λογικές, σχετικές και φυσικές διευθύνσεις
Μια λογική διεύθυνση είναι μια αναφορά σε μια θέση μνήμης ανεξάρτητα από τη φυσική δομή και οργάνωση της μνήμης καθώς και από την τρέχουσα εκχώρηση των δεδομένων στη μνήμη. Οι compilers παράγουν κώδικα στον οποίο όλες οι αναφορές μνήμης είναι λογικές διευθύνσεις. Οι λογικές διευθύνσεις παράγονται από τον επεξεργαστή. Πριν πραγματοποιηθεί η πρόσβαση στην κύρια μνήμη γίνεται μετάφραση στη φυσική διεύθυνση Μια σχετική διεύθυνση είναι ένα παράδειγμα λογικής διεύθυνσης στο οποίο η διεύθυνση εκφράζεται ως μια θέση σχετική με ένα γνωστό σημείο του προγράμματος (π.χ. η αρχή) Μια φυσική ή απόλυτη διεύθυνση είναι μια φυσική θέση στην κύρια μνήμη. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

77 5. Μετάφραση διεύθυνσης Οι σχετικές διευθύνσεις είναι ο πλέον συνηθισμένος τύπος λογικών διευθύνσεων που χρησιμοποιούνται στα εκτελέσιμα αρχεία (modules προγραμματισμού). Αυτά φορτώνονται στην κύρια μνήμη με όλες τις αναφορές προς τη μνήμη σε σχετική μορφή. Οι φυσικές διευθύνσεις «υπολογίζονται» καθώς εκτελούνται οι εντολές. Για να υπάρχει επαρκής απόδοση η μετάφραση από σχετικές σε φυσικές διευθύνσεις γίνεται από το υλικό. Τα προγράμματα των χρηστών διαχειρίζονται μόνον λογικές διευθύνσεις και δεν «βλέπουν» ποτέ τις πραγματικές φυσικές διευθύνσεις. Η μονάδα διαχείρισης μνήμης (Memory Management Unit - MMU) είναι μια συσκευή που αντιστοιχεί τις εικονικές σε φυσικές διευθύνσεις. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

78 Η θέση και η λειτουργία της MMU
CPU chip CPU Memory Disk controller MMU Virtual addresses from CPU to MMU Physical addresses on bus, in memory ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

79 Όταν μια διεργασία περιέρχεται σε κατάσταση εκτέλεσης ένας καταχωρητής βάσης της CPU (base register) φορτώνεται με τη φυσική διεύθυνση εκκίνησης της διεργασίας. Ένας καταχωρητής ορίου (bound or limit register) φορτώνεται με τη φυσική διεύθυνση τερματισμού της διεργασίας. Όταν προκύψει μια σχετική διεύθυνση, αυτή προστίθεται στο περιεχόμενο του καταχωρητή βάσης για να αποκτηθεί η φυσική διεύθυνση που συγκρίνεται με το περιεχόμενο του καταχωρητή ορίου. Αν η διεύθυνση είναι εκτός ορίων, δημιουργείται μια διακοπή (interrupt) προς το Λ.Σ. Αυτό παρέχει προστασία υλικού: κάθε διεργασία μπορεί να έχει πρόσβαση μόνον στη δική της εικόνα (process image). Συμπέρασμα : Το υλικό μέρος του επεξεργαστή και το λογισμικό του Λ.Σ. μεταφράζουν τις αναφορές στη μνήμη που περιέχει ο κώδικας του προγράμματος σε πραγματικές διευθύνσεις της φυσικής μνήμης. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

80 Υποστήριξη υλικού μέρους για τη μετατόπιση
Relative address Process Control Block Base Register Adder Program Absolute address Bounds Register Comparator Data Interrupt to operating system Stack Process image in main memory ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

81 Καταχωρητές βάσης και ορίου
Process partition OS 0xFFFF Limit Base 0x2000 0x9000 λογική διεύθυνση: 0x1204 φυσική διεύθυνση: 0x1204+0x9000 = 0xa204 < 0x2000  δεν υπάρχει σφάλμα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

82 6. Λογική οργάνωση Η κύρια μνήμη σε ένα υπολογιστικό σύστημα οργανώνεται ως ένας γραμμικός, μονοδιάστατος χώρος διευθύνσεων Η δευτερεύουσα μνήμη, σε φυσικό επίπεδο, οργανώνεται με παρόμοιο τρόπο. Τα προγράμματα οργανώνονται και γράφονται σε ενότητες (modules). Οι ενότητες αυτές γράφονται και μεταφράζονται ανεξάρτητα. Στις ενότητες δίνονται διαφορετικοί βαθμοί προστασίας (read-only, execute-only) Οι ενότητες μπορούν να διαμοιράζονται μεταξύ των διεργασιών ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

83 Η μνήμη για τον πολυπρογραμματισμό χρειάζεται
Ο πολυπρογραμματισμός είναι απαραίτητος για την αποτελεσματικότητα των συστημάτων. Η μνήμη για τον πολυπρογραμματισμό χρειάζεται Επανατοποθέτηση (Relocation) Προστασία (Protection) Το ΛΣ δεν μπορεί να είναι βέβαιο σε ποιο τμήμα της μνήμης θα φορτωθεί ένα πρόγραμμα Μεταβλητές και διαδικασίες δεν μπορούν να χρησιμοποιούν απόλυτες διευθύνσεις μνήμης ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

84 Το ΛΣ πρέπει να διατηρεί ξεχωριστά τη μνήμη για κάθε διεργασία
Προστασία μιας διεργασίας από άλλες που θέλουν να διαβάσουν ή να γράψουν στη δική της περιοχή μνήμης Προστασία μιας διεργασίας από την τροποποίηση της δικής της μνήμης με ανεπιθύμητο τρόπο (πχ γράφοντας στο τμήμα κώδικα) Το Λ.Σ. πρέπει να επιτρέπει σε πολλές διεργασίες να έχουν πρόσβαση στην ίδια περιοχή της μνήμης. Είναι προτιμότερο να επιτρέπεται η πρόσβαση σε μια διεργασία (σε ένα άτομο) στο ίδιο αντίγραφο του προγράμματος από το να υπάρχει ένα αντίγραφο για κάθε μια διεργασία. Για να ικανοποιηθούν αυτές τις ανάγκες χρησιμοποιείται ως εργαλείο ή τμηματοποίηση της ιδεατής μνήμης. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

85 7. Τμηματοποίηση ιδεατής μνήμης
Η ιδεατή μνήμη χρησιμοποιεί τρεις βασικές τεχνικές : Σελιδοποίηση (paging) Κατάτμηση (segmentation) Κατάτμηση με σελιδοποίηση (segmentation with paging) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

86 7.1 Σελιδοποίηση Η κατάτμηση της μνήμης σε μικρά ίσου μεγέθους τμήματα (blocks, chunks) και η διαίρεση κάθε διεργασίας σε τμήματα του ίδιου μεγέθους Τα τμήματα μιας διεργασίας λέγονται σελίδες(pages) και τα τμήματα της μνήμης πλαίσια (frames). Ο εικονικός χώρος διευθύνσεων διαμοιράζεται σε σελίδες σταθερού μεγέθους, ενώ η φυσική μνήμη διαμοιράζεται σε πλαίσια σελίδας (page frames) (μεγέθους ίδιου με τη σελίδα). Μια σελίδα μπορεί να τοποθετηθεί σε οποιοδήποτε πλαίσιο σελίδας ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

87 virtual pages page frames
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

88 virtual page - page frame Virtual address space Physical memory 0–4K
7 4 3 32–36K 36–40K 1 40–44K 5 44–48K 6 48–52K - 52–56K 56–60K 60–64K Virtual address space Physical memory page frame ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

89 Το Λ.Σ. διατηρεί ένα πίνακα σελίδων (page table) για κάθε διεργασία που περιέχει τη θέση πλαισίου για κάθε σελίδα της διεργασίας. μια λίστα των ελεύθερων πλαισίων, με όλα τα πλαίσια στην κύρια μνήμη που είναι ελεύθερα και διαθέσιμα για τις σελίδες. Η διεύθυνση μνήμης μέσα στο πρόγραμμα (λογική διεύθυνση) αποτελείται από έναν αριθμό σελίδας και μια μετατόπιση (offset) εντός της σελίδας Ο επεξεργαστής χρησιμοποιεί τον πίνακα σελίδων για να παράγει τη φυσική διεύθυνση (αριθμός πλαισίου, μετατόπιση) που αντιστοιχεί σε μια λογική διεύθυνση (αριθμός σελίδας, μετατόπιση). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

90 Αντιστοίχηση σελίδων διεργασιών με ελεύθερα πλαίσια
Physical memory Page frame number Page 0 6 Page 1 (P1) Page 1 3 1 Page 2 4 Page 4 (P0) Page 3 9 2 3 Page 1 (P0) Page 4 2 Free pages 4 Page 2 (P0) Logical memory (P0) Page table (P0) 5 6 Page 0 (P0) Page 0 8 7 Page 1 Page 0 (P1) 8 Page 3 (P0) 9 Logical memory (P1) Page table (P1) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

91 Αντιστοίχιση λογικών σε φυσικές διευθύνσεις
Διαίρεση της διεύθυνσης από τη CPU σε δύο τμήματα Αριθμός σελίδας ( p ) Μετατόπιση στη σελίδα ( d ) Αριθμός σελίδας Δείκτης στον πίνακα σελίδων Ο πίνακας σελίδων περιέχει τη διεύθυνση βάσης της σελίδας στη φυσική μνήμη Μετατόπιση στη σελίδα Προστίθεται στη διεύθυνση βάσης για να βρεθεί η πραγματική διεύθυνση στη φυσική μνήμη Μέγεθος σελίδας = 2d bytes παράδειγμα: • 4 KB (=4096 byte) pages • 32 bit logical addresses 2d = 4096 d = 12 32-12 = 20 bits 12 bits p d 32 bit logical address ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

92 Αρχιτεκτονική μετάφρασης της διεύθυνσης
Page frame number Page frame number page number page offset CPU 1 p d f d . . . f-1 1 f . . . f+1 p-1 f+2 p f . . . p+1 physical memory page table ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

93 Παράδειγμα - 1 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

94 Παράδειγμα - 2 present Outgoing physical address bit Page table
8 000 9 101 1 10 11 111 12 13 14 15 1 (0x6004, 24580) Παράδειγμα: 4 KB pages (12-bit offsets) 16 bit virtual address space  16 pages (4-bit index) 8 physical pages (3-bit index) 7 000 6 000 5 011 1 4 100 1 3 000 1 2 110 1 4-bit index into page table virtual page = 0010 = 2 1 001 010 1 12-bit offset Incoming virtual address (0x2004, 8196) 1 1 1 1 1 1 1 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

95 Η σελιδοποίηση είναι ανάλογη με την τμηματοποίηση σταθερού μεγέθους, με τις εξής διαφορές:
1. τα τμήματα δεν χρειάζεται να είναι συνεχόμενα 2. Τα τμήματα είναι αρκετά μικρά 3. Ένα πρόγραμμα μπορεί να απασχολεί περισσότερα από ένα τμήματα Η σπατάλη μνήμης οφείλεται στον εσωτερικό κατακερματισμό που είναι κλάσμα της τελευταίας σελίδας της διεργασίας. Εξωτερικός κατακερματισμός δεν υπάρχει. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

96 Ωφέλη της χρήσης μεγεθών σελίδας που είναι δυνάμεις του 2:
Το μέγεθος σελίδας και πλαισίου είναι δύναμη του 2 (συνήθως μεταξύ 512 bytes και 8192 bytes). Αποδεικνύεται ότι η σχετική διεύθυνση που ορίζεται σε σχέση με την αρχή του προγράμματος και η λογική διεύθυνση που εκφράζεται ως ένας αριθμός σελίδας και μετατόπιση, είναι ΙΔΙΕΣ. Ωφέλη της χρήσης μεγεθών σελίδας που είναι δυνάμεις του 2: Το σχήμα της λογικής διευθυνσιοδότησης δεν είναι εμφανές στον προγραμματιστή. Είναι εύκολη η εφαρμογή μιας συνάρτησης σε επίπεδο υλικού μέρους που θα πραγματοποιεί δυναμική μετάφραση των διευθύνσεων κατά τη στιγμή της εκτέλεσης. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

97 Μέγεθος σελίδας Μικρό μέγεθος σελίδας πλεονεκτήματα μειονεκτήματα
Λιγότερος εσωτερικός κατακερματισμός καλύτερο ταίριασμα για διάφορες δομές δεδομένων και τμήματα κώδικα Λιγότερο μη χρησιμοποιούμενο πρόγραμμα στη μνήμη μειονεκτήματα Τα προγράμματα χρειάζονται πολλές σελίδες και μεγαλύτερους πίνακες σελίδων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

98 Λογικές διευθύνσεις - παραδείγματα
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

99 Σελιδοποίηση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

100 7.2 Πίνακες σελίδων Κάθε διεργασία έχει τον δικό της εικονικό χώρο διευθύνσεων, άρα και τον δικό της πίνακα σελίδων που αποθηκεύεται στην κύρια μνήμη. Κάθε καταχώρηση (θέση) του πίνακα σελίδων περιέχει τον αριθμό πλαισίου της αντίστοιχης σελίδας στην κεντρική μνήμη Επιπλέον απαιτούνται : ένα bit (Present bit) που θα δείχνει αν μια σελίδα βρίσκεται στην κεντρική μνήμη ή όχι ένα bit (Modify bit) για να δείχνει αν η σελίδα έχει αλλάξει από την τελευταία φορά που φορτώθηκε στην κεντρική μνήμη. Αν δεν έχει γίνει αλλαγή, τότε η σελίδα δεν πρέπει να γραφεί στο δίσκο όταν χρειάζεται να γίνει εναλλαγή. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

101 Παράδειγμα physical memory Page Table virtual memory P 1 1 1 . .
1 2 3 4 5 6 7 page 1 page 0 page 2 1 3 page 3 1 6 page 2 page 3 . . physical memory Page Table virtual memory ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

102 Πολλαπλές διεργασίες στη φυσική μνήμη
page table A page A0 1 1 page A1 physical memory page A2 1 3 1 2 3 4 5 6 7 8 9 10 11 process A virtual memory page A3 1 6 page A0 . . page A2 page B1 page A3 page table B page B0 1 8 page B0 page B1 1 4 page B2 page B3 process B virtual memory page B3 1 10 . . ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

103 Πίνακες σελίδων – valid bit
Memory resident page table (physical page or disk address) Virtual Page Number Physical Memory Valid 1 1 1 1 1 1 Disk Storage (swap file or regular file system file) 1 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

104 Προστασία Κάθε είσοδος στον πίνακα σελίδων περιέχει πληροφορίες για τα δικαιώματα πρόσβασης (access rights) Page Tables Memory Physical Addr Read? Write? PP 9 Yes No PP 4 XXXXXXX VP 0: VP 1: VP 2: 0: 1: Process i: Physical Addr Read? Write? PP 6 Yes PP 9 No XXXXXXX VP 0: VP 1: VP 2: Process j: N-1: ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

105 Αντιστοίχιση διευθύνσεων : Πίνακας σελίδων
Virtual Address: page no. offset index into page table + Physical Memory Address Page Table Val -id Access Rights Physical Page Address V A.R. P. P. A. ... Page Table Base Reg Ο πίνακας σελίδων βρίσκεται στη φυσική μνήμη ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

106 Πίνακες σελίδων Ο πίνακας σελίδων έχει μέγιστο πλήθος εισόδων όσο και το πλήθος των εικονικών σελίδων της διεργασίας. Ο πίνακας σελίδων είναι μεταβλητού μήκους (το μήκος του εξαρτάται από το μέγεθος της διεργασίας) και πρέπει να βρίσκεται στην κύρια μνήμη για να είναι προσπελάσιμος. Ολόκληρος ο πίνακας σελίδων είναι πιθανόν να καταλαμβάνει πολύ μεγάλο μέρος της κεντρικής μνήμης. Το μέγεθος της μνήμης που αφιερώνεται στους πίνακες σελίδων μπορεί να γίνει απαράδεκτα μεγάλο. Μεγαλύτερο μέγεθος σελίδας είναι μια ενδεδειγμένη λύση; Τα περισσότερα συστήματα ιδεατής μνήμης αποθηκεύουν τους πίνακες των σελίδων στην ιδεατή μνήμη, αντί για τη φυσική. Όταν μια διεργασία εκτελείται, ένα τμήμα του πίνακα σελίδων της βρίσκεται στην κεντρική μνήμη. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

107 Κάθε πίνακας σελίδων χρησιμοποιεί τους καταχωρητές :
Page Table Base Register (PTBR) : κρατά την αρχική φυσική διεύθυνση του πίνακα σελίδων της εκτελούμενης διεργασίας Page-table length register (PRLR) : το υλικό ελέγχει αν ο αριθμός σελίδας βρίσκεται εντός του ορίου και το μέγεθος του πίνακα σελίδων περιορίζεται. Ορισμένοι επεξεργαστές (Pentium) χρησιμοποιούν πίνακες σελίδων πολλαπλών επιπέδων για να οργανώσουν καλύτερα μεγάλους πίνακες σελίδων. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

108 Παράδειγμα 220 Χ 4 bytes = 222 bytes = 4 MB
Αν χρησιμοποιούνται 32 bits για εικονικό χώρο διευθύνσεων με μέγεθος σελίδων 4KB τότε ένας πίνακας σελίδων μπορεί να έχει 220 εισόδους (θέσεις). Αν κάθε θέση του καταλαμβάνει 4 bytes τότε δεσμεύεται χώρος κύριας μνήμης : 220 Χ 4 bytes = 222 bytes = 4 MB Αν στο σύστημα «τρέχουν» 25 διεργασίες τότε απαιτείται χώρος για τους πίνακες σελίδων : 25 Χ 4 ΜΒ = 100 ΜΒ!!!! Μέγεθος φυσικής μνήμης 4Gb είναι συνηθισμένο και πιθανό ; Ήδη χρησιμοποιείται διευθυνσιοδότηση 64-bits για την αύξηση του εικονικού χώρου διευθύνσεων: Intel Itanium, AMD Clawhammer, DEC Alpha ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

109 Διαμοιραζόμενες σελίδες
7 data - P2 editor process 6 code editor 5 4 data - P0 data 3 editor editor 2 page tables 5 5 5 2 2 2 1 3 3 3 4 7 data - P1 P0 P1 P2 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

110 Διαμοιραζόμενος κώδικας
Μόνο για ανάγνωση επανεισαγόμενος (reentrant) διαμοιραζόμενος κώδικας μεταξύ των διεργασιών Ο διαμοιραζόμενος κώδικας εμφανίζεται στην ίδια θέση στο φυσικό χώρο διευθύνσεων Ιδιωτικός κώδικας και δεδομένων Κάθε διεργασία διατηρεί ένα ξεχωριστό αντίγραφο του κώδικα και των δεδομένων. Οι ιδιωτικές σελίδες μπορούν να εμφανίζονται οπουδήποτε στο φυσικό χώρο διευθύνσεων. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

111 Άσκηση - 28 Ποιο είναι το μεγαλύτερο μέγεθος προγράμματος που χωρά σε ένα πίνακα σελίδων σε ένα σύστημα που χρησιμοποιεί φυσικές διευθύνσεις 32-bit και μέγεθος σελίδας 1K; ΛΥΣΗ ΦΥΣ. ΔΙΕΥΘΥΝΣΗ 32 bits χώρος διευθύνσεων 232 διαφορετικές διευθύνσεις Μέγεθος σελίδας 1K= 210 διευθύνσεις μνήμης ΑΡΑ : μέγιστο πλήθος σελίδων = 232/210=222 Κάθε διεύθυνση των 32 bits (=4 bytes) πρέπει να χωρά σε κάθε μια από τις 222 θέσεις του πίνακα σελίδων άρα μέγεθος του πίνακα σελίδων : 222 X 4bytes = 16Mb μεγαλύτερο μέγεθος προγράμματος : 16Mb ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

112 Άσκηση - 29 Δίνεται ο πίνακας σελίδων μιας διεργασίας :
Ποιο είναι το μικρότερο δυνατό μέγεθος σελίδας; Δώστε σε δυαδική μορφή τη φυσική διεύθυνση της εικονικής διεύθυνσης 1234 Δώστε σε δεκαδική μορφή τη φυσική διεύθυνση της εικονικής διεύθυνσης 3333 Page No Frame No 5 1 3 2 4 = frame 3 και offset στο frame =210= = (1024 * 3) = 261 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

113 Λύση Άσκησης - 29 Γιατί το μέγεθος σελίδας είναι 1K;
Έστω μέγεθος σελίδας 512 bytes (=29 bytes) Η εικονική διεύθυνση 3333 απαιτεί 6 γεμάτες σελίδες (=512 Χ 6 =3072) και στην 7η σελίδα μετατόπιση (offset) = =261 Άρα απαιτούνται αριθμοί σελίδων 0,1,2,3,4,5,6,7 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

114 7.3 Κατάτμηση (segmentation)
Κατάτμηση είναι ο τρόπος οργάνωσης της ιδεατής μνήμης σε τμήματα. Μια διεύθυνση αποτελείται από δύο μέρη – έναν αριθμό τμήματος και μια μετατόπιση (offset). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

115 Τα τμήματα δεν είναι ίσα και η κατάτμηση είναι παρόμοια με τη δυναμική τμηματοποίηση. Μειώνεται ο εσωτερικός κατακερματισμός. Τα τμήματα μπορούν να έχουν δυναμικό μέγεθος ώστε να απλοποιείται η διαχείριση δυναμικών δομών δεδομένων Η κατάτμηση : επιτρέπει στα προγράμματα να τροποποιούνται και να μεταφράζονται εκ νέου ανεξάρτητα είναι κατάλληλη για διαμοίραση και προστασία δεδομένων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

116 Κατάτμηση (Segmentation)
Μια εικονική διεύθυνση είναι ένας αριθμός τμήματος (segment number) και μια μετατόπιση offset. 1ff5 410a base=eb04 bound=5a68 5a68 1 base=1ff5 bound=2010 2010 eb04 2 base=410a bound=714b 714b Κάθε τμήμα τοποθετείται σε μια συνεχόμενη περιοχή της μνήμης. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

117 Μετατροπή διεύθυνσης σε σύστημα με κατάτμηση (1)
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

118 Η κατάτμηση είναι φανερή στον προγραμματιστή σε αντίθεση με τη σελιδοποίηση, και παρέχεται ως διευκόλυνση για την οργάνωση προγραμμάτων και δεδομένων (αρκεί ο προγραμματιστής να γνωρίζει τα όρια τμημάτων που αναγνωρίζει η γλώσσα προγραμματισμού καθώς και αν όλα μπορούν να έχουν δυναμικό μέγεθος!!!). Ο προγραμματιστής βλέπει το πρόγραμμα σαν συλλογή από segments π.χ. main program, function, objects, global variables, stack… Δεν υπάρχει μια απλή συσχέτιση μεταξύ των λογικών και των φυσικών διευθύνσεων. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

119 Παράδειγμα συστήματος με τμήματα
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

120 Πλεονεκτήματα της κατάτμησης
Η εικόνα της μνήμης είναι η εικόνα που έχει ο προγραμματιστής (ή ο έμπειρος χρήστης) Τα τμήματα προστατεύονται μεταξύ τους Κάθε τμήμα περιέχει ένα τύπο πληροφορίας (πχ, instructions, stack, …) Η διαμοίραση τμημάτων είναι λογική και εύκολη Αν όλες οι εντολές είναι σε ένα τμήμα και όλα τα δεδομένα σε άλλο, το τμήμα εντολών μπορεί να διαμοιραστεί ελεύθερα σε διαφορετικές διεργασίες (κάθε μια με τα δικά της δεδομένα) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

121 Διαμοίραση τμημάτων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

122 Μετάφραση σε φυσική διεύθυνση
Αριθμός τμήματος 0001 Ο αριθμός αυτός χρησιμοποιείται στον segment table της διεργασίας για να βρεθεί η φυσική διεύθυνση της αρχής του τμήματος Συγκρίνεται η μετατόπιση με το μήκος του τμήματος. Αν ΜΕΤΑΤΟΠΙΣΗ > ΜΗΚΟΣ ΤΜΗΜΑΤΟΣ προκύπτει ΜΗ ΕΓΚΥΡΗ ΔΙΕΥΘΥΝΣΗ ΦΥΣΙΚΗ ΔΙΕΥΘΥΝΣΗ = ΑΘΡΟΙΣΜΑ : ΦΥΣΙΚΗΣ ΔΙΕΥΘΥΝΣΗΣ ΑΡΧΗΣ ΤΜΗΜΑΤΟΣ + ΜΕΤΑΤΟΠΙΣΗ ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

123 Από τον process segment table προκύπτει ότι το segment 0 έχει μήκος : = 750 2048 1024 512 256 128 64 32 16 8 4 2 1 Άρα η λογική διεύθυνση πράγματι βρίσκεται στο segment 1 (επειδή 752 > 750) Για να βρεθεί η φυσική διεύθυνση θα προσθέσω τη μετατόπιση στη βάση του segment 1 : base 1 offset address ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

124 7.4 Πίνακες Τμημάτων (Segment Tables)
Αντιστοιχίζουν τα segments στην κύρια μνήμη Κάθε είσοδος περιέχει τον αριθμό και το μήκος του segment Απαιτούνται : ένα bit για να αποφασιστεί αν το segment είναι ήδη στην κύρια μνήμη ένα επιπλέον bit για να αποφασιστεί αν το segment έχει μεταβληθεί από τότε που φορτώθηκε στην κύρια μνήμη Ο πίνακας τμημάτων έχει μεταβλητό μέγεθος, βρίσκεται στην κύρια μνήμη και ένας καταχωρητής κρατά την αρχική διεύθυνση του πίνακα τμημάτων για τη διεργασία που εκτελείται ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

125 Είσοδοι Πίνακα Τμημάτων
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

126 Η αρχιτεκτονική της κατάτμησης
Ο compiler δημιουργεί segments για : main( ), functions, globals, … Κάθε τμήμα αποθηκεύεται ξεχωριστά στη μνήμη Πρέπει να υπάρχει υποστήριξη υλικού για την αντιστοίχιση λογικών διευθύνσεων (segment number + offset) σε φυσικές διευθύνσεις Καταχωρητές που χρησιμοποιούνται segment table base register (STBR) : δείχνει στη διεύθυνση μνήμης του πίνακα τμημάτων στη μνήμη segment table length (limit) register (STLR): δείχνει τον αριθμό των τμημάτων που χρησιμοποιεί το πρόγραμμα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

127 Σύγκριση απλής κατάτμησης και σελιδοποίησης
Η κατάτμηση απαιτεί περισσότερο σύνθετο hardware για τον μετασχηματισμό των διευθύνσεων Η κατάτμηση έχει το μειονέκτημα του εξωτερικού κατακερματισμού Η σελιδοποίηση δημιουργεί πολύ μικρό εσωτερικό κατακερματισμό Η κατάτμηση είναι ορατή από τον προγραμματιστή ενώ η σελιδοποίηση είναι αδιαφανής Η κατάτμηση θεωρείται ως πλεονέκτημα που προσφέρεται στον προγραμματιστή για να οργανώσει λογικά ένα πρόγραμμα σε segments και να χρησιμοποιήσει διαφορετικά είδη προστασίας (π.χ. execute-only, read-write) Για το σκοπό αυτό στους πίνακες τμημάτων πρέπει να χρησιμοποιούνται bits προστασίας ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

128 Σύγκριση σελιδοποίησης και κατάτμησης
Είναι απαραίτητο να γνωρίζει ο προγραμματιστής ότι χρησιμοποιείται αυτή η τεχνική; ΟΧΙ ΝΑΙ Πόσοι χώροι γραμμικών διευθύνσεων υπάρχουν; 1 ΠΟΛΛΟΙ Ο συνολικός χώρος διευθύνσεων υπερβαίνει το μέγεθος της φυσικής μνήμης; Μπορούν οι διαδικασίες και τα δεδομένα να διαχωριστούν και να προστατευθούν ξεχωριστά; Μπορούν πίνακες με αυξομειούμενο μέγεθος να εξυπηρετηθούν εύκολα; Διευκολύνεται η διαμοίραση των διαδικασιών μεταξύ των χρηστών; Ποιος είναι ο σκοπός αυτής της τεχνικής; Η απόκτηση ενός μεγάλου γραμμικού χώρου διευθύνσεων χωρίς να είναι αναγκαία η αγορά επιπλέον φυσικής μνήμης Να δοθεί η δυνατότη-τα σε προγράμματα και δεδομένα να δια-σπαστούν σε ανεξάρ-τητες λογικές ενότη-τες που διαμοιρά-ζονται και προστα-τεύονται εύκολα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

129 7.5 Κατάτμηση με σελιδοποίηση
Οι σύγχρονοι υπολογιστές χρησιμοποιούν συνδυασμό κατάτμησης και σελιδοποίησης Ο χώρος διευθύνσεων του χρήστη χωρίζεται σε ένα πλήθος τμημάτων και κάθε τμήμα διασπάται σε ένα πλήθος σελίδων σταθερού μεγέθους που είναι το ίδιο με το μέγεθος πλαισίου της κύριας μνήμης. Κάθε διεργασία συνδέεται με έναν πίνακα τμήματος και έναν αριθμό από πίνακες σελίδων, έναν για κάθε τμήμα της διεργασίας. Επιλύεται το πρόβλημα του εξωτερικού κατακερματισμού μέσω της σελιδοποίησης των τμημάτων Κάθε είσοδος στον πίνακα τμημάτων δεν περιέχει τη διεύθυνση βάσης του τμήματος, αλλά τη διεύθυνση βάσης του πίνακα σελίδων που αντιστοιχεί στο τμήμα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

130 Είσοδοι πινάκων τμημάτων και σελίδων
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

131 Μετατροπή διεύθυνσης (1)
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

132 Μετατροπή διεύθυνσης (2)
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

133 Άσκηση – 35 (Σεπτέμβριος 2003)
Θεωρείστε τον ακόλουθο πίνακα τμημάτων: Ποιες φυσικές διευθύνσεις αντιστοιχούν στις παρακάτω λογικές διευθύνσεις;   0,430   1,10   2,500   3,400   4,112 τμήμα βάση μήκος 219 600 1 2300 14 2 90 100 3 1327 580 4 1952 96 a.  = 649 b.  = c.  illegal reference, trap to operating system d.  = e.  illegal reference, trap to operating system ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

134 Άσκηση - 36 Τρεις διεργασίες A,B,C φορτώνονται στην κεντρική μνήμη. Οι απαιτήσεις τους φαίνονται στον παρακάτω πίνακα: Process Code Segment Data Segment Stack Segment A 492 438 2009 B 4034 1030 610 C 8900 914 1120 Το Λ.Σ. υποστηρίζει σελιδοποίηση με μέγεθος σελίδας 512 bytes. Ποιο ποσό φυσικής μνήμης σπαταλιέται για καθεμία από τις διεργασίες λόγω κατακερματισμού; Τι είδους είναι ο κατακερματισμός; Υποθέστε ότι το Λ.Σ. (και το hardware) μπορεί να υποστηρίξει κατάτμηση με μέγεθος σελίδας 512 bytes. Κάθε τμήμα μπορεί να φορτωθεί ξεχωριστά. Ποιο ποσό φυσικής μνήμης σπαταλιέται λόγω κατακερματισμού; (θεωρείστε ότι κάθε τμήμα καταλαμβάνει ακέραιο αριθμό σελίδων και ότι ξεκινά στα όρια της σελίδας). internal ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

135 Άσκηση – 37 (Σεπτέμβριος 2005)
Ένα σύστημα χρησιμοποιεί ως εικονικές διευθύνσεις 2048 σελίδες μεγέθους η κάθε μία 256 bytes και αντιστοιχείται σε μια φυσική μνήμη 512 πλαισίων. Η μικρότερη μονάδα προσπέλασης είναι 1 byte. μια διεργασία P1 χρησιμοποιεί 1053 bytes. Πόσα πλαίσια σελίδων θα απαιτήσει από την MMU (Memory Management Unit – μονάδα διαχείρισης μνήμης); μια άλλη διεργασία P2 απαιτεί 4000 bytes. Θεωρείστε ότι η P2 έχει ήδη αποκτήσει μέγεθος φυσικής μνήμης 2048 bytes, που ξεκινά από τη διεύθυνση 0. Έστω ότι o επεξεργαστής χρειάζεται να προσπελάσει τη διεύθυνση : 10η σελίδα, μετατόπιση 34, στο πρόγραμμα της διεργασίας P2. Μπορεί να υπάρξει σφάλμα σελίδας; Δικαιολογείστε την απάντησή σας. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

136 Άσκηση – 38 (Σεπτέμβριος 2005)
Ένα σύστημα εικονικής μνήμης χρησιμοποιεί σελιδοποίηση με εικονικές διευθύνσεις μεγέθους 64 bits και μέγεθος σελίδας 16ΚΒ. Κάθε είσοδος στον πίνακα σελίδων απαιτεί 128 bits. Ο πίνακας σελίδων πρέπει να χωρά σε μία σελίδα. Πόσα επίπεδα πινάκων σελίδων απαιτούνται και πόσες είσοδοι υπάρχουν στον πίνακα σελίδων σε κάθε επίπεδο; ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

137 Άσκηση – 39 (Ιούνιος 2004) Σε ένα σύστημα που χρησιμοποιεί σελιδοποίηση κάθε είσοδος στον πίνακα σελίδων έχει μέγεθος 4 bytes. Το μέγεθος σελίδας είναι 4K. Αν ο εικονικός χώρος διευθύνσεων χρησιμοποιεί 64 bits και με την προϋπόθεση ότι ο πίνακας σελίδων χωρά σε μια σελίδα : μπορεί το σύστημα να χρησιμοποιεί απλή σελιδοποίηση ; Να δικαιολογήσετε την απάντησή σας. αν απαιτείται σελιδοποίηση πολλαπλών επιπέδων , διατηρώντας τις προηγούμενες παραδοχές (δηλαδή ότι ο εικονικός χώρος διευθύνσεων χρησιμοποιεί 64 bits και κάθε πίνακας σελίδων χωρά σε μια σελίδα μεγέθους 4K) να βρείτε πόσα τουλάχιστον επίπεδα πρέπει να χρησιμοποιήσει μια σελιδοποίηση πολλαπλών επιπέδων. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

138 Άσκηση - 40 Μνήμη που διευθυνσιοδοτείται ανά byte
Θεωρείστε μια αρχιτεκτονική λογικής μνήμης με τις ακόλουθες παραμέτρους : Μνήμη που διευθυνσιοδοτείται ανά byte 24-bit λογικές διευθύνσεις Μέγεθος segment 2 ΜΒ Μέγεθος σελίδας 512 bytes Κάθε πίνακας σελίδων πρέπει να χωρά σε μια σελίδα. Υποθέστε ότι κάθε καταχώρηση στον πίνακα σελίδων περιέχει ένα read και ένα write bit προστασίας και ότι το μέγιστο ποσό φυσικής μνήμης που υποστηρίζεται από την αρχιτεκτονική είναι 8MB. Σχεδιάστε τη λογική διεύθυνση, δείχνοντας τον αριθμό των bits που χρησιμοποιούνται ως δείκτης σε κάθε επίπεδο των πινάκων σελίδων. (Υπόδειξη: Πρέπει να υπολογίσετε το μέγεθος κάθε καταχώρησης (PTE) στον πίνακα σελίδων. Ως ενδιάμεσο βήμα, ίσως θεωρήσετε χρήσιμο να υπολογίσετε τον αριθμό που χωρούν στη φυσική μνήμη. Μετά, πόσα bits σε κάθε PTE απαιτούνται για να σχεδιάσετε μία από αυτές τις σελίδες; Προσθέστε τα 2 bits προστασίας για να υπολογίσετε το μέγεθος κάθε PTE.) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

139 Λύση Άσκησης 40 Από τις αρχικές παραμέτρους προκύπτει :
Μέγεθος segment 2MB=2*1MB=2*220=221 bits Εφόσον η λογική διεύθυνση έχει 24 bits απομένουν 24-21=3 bits για τον αριθμό segments Επειδή μέγεθος σελίδας = 512 bytes =29 bits =offset και απομένουν 21-9=12 bits για τον αριθμό σελίδας (page number) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

140 Με μέγεθος φυσικής μνήμης 8ΜΒ =223 bits για τον αριθμό πλαισίων απομένουν 23-9=14 bits (ο αριθμός πλαισίων αναφέρεται και ως πλήθος των σελίδων φυσικής μνήμης (Physical Page Number)) (με τον γνωστό τρόπο το πλήθος των σελίδων φυσικής μνήμης είναι 223/29=214 δηλαδή απαιτούνται 14 bits για το πλήθος των σελίδων φυσικής μνήμης). Άρα κάθε καταχώρηση (entry) στον πίνακα σελίδων απαιτεί (read-write) = 16 bits = 2 bytes ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

141 Για να χωρά κάθε πίνακας σελίδων σε μια σελίδα (=29 bits) ο μέγιστος αριθμός PTE (Page Table Entries) θα είναι 29/2=28 Άρα το πολύ 8 bits μπορούν να χρησιμοποιηθούν ως δείκτης στον πίνακα σελίδων που χωρά σε μια σελίδα. Επειδή βρήκαμε ότι το πλήθος των bits που χρησιμοποιούνται για σελίδες είναι 12 έχουμε τουλάχιστον σελιδοποίηση με ένα επίπεδο 8 bits και ένα με 4 bits (δηλαδή συνολικά 2 επίπεδα). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

142 Από αυτά το επίπεδο των 4 bits είναι το εξωτερικό (πλησιέστερα προς το segment) και το επίπεδο των 8 bits το εσωτερικό (πλησιέστερα προς το offset) : ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

143 Άσκηση - 41 Δίνεται η παρακάτω μορφή λογικής διεύθυνσης : Να βρεθούν :
Το πλήθος των segments Το μέγιστο μέγεθος κάθε segment Το μέγεθος κάθε σελίδας Το μέγιστο πλήθος σελίδων ανά segment Το μέγιστο μέγεθος κάθε πίνακα σελίδας (ανά τμήμα). Υποθέστε ότι κάθε καταχώρηση στον πίνακα σελίδων (PTE) απαιτεί 4 bytes 2^2 = 4 2^24 bytes = 16MB 2^8 bits = 256 bytes 2^16 pages = 64K pages 2^16 entries * 4 bytes/entry = 2^18 bytes = 256K bytes ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

144 Άσκηση - 42 Ένα σύστημα χρησιμοποιεί διευθύνσεις των 32 bits και έχει κεντρική μνήμη 4MB. Το μέγεθος σελίδας είναι 1K. Ποιο είναι το μέγεθος του πίνακα σελίδων; ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

145 Λύση άσκησης 42 Ο πίνακας σελίδων περιέχει το πεδίο του αριθμού σελίδας της εικονικής διεύθυνσης. Έτσι το πλήθος των γραμμών στον πίνακα σελίδων είναι ίσο με τον αριθμό των εικονικών σελίδων: Εικονικές σελίδες = 232/210=222=4Μ σελίδες Το πλάτος κάθε γραμμής στον πίνακα σελίδων είναι ίσο με το πλάτος του αριθμού σελίδας στην εικονική διεύθυνση δηλ. 22 bits. Άρα το μέγεθος του πίνακα σελίδων είναι : Μέγεθος πίνακα σελίδων = πλήθος γραμμών * μέγεθος γραμμής Μέγεθος πίνακα σελίδων = 222*22 bits =11.5 Mbytes!! ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

146 Άσκηση - 43 Ένα σύστημα χρησιμοποιεί χώρο διευθύνσεων 32 bits και έχει μέγεθος σελίδας 8Κ. Ο πίνακας σελίδων βρίσκεται εξ ολοκλήρου στο υλικό και κάθε είσοδός του έχει μήκος 32 bits. Όταν μια διεργασία καθίσταται εκτελέσιμη ο πίνακας σελίδων αντιγράφεται από το υλικό στη μνήμη με ταχύτητα 100nsec για κάθε είσοδό του. Αν κάθε διεργασία εκτελείται για 100msec (περιλαμβάνεται ο χρόνος φόρτωσης του πίνακα σελίδων), να βρεθεί το ποσοστό % του χρόνου της CPU που αφιερώνεται για τη φόρτωση του πίνακα σελίδων, για κάθε διεργασία. ΑΠΑΝΤΗΣΗ : 52,43% ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

147 Άσκηση - 44 Ένα σύστημα κρατά τους πίνακες σελίδων των διεργασιών στην κύρια μνήμη. Ο χρόνος ανάγνωσης μιας εισόδου του πίνακα σελίδων είναι 50nsec. Για να μειωθεί η καθυστέρηση το σύστημα χρησιμοποιεί TLB στο οποίο η αναζήτηση διαρκεί 10nsec. Ποιο πρέπει να είναι το ποσοστό επιτυχίας (hit – rate) του TLB ώστε ο χρόνος ανάγνωσης να μειωθεί σε 20nsec; ΑΠΑΝΤΗΣΗ : 75% ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

148 Άσκηση – 45 (Ιούνιος 2005) Ένα σύστημα σελιδοποίησης χρησιμοποιεί διευθύνσεις των 16 bits, με μέγεθος σελίδας 4K και συνολικά 8 πλαίσια φυσικής μνήμης. Δίνονται οι πίνακες σελίδων των διεργασιών P1 και P2. P1 P2 3 1 4 2 5 7 6 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

149 Να βρεθούν οι φυσικές διευθύνσεις των παρακάτω λογικών διευθύνσεων:
Λογική διεύθυνση της διεργασίας P1 Λογική διεύθυνση της διεργασίας P2 Να δώσετε αναλυτικά τα βήματα που οδηγούν στο τελικό αποτέλεσμα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

150 Άσκηση – 46 Ένα σύστημα χρησιμοποιεί απλή σελιδοποίηση μνήμης με μέγεθος σελίδας 1024bytes. Το μέγιστο μέγεθος του χώρου διευθύνσεων μιας διεργασίας είναι 16 MB ενώ η μνήμη του συστήματος είναι 2MB. Ο πίνακας σελίδων της τρέχουσας διεργασίας περιέχει τα εξής : page Frame number 4 1 8 2 16 3 17 9 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

151 πόσα bits απαιτούνται για κάθε είσοδο του πίνακα σελίδων?
ποιο είναι το μέγιστο μέγεθος εισόδων σε ένα πίνακα σελίδων; πόσα bits υπάρχουν σε μια εικονική διεύθυνση; σε ποια φυσική διεύθυνση αντιστοιχεί η εικονική διεύθυνση 1524; σε ποια εικονική διεύθυνση μεταφράζεται η φυσική διεύθυνση ? ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

152 9. Ιδεατή Μνήμη – Διαχείριση
Εισαγωγή Σκοπός της διαχείρισης ιδεατής μνήμης Διεργασίες στην κύρια μνήμη Συστατικά του Λ.Σ. Σφάλματα σελίδας Ρυθμός σφαλμάτων σελίδας Τοπικότητα της αναφοράς Πολιτικές του Λ.Σ. για τη διαχείριση μνήμης Προσκόμισης Τοποθέτησης Αντικατάστασης Το φαινόμενο της κατάπτωσης της ιδεατής μνήμης Το μοντέλο του παραμένοντος συνόλου Σφάλματα σελίδας και μέγεθος σελίδας Στρατηγικές αντικατάστασης σελίδων και ανάθεσης πλαισίων Συμπληρωματικές τεχνικές ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

153 1. Εισαγωγή Τα τμήματα μιας διεργασίας δεν είναι απαραίτητο να βρίσκονται όλα ταυτόχρονα στην εικόνα της διεργασίας στην κύρια μνήμη. Η παρουσία τους ή όχι εξαρτάται από τις συνθήκες εκτέλεσης της διεργασίας τη συγκεκριμένη στιγμή. Τα τμήματα που δεν είναι απαραίτητο να υπάρχουν βρίσκονται στη δευτερεύουσα μνήμη (σκληρός δίσκος) και χρειάζεται να μεταφερθούν στη μνήμη όταν απαιτηθούν. Βελτιώνεται ο βαθμός χρήσης της κύριας μνήμης Δεν βρίσκονται στη μνήμη τμήματα που χρησιμοποιούνται σπάνια Μπορούν να εξυπηρετηθούν περισσότερες διεργασίες Η διαχείριση πρέπει να γίνει με προσοχή για να αποφευχθεί σημαντική μείωση της απόδοσης ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

154 2. Σκοπός της διαχείρισης ιδεατής μνήμης
Η κατανόηση των περιορισμών στη διαχείριση μνήμης χωρίς την ύπαρξη της ιδεατής μνήμης Η κατανόηση των βασικών τεχνικών της εικονικής μνήμης Μέθοδοι προσκόμισης των ζητούμενων σελίδων Μέθοδοι αντικατάστασης σελίδων Εκχώρηση πλαισίων στις διεργασίες Η αναφορά σε περιορισμούς και στόχους Τοπικότητα της αναφοράς Πρόβλεψη των σελίδων που θα ζητηθούν μελλοντικά Ο υπολογισμός της επίδρασης που έχει ο βαθμός απόδοσης της ιδεατής μνήμης στην συνολική απόδοση του συστήματος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

155 Περιορισμοί των συστημάτων χωρίς ιδεατή μνήμη
Η μνήμη δεν χρησιμοποιείται πλήρως Χαμηλός βαθμός πολυπρογραμματισμού Δεν υπάρχει αρκετή φυσική μνήμη για την εξυπηρέτηση όλων των διεργασιών Μέγεθος προγραμμάτων Το μέγεθος των προγραμμάτων (process images) περιορίζεται από τη διαθέσιμη φυσική μνήμη Επίπεδο αφαιρετικότητας Ο προγραμματιστής πρέπει να λαμβάνει υπόψη του τις λεπτομέρειες του υλικού, π.χ. το μέγεθος της φυσικής μνήμης ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

156 Λογισμικό του Λ.Σ. για διαχείριση μνήμης
Η σχεδίαση του συστήματος διαχείρισης μνήμης του Λ.Σ. βασίζεται σε τρεις θεμελιώδεις περιοχές επιλογών: Χρήση (ή όχι) τεχνικών ιδεατής μνήμης Χρήση σελιδοποίησης ή κατάτμησης ή συνδυασμού και των δύο Χρήση αλγορίθμων για θέματα διαχείρισης μνήμης Οι επιλογές για τις 2 πρώτες επιλογές εξαρτώνται από το υλικό. Η σελιδοποίηση αφορά τα περισσότερα θέματα διαχείρισης μνήμης ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

157 Βασικά θέματα σχεδίασης του λογισμικού του Λ.Σ.
Περιορισμός του ρυθμού εμφάνισης των σφαλμάτων σελίδας (επιπλέον φόρτος εργασίας) Δρομολόγηση διεργασιών και εναλλαγή διεργασιών Δεν υπάρχουν βέλτιστες πολιτικές διαχείρισης Η επίδοση κάθε μεθόδου εξαρτάται από το μέγεθος της κύριας μνήμης, την ταχύτητα κύριας και δευτερεύουσας μνήμης, το μέγεθος και το πλήθος των διεργασιών που ανταγωνίζονται για πόρους και το είδος των προγραμμάτων που εκτελούνται. Στα μεγάλα συστήματα υπάρχουν εργαλεία καταγραφής και ελέγχου. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

158 Διάγραμμα συστήματος CPU Main Memory Hard Disk System Bus Control Unit
Registers Arithmetic Logic Unit (ALU) System Bus ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06 [David Jones]

159 Εικονική μνήμη (1) Process Main Memory Hard Disk Page Table Reference
Control Block 1 34 2 58 3 122 4 68 5 99 6 38 7 55 8 43 Program 9 131 10 102 11 171 12 76 Data 13 123 14 144 User Stack 15 93 Shared Address Space Reference Bit ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

160 Εικονική μνήμη (2) Αναφορά σελίδας Έλεγχος χάρτη μνήμης
Αν υπάρχει αντίστοιχο σημείο εισόδου στον πίνακα σελίδων για πλαίσιο φυσικής μνήμης τότε γίνεται αναφορά σ’ αυτό διαφορετικά, η σελίδα δεν υπάρχει στη φυσική μνήμη και πρέπει να μεταφερθεί από τον δίσκο Αν η φυσική μνήμη είναι πλήρης, Εύρεση σελίδας προς αντικατάσταση Εναλλαγή στον δίσκο Virtual memory Page 0 Page 1 Page 2 Page n Memory map Page table Page 3 Page 4 Page 5 Page 7 Page 8 Physical memory ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

161 Διαχείριση πίνακα σελίδων εικονικής μνήμης
1 2 3 4 5 6 7 8 9 10 11 C F A Αν το bit πλαισίου είναι έγκυρο (v - valid), το πλαίσιο βρίσκεται στη μνήμη Διαφορετικά, συμβαίνει σφάλμα σελίδας. Η αντίστοιχη σελίδα φορτώνεται από τον δίσκο Εκχωρείται μια νέα περιοχή μνήμης. A B C D E F C D E F B A 1 2 3 4 5 6 7 frame 1 2 3 4 5 6 7 4 v i 6 v i i 9 v i i ? Page table Logical memory Physical memory ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

162 3. Διεργασίες στην κύρια μνήμη
Στην πραγματικότητα δεν είναι απαραίτητο να διατηρείται η πλήρης εικόνα μιας διεργασίας συνεχώς στην κύρια μνήμη. Διατηρούνται : Ο πρόσφατα χρησιμοποιούμενος κώδικας Οι πρόσφατα χρησιμοποιούμενες δομές δεδομένων Δεδομένα του συστήματος (heap, stack) Ορισμένα τμήματα της εικόνας της διεργασίας μπορούν να βρίσκονται στην δευτερεύουσα μνήμη Πρέπει να γίνει εναλλαγή όταν ζητηθεί ένα τμήμα που δεν βρίσκεται στην κύρια μνήμη ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

163 Το Λ.Σ. θέτει την διεργασία σε κατάσταση αναστολής (blocking).
Όταν μια διεύθυνση που απαιτείται δεν βρίσκεται στην κεντρική μνήμη δημιουργείται μια διακοπή (interrupt) . Το Λ.Σ. θέτει την διεργασία σε κατάσταση αναστολής (blocking). Το τμήμα της διεργασίας που περιέχει τη λογική διεύθυνση μεταφέρεται στην κεντρική μνήμη Το Λ.Σ. θέτει μια αίτηση ανάγνωσης δίσκου (disk I/O) Μια άλλη διεργασία δρομολογείται και εκτελείται ενώ πραγματοποιείται η διεργασία disk I/O Μια διακοπή προκαλείται όταν η διαδικασία disk I/O ολοκληρωθεί που αναγκάζει το Λ.Σ. να μεταφέρει τη διεργασία σε κατάσταση Ready ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

164 Πλεονεκτήματα της διακοπής μιας διεργασίας
Περισσότερες διεργασίες μπορούν να διατηρούνται στην κεντρική μνήμη Ορισμένα τμήματα κάθε διεργασίας φορτώνονται στην κεντρική μνήμη Με τόσες διεργασίες στην κεντρική μνήμη είναι πολύ συνηθισμένο μια διεργασία να βρίσκεται σε κατάσταση Ready σε μια ορισμένη χρονική στιγμή. Μια διεργασία είναι δυνατόν να είναι μεγαλύτερη σε μέγεθος από ολόκληρη την κεντρική μνήμη ! ! ! ! ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

165 Ελάχιστες απαιτήσεις :
Απαιτήσεις υλικού Το Hardware πρέπει να υποστηρίζει σελιδοποίηση και κατάτμηση και να διαθέτει μονάδα διαχείρισης μνήμης (MMU). Ελάχιστες απαιτήσεις : Υποστήριξη μετατροπής διευθύνσεων (σελιδοποίηση & κατάτμηση) Οι πίνακες σελίδων πρέπει να περιέχουν επιπρόσθετες πληροφορίες (present bit, modify bit κλπ) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

166 4. Συστατικά του Λ.Σ. Το Λ.Σ. πρέπει να:
έχει την ικανότητα της διαχείρισης των μετακινήσεων των σελίδων και / ή των τμημάτων μεταξύ δευτερεύουσας και κεντρικής μνήμης υποστηρίζει σελιδοποίηση & κατάτμηση μπορεί να εναλλάσσει (μέσω φόρτωσης και απομάκρυνσης) τμήματα διεργασιών μεταξύ κύριας μνήμης και σκληρού δίσκου διαθέτει αλγόριθμο προσκόμισης (fetch algorithm) Ο αλγόριθμος προσκόμισης αποφασίζει ποια τμήματα διεργασιών θα πρέπει να μεταφερθούν στην κύρια μνήμη Η απαίτηση σελιδοποίησης (demand paging) είναι η πιο συχνά χρησιμοποιούμενη διαθέτει αλγόριθμο αντικατάστασης που θα αποφασίζει ποια τμήματα διεργασιών θα εναλλαγούν όταν μια ποσότητα μνήμης πρέπει να απελευθερωθεί ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06

167 Δομές Δεδομένων Σελίδες ή τμήματα Πλαίσια σελίδων Πίνακες σελίδων
Λίστα των ελεύθερων πλαισίων σελίδων Περιέχει όλα τα πλαίσια που δεν χρησιμοποιούνται Πίνακες αλγορίθμου αντικατάστασης Περιέχουν δεδομένα που αφορούν σελίδες και πλαίσια Χρησιμοποιούνται για να αποφασιστεί ποιες σελίδες θα αντικατασταθούν Περιοχή εναλλαγής Περιοχή της δευτερεύουσας μνήμης για σελίδες που δεν βρίσκονται στην κύρια μνήμη Μια πλήρης εικόνα κάθε διεργασίας διατηρείται στην περιοχή αυτή ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 06


Κατέβασμα ppt "Αδιέξοδο Ορισμοί – είδη πόρων Γράφοι εκχώρησης πόρων"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google