Εισαγωγή στα Λειτουργικά Συστήματα

Σχετικά έγγραφα
Εισαγωγή στα Λειτουργικά

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Εισαγωγή στα Λειτουργικά

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στους Αλγορίθμους

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στα Λειτουργικά Συστήματα

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

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Οργάνωση Υπολογιστών

Διοικητική Λογιστική

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Εισαγωγή στα Λειτουργικά Συστήματα

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

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

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

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Λειτουργικά Συστήματα

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Μηχανολογικό Σχέδιο Ι

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 3: Πολλαπλή Παλινδρόμηση. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Συστήματα Αναμονής. Ενότητα 3: Στοχαστικές Ανελίξεις. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Οργάνωση και Διοίκηση Πωλήσεων Ενότητα 1: Ο ΡΟΛΟΣ ΤΩΝ ΠΩΛΗΣΕΩΝ ΣΤΟ ΠΛΑΙΣΙΟ ΤΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΜΑΡΚΕΤΙΝΓΚ

Εισαγωγή στους Αλγορίθμους

Ιστορία της μετάφρασης

Βέλτιστος Έλεγχος Συστημάτων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 1: Εκτιμητές και Ιδιότητες. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΑΝΑΛΥΣΗ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΩΝ ΚΑΤΑΣΤΑΣΕΩΝ

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Εισαγωγή στη Διοίκηση Επιχειρήσεων Ενότητα 3: Λήψη Αποφάσεων Επίκ. Καθηγητής Θεμιστοκλής Λαζαρίδης Τμήμα Διοίκηση Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Οργάνωση και Διοίκηση Πωλήσεων

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Στατιστική Ι. Ενότητα 3: Στατιστική Ι (3/4) Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

Δομές Δεδομένων Ενότητα 1

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Βάσεις Περιβαλλοντικών Δεδομένων

Ηλεκτροτεχνία ΙΙ. Ενότητα 2: Ηλεκτρικά κυκλώματα συνεχούς ρεύματος. Δημήτρης Στημονιάρης, Δημήτρης Τσιαμήτρος Τμήμα Ηλεκτρολογίας

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 4: Πηγές Δεδομένων- Δευτερογενή Στοιχεία. Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Συστήματα Αναμονής. Ενότητα 5: Ανέλιξη Poisson. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου

Ψηφιακή Επεξεργασία Εικόνων

Συστήματα Αναμονής. Ενότητα 6: Θεωρία Ουρών. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Κβαντική Επεξεργασία Πληροφορίας

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών. Ενότητα 11: ΚΛΙΜΑΚΕΣ ΜΕΤΡΗΣΗΣ 2 Λοΐζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση Αγροτικής Οικονομίας

Συστήματα Αναμονής. Ενότητα 4: Αλυσίδες Markov. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Συστήματα Αναμονής. Ενότητα 7: Ουρά Μ/Μ/1. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τεχνολογία Πολυμέσων. Ενότητα 8: Pool Table. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Συστήματα Αναμονής. Ενότητα 10: Ουρά Μ/Μ/s. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διοίκηση Επιχειρήσεων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Οικονομετρία Ι. Ενότητα 3: Θεώρημα των Gauss Markov. Δρ. Χαϊδώ Δριτσάκη Τμήμα Λογιστικής & Χρηματοοικονομικής

Λογιστική Κόστους. Ενότητα 4: ΣΥΜΠΕΡΙΦΟΡΑ - ΦΥΣΗ ΚΟΣΤΟΥΣ. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου Ενότητα 2 η : ΠΕΡΙΓΡΑΦΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΜΑΘΗΜΑΤΙΚΑ ΜΟΝΤΕΛΑ

Διδακτική της Πληροφορικής

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου Ενότητα 8 η : ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΩΝ ΛΟΓΙΚΩΝ ΕΛΕΓΚΤΩΝ

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

