Θέμα Πτυχιακής Εργασίας ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ Θέμα Πτυχιακής Εργασίας Προσομοίωση Διαχειριστή Μνήμης με Σελιδοποίηση, με δυνατότητα Εικονικής Μνήμης και υλοποίηση Μακροχρόνιου Χρονοδρομολογητή. ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ Δρ. Σπυρίδων Α. Καζαρλής Επίκουρος Καθηγητής Φοιτητής Καπράλος Αντώνιος
Σκοπός Εργασίας Κύρια στοιχεία της προσομοίωσης : Κύρια Μνήμη (RAM) Η εργασία αυτή αφορά την ανάπτυξη μιας εφαρμογής Οπτικού Προγραμματισμού που θα προσομοιώνει την λειτουργία ενός Διαχειριστή Μνήμης ενός σύγχρονου Λ.Σ. με τη μέθοδο της Σελιδοποίησης Κύρια στοιχεία της προσομοίωσης : Κύρια Μνήμη (RAM) Αρχείο εικονικής μνήμης στο δίσκο(Page File) Πίνακας Σελίδων με στοιχεία των Διεργασιών Άφιξη Διεργασιών Demo Mode Run Mode Μακροχρόνιος Χρονοδρομολογητής 2 Μέθοδοι Σελιδοποίησης (Demand - Anticipatory) 2 Αλγόριθμοι Αντικατάστασης(FIFO - LRU)
Abstract Δημιουργία εφαρμογής Διαχειριστή Μνήμης με Σελιδοποίηση , ικανότητα Εικονικής Μνήμης και εναλλαγών σε βοηθητική μνήμη και υλοποίηση Μακροχρόνιου Χρονοδρομολογητή. Περίληψη Κεφάλαιο 1: Εισαγωγή Κεφάλαιο 2: Διαχείριση Μνήμης Κεφάλαιο 3: Σελιδοποίηση και Εικονική Μνήμη Κεφάλαιο 4: Πρακτικό Μέρος Κεφάλαιο 5: Μελέτη αποτελεσματικότητας αλγορίθμων αντικατάστασης σελίδων Παράρτημα Α Παράρτημα Β (κώδικας προγράμματος ) Βιβλιογραφία-Πηγές
Κεφάλαιο 1 : Εισαγωγή Διεργασία Δίνονται σημαντικές πληροφορίες για βασικές έννοιες της εργασίας Διεργασία Πρόγραμμα ή Προγράμματα Πόροι Συστήματος Ακολουθιακή-Ταυτόχρονη/Παράλληλη -Multitasking Συστήματα -Πολυπύρηνοι επεξεργαστές (Athlon 64 X2) Αποτελείται από: εικόνα κώδικα, μνήμη, στοιχεία ασφαλείας Λ.Σ. : Διεργασίες χωρισμένες, μηχανισμοί ενδοεπικοινωνίας
Μνήμη συστήματος Χώρος αποθήκευσης εκτελέσιμων προγραμμάτων. Κάθε μέρος του Η/Υ που μπορεί να αποθηκεύει δεδομένα είτε τα κρατάει είτε όχι. Κυρίως αναφερόμαστε στην κύρια μνήμη. Παίζει κύριο ρόλο στη σωστή λειτουργία ενός Η/Υ -Απόδοση -Υποστήριξη Λογισμικού -Αξιοπιστία και σταθερότητα -Αναβάθμιση Χωρίζεται σε διαφορετικές κατηγορίες -RAM: πίνακας με 1 bit πληροφορίας σε κάθε κελί, volatile memory -ROM: non volatile memory, μονιμότητα και ασφάλεια -Δευτερεύουσα μνήμη: όχι άμεσα προσιτή, σκληροί δίσκοι, πιο αργή, υψηλή ικανότητα αποθήκευσης, αμετάβλητη -Εικονική Μνήμη: Συνδυασμός κύριας μνήμης και δευτερεύουσας, 1952-1962 πανεπιστήμιο Manchester, 1961 Burroughs-B5000
Χρονοδρομολόγηση Ενότητα Λ.Σ. που λαμβάνει διάφορες αποφάσεις σχετικά με την ανάθεση της ΚΜΕ στις διάφορες διεργασίες. Χρονοδρομολογητής (λογισμικό υπεύθυνο για την ανάθεση) Δύο επίπεδα Χρονοδρομολόγησης: -Διεργασίες που πρέπει να εκτελεστούν -Διεργασίες από το πρώτο Είδη Χρονοδρομολογητών: -Μακροχρόνιος -Μεσοχρόνιος -Βραχυχρόνιος
Κεφάλαιο 2: Διαχείριση μνήμης Παροχή τρόπων για διάθεση μνήμης στα προγράμματα και απελευθέρωση όταν δεν χρειάζεται πλέον Σκοποί: -Δυναμική Διαθεσιμότητα -Προστασία -Εικονική ή λογική μνήμη -Λογική Οργάνωση Διαχειριστής μνήμης Μέρος προγράμματος Η/Υ για κατανομή και ανακατανομή μνήμης Σκοπός: - υλοποίηση υλοποίηση εικονικής μνήμης - αποδοτική χρήση κύριας μνήμης Καθήκοντα: 1.Γνώση θέσεων τεμαχίων διεργασιών 2.Πολιτική προσκόμισης 3.Πολιτική τοποθέτησης 4.Πολιτική αντικατάστασης
Δυναμική κατανομή μνήμης Κατανομή μνήμης σε ένα πρόγραμμα κατά τη διάρκεια εκτέλεσης του Απελευθέρωση μνήμης από προγραμματιστή ή Garbage Collector Αλγόριθμοι κατανομής: αποφυγή εσωτερικού και εξωτερικού τεμαχισμού Σελιδοποίηση Διαίρεση μνήμης σε μικρά ισομεγέθη τεμάχια (σελίδες) Διανομή μνήμης με βάση τη σελίδα ως τη μικρότερη δομική ενότητα Πλεονεκτήματα: 1.Λιγότερος εξωτερικός τεμαχισμός 2.Ενεργές σελίδες στη RAM, μη ενεργές στο δίσκο 3.Ανάγνωση σελίδων από το δίσκο Μειονεκτήματα: 1.Περίπλοκος κώδικας υλοποίησης 2.Ανάγκη μονάδας διαχείρισης μνήμης 3.Εσωτερικός τεμαχισμός
Κεφάλαιο 3: Σελιδοποίηση και Εικονική Μνήμη Λ.Σ παρακολουθεί σελίδες σε χρήση ή όχι Ανταλλαγή σελίδων μεταξύ σκληρού δίσκου και κύριας μνήμης Χρήση περισσότερης μνήμης απ’ ότι διαθέτει ο Η/Υ Σελιδοποίηση με πρόβλεψη Προσδοκίες για μέλλουσα συμπεριφορά προγράμματος Μεταφορά σελίδων στη μνήμη πριν ζητηθούν Ελάττωση συχνότητας σφαλμάτων σε περίπτωση καλής πρόβλεψης Πιθανότητα μεταφοράς άχρηστων σελίδων Επιβάρυνση Λ.Σ.
Σελιδοποίηση με Αίτηση Μέθοδος υλοποίησης εικονικής μνήμης Μεταφορά σελίδων στη κύρια μνήμη μόνο όταν ζητηθούν Πλεονεκτήματα: 1.Ευκολότερες πολιτικές υλοποίησης 2.Καλύτεροι αλγόριθμοι από της Πρόβλεψης 3.Δεν φορτώνονται σελίδες που δεν χρειάζονται 4.Τρέξιμο μεγάλων προγραμμάτων στο Λ.Σ. 5.Σελίδες δεν κατανέμονται στις διεργασίες εκτός και αν τις ζητήσουν Μειονεκτήματα: 1.Σύνθετη διαχείριση μνήμης 2.Πρόσθετη λανθάνουσα κατάσταση ανεξάρτητων προγραμμάτων
Αλγόριθμοι αντικατάστασης σελίδων Αποφασίζουν ποιες σελίδες θα μεταφερθούν από τη δευτερεύουσα μνήμη και αντίθετα Όσο λιγότερος χρόνος για page ins τόσο καλύτεροι Θεωρητικά βέλτιστος αλγόριθμος Επιλογή σελίδων για αντικατάσταση που δε θα χρησιμοποιηθούν για το μεγαλύτερο χρονικό διάστημα Αδύνατος υπολογισμός μελλοντικής χρήσης FIFO Αντικατάσταση σελίδων με την παλαιότερη άφιξη στη RAM Μπορεί να αντικαταστήσει χρήσιμα τεμάχια LRU Αντικατάσταση σελίδων με την παλαιότερη χρήση Σχεδόν βέλτιστη απόδοση Ακριβός στην πράξη Μέθοδοι μείωσης κόστους (συνδεδεμένη λίστα, μετρητής προσπέλασης)
Κεφάλαιο 4 Το πρακτικό Μέρος Οπτικό περιβάλλον
Βασικά στοιχεία εφαρμογής Υλοποίηση σε Borland C++ Builder 6 εφαρμογής για τη Διαχείριση Μνήμης με Σελιδοποίηση που προσομοιώνει την άφιξη Ν-διεργασιών σ’ ένα σύστημα με μεταβλητή μνήμη RAM και Μακροχρόνιο Χρονοδρομολογητή 2 Modes (Demo-RUN) 2 μέθοδοι σελιδοποίησης (Demand-Anticipatory) 2 μέθοδοι αντικατάστασης(FIFO-LRU) 3 περιπτώσεις φορτίου εργασίας Διαχειριστής μνήμης (χώρισμα μνήμης, αποδοχή/απόρριψη διεργασιών) Μακροχρόνιος Χρονοδρομολογητής (εφαρμογή αλγορίθμων αντικατάστασης) Κριτήρια θέτονται από χρήστη
Πίνακες πληροφοριών: Processes’ Info Table Pages’ Correspondence Table Virtual Memory Table RAM Table Swap File Table Swap Info Επιπλέον Πληροφορίες (Swaps, Simulation Time, Total Pages Requests)
Κεφάλαιο 5: Μελέτη αποτελεσματικότητας αλγορίθμων αντικατάστασης σελίδων Σκοπός εφαρμογής: βέλτιστος αλγόριθμος αντικατάστασης με βάση τον αριθμό των εναλλαγών κύριας-δευτερεύουσας μνήμης 3 Φορτία εργασίας Χαμηλό φορτίο (Χαμηλές τιμές, γέμισμα RAM ώστε να χρησιμοποιείται και ο δίσκος αλλά όχι συχνά) Μεσαίο φορτίο (Μεσαίες τιμές,RAM γεμίζει συχνά καθώς και 1/3 δίσκου) Υψηλό φορτίο (Υψηλές τιμές ,RAM συνέχεια γεμάτη και πάνω από ½ δίσκου) Βέλτιστος αλγόριθμος 1η περίπτωση: Demand Paging - LRU 2η περίπτωση: Demand Paging - FIFO 3η περίπτωση: Demand Paging - FIFO
Εναλλαγές RAM-Δίσκου για Demand Paging Εναλλαγές RAM-Δίσκου για Anticipatory Paging