ΑΝΤΙΡΡΥΠΑΝΤΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΑΙΩΡΟΥΜΕΝΩΝ ΣΩΜΑΤΙΔΙΩΝ Ενότητα 2: Αιωρούμενα σωματίδια & Απόδοση συλλογής Αν. Καθ. Δρ Μαρία Α. Γούλα Τμήμα Μηχανικών

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Διοικητική Λογιστική

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Οικονομετρία Ι. Ενότητα 8: Κανονικότητα. Δρ. Χαϊδώ Δριτσάκη Τμήμα Λογιστικής & Χρηματοοικονομικής

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Τεχνικό Σχέδιο - CAD

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Συστήματα Πολυμέσων Ενότητα 4: Συμπίεση. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Σχεδίαση Δικτύων Υπολογιστών

Εκκλησιαστικό Δίκαιο

Transcript:

Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 7: Διαχείριση Μνήμης ΙΙ Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοποί ενότητας Ιστορία της Εικονικής Μνήμης. Αλγόριθμοι αντικατάστασης σελίδων. Βέλτιστη Αντικατάσταση. Πίνακας Σελίδων. Αλγόριθμος NRU (Not Recently Used). Αλγόριθμος του ρολογιού. Αλγόριθμος LRU. Αλγόριθμοι Αντικατάστασης Σελίδων (Σύνοψη). 4

Περιεχόμενα ενότητας Ιστορία της Εικονικής Μνήμης. Αλγόριθμοι αντικατάστασης σελίδων. Βέλτιστη Αντικατάσταση. Πίνακας Σελίδων. Αλγόριθμος NRU (Not Recently Used). Αλγόριθμος του ρολογιού. Αλγόριθμος LRU. Αλγόριθμοι Αντικατάστασης Σελίδων (Σύνοψη). 5

Ιστορία της Εικονικής Μνήμης (1/2) Τη δεκαετία 1940-1950, πριν την ανάπτυξη της εικονικής μνήμης, όλα τα ογκώδη προγράμματα έπρεπε να περιέχουν λογική διαχείρισης δύο επιπέδων μνήμης επειδή δεν μπορούσαν να είναι εξ ολοκλήρου φορτωμένα στη RAM του υπολογιστή Αυτό σημαίνει ότι ο προγραμματιστής θα έπρεπε να κάνει το πρόγραμμα να πιάνει όσο χώρο μπορεί στη μνήμη και όταν γεμίσει και δει ότι χρειάζεται να φορτώσει κι άλλα δεδομένα, να διαγράφει τα παλιά από τη μνήμη για να πάρουν τη θέση τους τα καινούρια Λόγω της ανάγκης για multitasking, πολλά συστήματα είχαν από νωρίς την ικανότητα να χωρίζουν τη μνήμη μεταξύ των προγραμμάτων, ακόμα και χωρίς εικονική μνήμη 6

Ιστορία της Εικονικής Μνήμης (2/2) Η σελιδοποίηση αναπτύχθηκε πρώτα στο πανεπιστήμιο του Manchester ως ένας φτηνός τρόπος να επεκτείνουν τη μνήμη του υπολογιστή Atlas από τις 16000 λέξεις (48-bit η κάθε λέξη) σε 96000 επιπλέον λέξεις σε μαγνητικό μέσο αποθήκευσης Όπως πολλές τεχνολογίες στην ιστορία των υπολογιστών, η εικονική μνήμη δεν έγινε εύκολα αποδεκτή Η μετάφραση εικονικών διευθύνσεων απαιτούσε ακριβό και εξειδικευμένο υλικό, που ήταν δύσκολο να κατασκευαστεί Ακόμα, αρχικές υλοποιήσεις καθυστερούσαν ελαφρώς την πρόσβαση στη μνήμη Υπήρχαν, επίσης, ανησυχίες ότι οι αλγόριθμοι γενικής χρήσης θα ήταν λιγότερο αποδοτικοί από τους εξειδικευμένους που χρησιμοποιούσε η κάθε εφαρμογή Γι αυτό, πριν να υλοποιηθεί στα κυρίαρχα υπολογιστικά συστήματα, έπρεπε να αναπτυχθούν πολλές θεωρίες και μοντέλα και να γίνουν πολλά πειράματα για να ξεπεραστούν αυτά τα προβλήματα Το 1969, μία ερευνητική ομάδα της IBM με επικεφαλής τον David Sayre απέδειξε ότι το σύστημά τους με χρήση εικονικής μνήμης δούλευε συνεπώς πιο γρήγορα από τα καλύτερα συστήματα στα οποία η κάθε εφαρμογή είναι υπεύθυνη για τη διαχείριση της μνήμης 7

Αλγόριθμοι αντικατάστασης σελίδων Το Λ.Σ. θα μπορούσε να αντικαθιστά συνέχεια την πρώτη σελίδα στη μνήμη ή να διαλέγει μία σελίδα στην τύχη. Αυτό όμως θα οδηγούσε σε πάρα πολλά page faults, δηλαδή πολλές καθυστερήσεις. Εάν για παράδειγμα αντικατασταθεί μία σελίδα η οποία χρησιμοποιείται πολύ συχνά είναι πολύ πιθανό ότι θα χρειαστεί να επανέλθει στην μνήμη πολύ σύντομα. Γι αυτό έχουν σχεδιαστεί αλγόριθμοι που θα παίρνουν αυτή την απόφαση, προσπαθώντας να οδηγήσουν σε όσο λιγότερα page faults μπορούν. 8

Βέλτιστη Αντικατάσταση (1/4) Εάν γνωρίζαμε πότε στο μέλλον πρόκειται να χρησιμοποιηθεί κάθε σελίδα τότε το ιδανικό θα ήταν να αντικατασταθεί αυτή που πρόκειται να χρησιμοποιηθεί τελευταία. Ένας παρόμοιος αλγόριθμος (που όμως αφορά τον χρονοπρογραμματισμό) είναι ο αλγόριθμος που επιλέγει διεργασίες με βάση την διάρκεια της. Αδύνατο να υλοποιηθεί εφόσον το Λ.Σ. δεν μπορεί να έχει αυτή την πληροφορία. Χρησιμοποιείται σε simulators, σαν μέτρο αξιολόγησης άλλων αλγόριθμων. Για να δούμε πόσα σφάλματα σελίδων θα προκύψουν με αυτό τον αλγόριθμο τρέχουμε ένα πρόγραμμα και παρατηρούμε με ποια σειρά χρειάζονται οι σελίδες και άρα την 2η φορά που ξανατρέχουμε το ίδιο πρόγραμμα τότε η σειρά χρήσης των σελίδων είναι γνωστή. Οι υπόλοιποι αλγόριθμοι προσπαθούν να μαντέψουν τη μελλοντική συμπεριφορά βασισμένοι σε δεδομένα του παρελθόντος. 9

Βέλτιστη Αντικατάσταση (2/4) Έστω: Ότι διαθέτουμε μνήμη χωρητικότητας 4 σελίδων. Συγκεκριμένο πρόγραμμα με συγκεκριμένες εισόδους (που θα ξαναχρησιμοποιηθούν για να πάρουμε ακριβώς τα ίδια αποτελέσματα, δηλαδή την κλήση σελίδων με την ίδια σειρά). Καλεί με τη σειρά τις σελίδες. 1 2 3 4 6 3 2 5 6 3 1 6 3 4 2 5. Κρατάμε αυτή την πληροφορία και τη χρησιμοποιούμε για να φτιάξουμε τη βέλτιστη αντικατάσταση. Στον πίνακα που ακολουθεί: Η πρώτη γραμμή δείχνει με τη σειρά τις σελίδες που καλούνται. Η δεύτερη γραμμή δείχνει πότε συμβαίνει ένα page fault. Οι υπόλοιπες γραμμές παριστάνουν τη μνήμη και δείχνουν τα περιεχόμενά της καθώς αυτά αλλάζουν με την κλήση σελίδων. 10

Βέλτιστη Αντικατάσταση (3/4) Εικόνα 1: Βέλτιστη αντικατάσταση. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 11

Βέλτιστη Αντικατάσταση (4/4) Η μνήμη στην αρχή είναι άδεια. Οι πρώτες τέσσερις κλήσεις σελίδων καταλαμβάνουν τις πρώτες άδειες θέσεις που βρίσκουν. Όταν καλείται η σελίδα 6 για πρώτη φορά δεν υπάρχουν άδειες θέσεις και η σελίδα 6 δεν είναι φορτωμένη, άρα πρέπει να φύγει κάποια. Όπως βλέπουμε, οι σελίδες 1, 2 και 3 θα κληθούν πριν την 4, οπότε η 4 θα αντικατασταθεί. Οι σελίδες 3 και 2 που ακολουθούν είναι ήδη φορτωμένες. Για την κλήση της σελίδας 5 πρέπει να αδειάσουμε μία θέση πάλι. Οι σελίδες 1, 3 και 6 θα κληθούν πριν τη 2, οπότε η 2 θα αντικατασταθεί κλπ. 12

Πίνακας Σελίδων Κάθε διεργασία έχει τον δικό της πίνακα σελίδων. Κάθε στοιχείο του πίνακα αντιστοιχεί μία εικονική σελίδα σε μία πραγματική. Οι εγγραφές που μας ενδιαφέρουν έχουν τις εξής πληροφορίες: Ενημέρωση (modified bit). Δείχνει εάν η σελίδα έχει τροποποιηθεί από την τελευταία φορά που φορτώθηκε στη μνήμη. Αν το bit αυτό είναι 1 τότε η σελίδα γράφεται στο swap space όταν χρειάζεται να αντικατασταθεί, αλλιώς δεν χρειάζεται αυτό το disk write που είναι μια χρονοβόρα διαδικασία. Αναφορές (referenced bit). Γίνεται 1 κάθε φορά που η σελίδα χρησιμοποιείται από αλγόριθμους αντικατάστασης σελίδων για να αποφασιστεί ποια σελίδα ("θύμα") θα αντικατασταθεί. Εικόνα 2: Πίνακας σελίδων. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 13

Αλγόριθμοι Αντικατάστασης Σελίδων Αλγόριθμος NRU (Not Recently Used). Το Λ.Σ. χρησιμοποιεί δύο bits κατάστασης ανά σελίδα ώστε να συλλέγει στατιστικά για το ποιες σελίδες χρησιμοποιούνται και ποιες όχι. Κάθε φορά που γίνεται αναφορά στη σελίδα (read ή write) το R bit (Reference) γίνεται 1 και όταν τροποποιείται (write) το Μ bit (Modification) γίνεται 1 Περιοδικά (π.χ. ανά clock interrupts = 20ms) τα R bits μηδενίζονται ώστε να ξέρει το Λ.Σ. αν αυτή η σελίδα έχει χρησιμοποιηθεί πρόσφατα ή όχι. Τα M bits μηδενίζονται μόνο κατά την αντικατάσταση της σελίδας και όχι σε κάθε clock interrupt γιατί αυτή η πληροφορία είναι κριτήριο για το εάν η σελίδα θα αντιγραφεί στο δίσκο ή όχι. Χρησιμοποιούνται λοιπόν για να ξέρει το Λ.Σ. αν η σελίδα χρειάζεται ενημέρωση στον δίσκο πριν την αντικαταστήσει από την μνήμη. 14

Αλγόριθμος NRU (Not Recently Used) (1/3) Ο NRU κατηγοριοποιεί τις σελίδες βάσει αυτών των bits σε: Κατηγορία 0: R=0, M=0. Κατηγορία 1: R=0, M=1. Κατηγορία 2: R=1, M=0. Κατηγορία 3: R=1, M=1. Στην κατηγορία 1 ανήκουν οι σελίδες στις οποίες είχε γίνει αναφορά σε προηγούμενο κύκλο ρολογιού (δηλαδή σε προηγούμενο κύκλο ήταν κατηγορία 3 αλλά στο clock interrupt το R μηδενίστηκε). Κάθε φορά που συμβαίνει page fault, το Λ.Σ. ψάχνει και αντικαθιστά τυχαία μία σελίδα απ αυτές που βρήκε στην κατηγορία με το μικρότερο αριθμό. Παρατηρούμε ότι ο αλγόριθμος προτιμά να αντικαταστήσει μία τροποποιημένη σελίδα με δεν έχει χρησιμοποιηθεί πρόσφατα από μία μη τροποποιημένη που χρησιμοποιείται συχνά. 15

Αλγόριθμος NRU (Not Recently Used) (2/3) Έστω ότι έχουμε στη μνήμη τις σελίδες: Σελίδα 1: R=1, M=0. Σελίδα 3: R=1, M=1. Σελίδα 4: R=0, M=0. Σελίδα 6: R=0, M=1. Ένα πρόγραμμα ζητάει τη σελίδα 5, η οποία δεν υπάρχει στη μνήμη, άρα προκαλεί page fault. Θα αντικατασταθεί η σελίδα 4 γιατί ανήκει στην κατηγορία 0. Δεν έχει χρησιμοποιηθεί πρόσφατα και δεν έχει τροποποιηθεί, άρα μπορεί να αφαιρεθεί πιο εύκολα απ όλες. 16

Αλγόριθμος NRU (Not Recently Used) (3/3) Αν στο ίδιο παράδειγμα οι σελίδες είχαν τα bits R και M ως εξής: Σελίδα 1: R=1, M=0. Σελίδα 3: R=0, M=1. Σελίδα 4: R=1, M=1. Σελίδα 6: R=0, M=1. Θα αντικατασταθεί η σελίδα 3 ή η σελίδα 6 γιατί ανήκουν και οι δύο στην κατηγορία 1 και στη μνήμη δεν υπάρχει καμία σελίδα της κατηγορίας 0. 17

Αλγόριθμοι Αντικατάστασης Σελίδων (1/2) Αλγόριθμος FIFO (First In First Out): Ο απλούστερος αλγόριθμος στην υλοποίηση. Κάθε φορά αντικαθίσταται η σελίδα που έχει παραμείνει στη μνήμη το μέγιστο χρονικό διάστημα. Η υλοποίησή του απαιτεί τη χρήση μίας ουράς. Κάθε νέα σελίδα τοποθετείται στο τέλος της ουράς. Η παλαιότερη βρίσκεται στην αρχή και άρα θα φύγει πρώτη. 18

Αλγόριθμοι Αντικατάστασης Σελίδων (2/2) Εικόνα 3: Αλγόριθμοι αντικατάστασης σελίδων. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 19

Αλγόριθμος FIFO (First In First Out) Με τις κλήσεις των σελίδων γεμίζει η μνήμη και καλείται η σελίδα 6 και πρέπει να αντικαταστήσει κάποια. Στη μνήμη υπάρχουν οι σελίδες 1, 2, 3 και 4. Παλαιότερη απ αυτές είναι η 1, οπότε και θα αντικατασταθεί απ την 6. Οι σελίδες 3 και 2 που καλούνται μετά είναι ήδη στη μνήμη. Η σελίδα 5 που καλείται μετά δεν είναι. Τώρα η παλαιότερη σελίδα της μνήμης είναι η σελίδα 2, οπότε τη θέση της θα πάρει η 5 κλπ. 20

Αλγόριθμοι Αντικατάστασης Σελίδων (1/5) Page Replacement Algorithm Simulation του SamSol. Ένα πρόγραμμα που προσομοιώνει τον αλγόριθμο FIFO (και τον LRU). Είναι γραμμένο σε java και μπορείτε να το κατεβάσετε και να το χρησιμοποιήσετε δωρεάν. http://www.planetsourcecode.com/vb/scripts/showcode.asp?t xtcodeid=5924&lngwid=2#zip 21

Αλγόριθμοι Αντικατάστασης Σελίδων (2/5) Εικόνα 4: Αλγόριθμοι αντικατάστασης σελίδων. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 22

Αλγόριθμοι Αντικατάστασης Σελίδων (3/5) Page Replacement Algorithm Simulation: 1. Επιλογή αλγορίθμου (FIFO ή LRU). 2. Ο αριθμός των σελίδων που θέλετε να χωράει η κύρια μνήμη (πρέπει ναπατήσετε το κουμπί Set για να καταχωρηθεί). 3. Επιλογή του αριθμού της σελίδας που θέλετε να κληθεί μετά και προσθήκη της στην ουρά με το κουμπί Add. 4. Το πλήθος των σελίδων που θα κληθούν σ αυτή την προσομοίωση (φαίνονται αναλυτικά ακριβώς από πάνω). 5. Το πλήθος των σελίδων που κλήθηκαν ενώ ήταν ήδη φορτωμένες στην κύρια μνήμη. 6. Το πλήθος των σελίδων που προκάλεσαν page fault. 7. Δεν είναι ούτε ο πίνακας σελίδων (όπως λέει), ούτε η κύρια μνήμη. Παρουσιάζει τα περιεχόμενα της κύριας μνήμης, αλλά όχι όπως θα ήταν σε αυτήν. Ταξινομούνται σε κάθε βήμα έτσι ώστε η σελίδα με τη μεγαλύτερη προτεραιότητα για διαγραφή να είναι στην τελευταία γραμμή (φαίνεται καλύτερα στον LRU). 8. Μπορείτε να προσθέσετε όσες σελίδες θέλετε στην ουρά, αλλά δε θα δείτε τα αποτελέσματα μέχρι να πατήσετε το κουμπί Simulate. 23

Αλγόριθμοι Αντικατάστασης Σελίδων (4/5) Εικόνα 5: Αλγόριθμοι αντικατάστασης σελίδων. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 24

Αλγόριθμοι Αντικατάστασης Σελίδων (5/5) Αλγόριθμος FIFO (First In First Out): 11 page faults γιατί προσμετρά και τις 4 πρώτες σελίδες. 5 page hits γιατί 5 φορές καλούνται σελίδες που είναι ήδη φορτωμένες. Σημείωση: σε κάθε βήμα οι σελίδες ταξινομούνται έτσι ώστε η σελίδα με τη μεγαλύτερη προτεραιότητα για διαγραφή να είναι στην τελευταία γραμμή. Όπως είδαμε δεν είναι αποδοτικός. Φυσιολογικό, αφού η παλαιότερη σελίδα μπορεί να χρησιμοποιείται ακόμα και να ξανακληθεί αμέσως μόλις αντικατασταθεί. Γι αυτό ο αλγόριθμος FIFO δε χρησιμοποιείται σχεδόν ποτέ στην καθαρή μορφή του. 25

Αλγόριθμος αντικατάστασης σελίδας της 2ης ευκαιρίας (1/2) Παραλλαγή του FIFO. Για την πιο παλιά σελίδα, εξετάζεται το Bit αναφοράς. Εάν Α = 1, η σελίδα έχει χρησιμοποιηθεί, οπότε της δίδεται μία 2η ευκαιρία. Παραμένει αλλά το bit αναφοράς αλλάζει (Α =0). και η σελίδα μεταφέρεται στο τέλος της λίστας. 26

Αλγόριθμος αντικατάστασης σελίδας της 2ης ευκαιρίας (2/2) Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 27

Αλγόριθμος του ρολογιού (1/2) Οι σελίδες διατηρούνται σε μία κυκλική λίστα (ρολόι). Ένας δείκτης δείχνει στην παλαιότερη σελίδα της λίστας. Μετακινείται μόνο ο δείκτης κ δεν αλλάζουν θέση οι κόμβοι της λίστας που αναπαριστούν σελίδες. Όταν γίνεται αναφορά σε μία σελίδα το R bit της γίνεται 1. Όταν συμβεί page fault εξετάζουμε τη σελίδα στην οποία δείχνει ο δείκτης. Αν το R bit της είναι 1, γίνεται 0 και ο δείκτης δείχνει στην επόμενη σελίδα. Αντικαθίσταται η πρώτη σελίδα που συναντάται και το R bit της είναι 0. 28

Αλγόριθμος του ρολογιού (2/2) Εικόνα 6: Αλγόριθμος του ρολογιού. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 29

Αλγόριθμος LRU (Least Recently Used) (1/9) Καλή προσέγγιση του βέλτιστου αλγόριθμου. Βασίζεται στην παρατήρηση ότι οι σελίδες που χρησιμοποιήθηκαν πολύ στις τελευταίες εντολές θα χρησιμοποιηθούν πιθανόν πολύ και στις επόμενες. Αντίστοιχα σελίδες που δεν έχουν χρησιμοποιηθεί για μακρύ διάστημα είναι πιθανό να μην χρειαστούν σύντομα. Αντικαθιστά τη σελίδα η οποία δεν έχει χρησιμοποιηθεί για το μεγαλύτερο χρόνο σε σχέση με τις υπόλοιπες σελίδες. Μέθοδοι υλοποίησης: Χρήση λίστας. Χρήση μετρητή. Χρήση πίνακα. 30

Αλγόριθμος LRU (Least Recently Used) (2/9) Χρήση λίστας: Χρειάζεται μία συνδεδεμένη λίστα με όλες τις σελίδες που βρίσκονται στη μνήμη. Η σελίδα που χρησιμοποιήθηκε πιο πρόσφατα βρίσκεται στην αρχή της λίστας. Η σελίδα που χρησιμοποιήθηκε λιγότερο πρόσφατα βρίσκεται στο τέλος της λίστας. Για να το πετύχουμε αυτό, πρέπει να ενημερώνουμε τη λίστα κάθε φορά που χρησιμοποιείται μια σελίδα (μία χρονοβόρα διαδικασία) Η ενημέρωση της λίστας επιτυγχάνεται ψάχνοντας όλη τη λίστα μέχρι να βρούμε τη σελίδα που χρησιμοποιήθηκε και να τη μετακινήσουμε στην αρχή. Αυτό καταναλώνει σημαντικό μέρος των πόρων ενώ οι σελίδες είναι ήδη στη Μνήμη. Δηλαδή ένα πρόγραμμα που χρησιμοποιεί λίγες σελίδες (ώστε να είναι όλες ταυτόχρονα φορτωμένες στη μνήμη) τρέχει πιο αργά επειδή χρειάζεται συνέχεια ενημέρωση η λίστα, ακόμα κι όταν δε συμβαίνει page fault. Όταν συμβαίνει page fault, αντικαθιστούμε τη σελίδα που βρίσκεται στο τέλος της λίστας. 31

Αλγόριθμος LRU (Least Recently Used) (3/9) Χρήση μετρητή: Χρειάζεται να εξοπλίσουμε το υλικό με έναν μετρητή. Κάθε καταχώρηση στον πίνακα σελίδων πρέπει να έχει ένα πεδίο αρκετά μεγάλο για να χωράει το μετρητή. Κάθε φορά που χρησιμοποιείται μία σελίδα, η τιμή του μετρητή αποθηκεύεται στο πεδίο της καταχώρησης όπου μόλις έγινε αναφορά. Όταν συμβεί page fault ελέγχουμε τα πεδία για όλες τις καταχωρήσεις και η σελίδα με τη μικρότερη τιμή στο πεδίο του μετρητή θα αντικατασταθεί. 32

Αλγόριθμος LRU (Least Recently Χρήση πίνακα: Used) (4/9) Αν έχουμε μνήμη που χωράει N σελίδες χρειαζόμαστε έναν πίνακα NxN bit και όλα τα bit παίρνουν αρχική τιμή μηδέν. Όποτε γίνεται αναφορά σε μία σελίδα k δίνουμε σε όλα τα bit της γραμμής k την τιμή 1. ΜΕΤΑ δίνουμε σε όλα τα bit της στήλης k την τιμή 0. Όποτε συμβαίνει page fault συγκρίνουμε τους δυαδικούς αριθμούς που σχηματίζονται στις στήλες και αντικαθιστούμε τη σελίδα της οποίας η στήλη έχει το μικρότερο. 33

Αλγόριθμος LRU (Least Recently Used) (5/9) Παράδειγμα: Η μνήμη χωράει 4 σελίδες. Οι αναφορές στις σελίδες γίνονται με την εξής σειρά: 0 1 2 3 2 1 0 3 2 3. Κάθε φορά η στήλη της σελίδας που μόλις κλήθηκε θα βγάζει αριθμό 0, άρα θα είναι ο μικρότερος, καθώς οι άλλες στήλες θα έχουν τουλάχιστον ένα 1 κάπου. α) σελίδα 0 (με αριθμό 0 στο δεκαδικό) < σελίδα 1 (με αριθμό 8 στο δεκαδικό) = σελίδα 2 (8) = σελίδα 3 (8) β) 1 (0) < 0 (4) < 2 (12) = 3 (12) γ) 2 (0) < 1 (2) < 0 (6) < 3 (14) δ) 3 (0) < 2 (1) < 1 (3) < 0 (7) ε) 2 (0) < 3 (2) < 1 (3) < 0 (7) Κλπ. 34

Αλγόριθμος LRU (Least Recently Used) (6/9) Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 35

Αλγόριθμος LRU (Least Recently Used) (7/9) Με τη χρήση πίνακα και με τη χρήση μετρητή έχουμε σημαντικά μικρότερη καθυστέρηση από τη χρήση λίστας για την ενημέρωση των καταχωρήσεων. Χρειάζεται όμως επεξεργασία για να βρεθεί η κατάλληλη σελίδα όταν συμβαίνειpage fault. Αλλά αυτό δεν είναι τίποτα μπροστά στην καθυστέρηση που προκαλείται καθώς οι σελίδες μεταφέρονται από την εικονική μνήμη (σκληρός) στην πραγματική μνήμη (RAM). 36

Αλγόριθμος LRU (Least Recently Used) (8/9) Εικόνα 7: Αλγόριθμος LRU. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 37

Αλγόριθμος LRU (Least Recently Used) (9/9) Οι πρώτες 4 κλήσεις γεμίζουν τη μνήμη διαδοχικά. Η κλήση της σελίδας 6 προκαλεί page fault. Στη μνήμη υπάρχουν οι σελίδες 1, 2, 3 και 4. Οι σελίδες 2, 3 και 4 είχαν κληθεί πιο πρόσφατα από την 1, οπότε η 1 θα αντικατασταθεί. Οι σελίδες 3 και 2 που καλούνται στη συνέχεια υπάρχουν ήδη στη μνήμη. Η σελίδα 5 δεν υπάρχει και προκαλεί page fault. Στη μνήμη υπάρχουν οι σελίδες 6, 2, 3 και 4 Οι σελίδες 2, 3 και 6 είχαν κληθεί πιο πρόσφατα από την 4, άρα η 4 θα αντικατασταθεί. 38

Αλγόριθμοι Αντικατάστασης Σελίδων (Παράδειγμα) Εικόνα 8: Αλγόριθμοι αντικατάστασης σελίδων. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 39

Αλγόριθμοι Αντικατάστασης Σελίδων (Σύνοψη) Εικόνα 9: Αλγόριθμοι αντικατάστασης σελίδων. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 40

Βιβλιογραφία 1. Tanenbaum κεφάλαιο 3 Πηγή των διαφανειών τα slides από τα βιβλία και τα online-tutorials των : 1. Α. Tanenbaum. 2. W. Stallings. Καθώς και οι online σημειώσεις των 1. Π. Κοτζανικολάου. 2. Κ. Λαμπρινουδάκη. 3. Κ. Μαργαρίτη. 4. Γ. Παπαδόπουλου. 5. Χ. Μανιφάβα. Αll material copyright 1996-2012 All Rights Reserved..41

Τέλος Ενότητας

Σημείωμα Αναφοράς Copyright ΤΕΙ Δυτικής Μακεδονίας, Φραγκούλης Γεώργιος. «Εισαγωγή στα Λειτουργικά Συστήματα». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: URL.

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο. που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο. που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο. Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 44

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς. το Σημείωμα Αδειοδότησης. τη δήλωση Διατήρησης Σημειωμάτων. το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει). μαζί με τους συνοδευόμενους υπερσυνδέσμους. 45

Σημείωμα Χρήσης Έργων Τρίτων Το Έργο αυτό κάνει χρήση των ακόλουθων έργων: Εικόνες/Σχήματα/Διαγράμματα/Φωτογραφί ες: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος. 46