Λειτουργικά Συστήματα (ΗΥ321)

Σχετικά έγγραφα
Λειτουργικά Συστήματα (ΗΥ321)

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Λειτουργικά Συστήματα (ΗΥ321)

ΤΜΗΜΑ ΜΗΥΤΔ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (ΗΥ222) ΔΙΔΑΣΚΩΝ: ΧΡΗΣΤΟΣ Δ. ΑΝΤΩΝΟΠΟΥΛΟΣ Τελική Εξέταση Σεπτεμβρίου 2009, Χρόνος: 2:30

πίνακας σελίδων Bit Παρουσίας Αριθμός Πλαισίου

Λειτουργικά Συστήματα (ΗΥ222)

Λειτουργικά Συστήματα (ΗΥ321)

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

Εικονική Μνήμη (Virtual Memory)

Λειτουργικά Συστήματα (ΗΥ321)

Σελίδα Φορτώθηκε Προσπελάστηκε Συχνότητα R Μ (dirty)

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

Λειτουργικά Συστήματα (ΗΥ321)

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

Η ιεραρχία της μνήμης

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

Λειτουργικά Συστήματα (ΗΥ321)

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

3. Προσομοίωση ενός Συστήματος Αναμονής.

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory)

Δομή Ηλεκτρονικού υπολογιστή

Κεφάλαιο 3. Διδακτικοί Στόχοι

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

Chapter 4 ( ή 1 στο βιβλίο σας)

Κεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 5. Μεγάλη και γρήγορη: Αξιοποίηση της ιεραρχίας της µνήµης

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α ΤΑΞΗ

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 4: Ρουτίνες καθυστέρησης. [Συγγραφή ρουτίνας καθυστέρησης]

ΠΛΕ- 027 Μικροεπεξεργαστές

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης II

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Λειτουργικά Συστήματα (ΗΥ321)

Κατακερματισμός (Hashing)

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Ο Μπούκλας παίζει και μουσική όταν στην πράσινη σημαία γί νει κλικ. αίξε ήχο _ χρι τέλους περίμενε για _ χρόνους. περίμενε για δευτερόλεπτα.

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Λειτουργικά Συστήματα (ΗΥ321)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 5: Εξωτερικές διακοπές του 8051

Χρόνος Εκτέλεσης. Αρχική Προτεραιότητα Α Β Γ Α 4 1 3

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run

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

Προγραμματισμός Ι (HY120)

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

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

Lego WeDo - Αεροπλάνο

Πατώντας την επιλογή αυτή, ανοίγει ένα παράθυρο που έχει την ίδια μορφή με αυτό που εμφανίζεται όταν δημιουργούμε μία μεταβλητή.

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Προγραμματισμός συστημάτων UNIX/POSIX. Χρονομέτρηση

Πανεπιστήµιο Θεσσαλίας

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Εικονική Μνήµη (Virtual Memory)

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

Λύση: Λύση: Λύση: Λύση:

Άσκηση 9 Μελέτη στροφικής κίνησης στερεού σώματος

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης II

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

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Απόδοση Υπολογιστικών Συστημάτων

Λίστες στο Scratch 2.0.

Φύλλο εργασίας 1 Εισαγωγή στη Ρομποτική

Εικονική Μνήμη (1/2)

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Transcript:

Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 9: Πολιτικές Αντικατάστασης Σελίδων - Λυγισμός (Thrashing)

Η Απόλυτη LRU 2 Σε κάθε αναφορά στη μνήμη «Χρονοσφράγισε» το πλαίσιο Την ώρα της έξωσης: Ψάξε για την παλαιότερη χρονοσφραγίδα Προβλήματα: Χώρος για λογιστικά Στην πράξη οι χρονοσφραγίδες δεν υποστηρίζονται από το υλικό Ας βάλουμε λίγο νερό στο κρασί μας Θέλω κάτι απλό και γρήγορο που να βρίσκει «παλιές» σελίδες Εξάλλου δεν έχει σημασία και το πολύ μακρυνό παρελθόν

Ο Αλγόριθμος Ρολογιού (Δεύτερης Ευκαιρίας) 3 Ένα bit αναφοράς (ref bit) ανά σελίδα στον πίνακα σελίδων Το υλικό το θέτει όταν ακουμπά τη σελίδα, το ΛΣ το σβήνει περιοδικά Οι σελίδες που έχουν το bit 1 έχουν χρησιμοποιηθεί πιο πρόσφατα από αυτές που το έχουν 0! Αλγόριθμος αντικατάστασης: FIFO, αλλά αγνόησε τις σελίδες με bit αναφοράς 1 Κράτησε τις σελίδες σε μια κυκλική λίστα Αναζήτηση: Αν το ref bit = 1, κάντο 0 & άφησε τη σελίδα, διαφορετικά διώξτη. Τι συμβαίνει αν Γυρίζουμε γρήγορα; Γυρίζουμε αργά; R=1 R=0 R=0 R=1 R=0 R=1 R=0 R=1 R=1 R=1 R=0

Ρολόι με 2 Δείκτες 4 Και αν έχουμε πολύ μεγάλη μνήμη; Μήπως βρίσκουμε σχεδόν όλα τα ref bits 1; Αν είναι όλα 1; Πίσω στη FIFO Λύση: Άλλος ένας δείκτης στο ρολόι Ο πρώτος μηδενίζει τα ref bits Ο δεύτερος (κάποιες σελίδες πίσω) απομακρύνει τις σελίδες που έχουν το ref bit ακόμα 0 Τι κάναμε ουσιαστικά; Προβλήματα: Αν η γωνία είναι πολύ μικρή; Αν η γωνία είναι πολύ μεγάλη; R=1 R=0 R=0 R=1 R=0 R=1 R=0 R=1 R=1 R=1 R=0

Μια Μικρή Βελτίωση 5 Μην πετάξεις τίποτα!!! Καμία πληροφορία από το bit αλλαγής (modified) Αν δύο σελίδες έχουν το bit προσπέλασης 0, ποια να προτιμήσω για έξωση; Αυτή που έχει το modified bit 0 Γιατί;

Άλλη μια Μικρή Βελτίωση; 6 Χρησιμοποίησε n bits αντί για 1 Μεγαλύτερη ακρίβεια! Πού να τα αποθηκεύσω; Στο H/W ακριβό (δεν υποστηρίζεται) Άρα στο S/W use_count = (ref bit << n-1) (use_count >> 1) Γιατί shift δεξιά; Ποια σελίδα διώχνω; Αυτή με το μικρότερο use_count

Ακόμα μια Βελτίωση (ουφ ) 7 Πότε ψάχνω για ελεύθερα πλαίσια; Όταν χρειαστούν Αργό (πρέπει και να γράψω τα περιεχόμενα του πλαισίου στο δίσκο, αν τα περιεχόμενά του έχουν αλλαχθεί) Προληπτικά Κράτησε μια «ρεζέρβα» από ελεύθερα πλαίσια Χρησιμοποίησέ τα με σειρά FIFO Μην ξεχάσεις όμως σε ποια σελίδα αντιστοιχεί κάθε ελεύθερο πλαίσιο Αν ξαναχρειαστεί αυτή η σελίδα χρησιμοποίησε το αντίστοιχο πλαίσιο από τη ρεζέρβα Πόσα πλαίσια στη ρεζέρβα; Δείκτες (πάνω και κάτω)

Αντικατάσταση σε Επίπεδο Διεργασίας ή Συστήματος; 8 Ως τώρα: Μία δεξαμενή πλαισίων για όλες τις διεργασίες (επίπεδο συστήματος) Ποιο πλαίσιο να αντικαταστήσω; Το παλαιότερο στο σύστημα Καλό; Ναι, οι διαμοιραζόμενοι πόροι αξιοποιούνται γενικά καλύτερα! Π.χ. μία διεργασία θέλει το 70% της μνήμης, και μια άλλη το 20%. Κανένα πρόβλημα! Και πώς προστατεύομαι από τους «κακούς»; (απομόνωση) Αν μια διεργασία πάει να προσπελάσει έναν πίνακα στο μέγεθος της κύριας μνήμης;

Τοπική Αντικατάσταση (Επίπεδο Διεργασίας / Χρήστη) 9 Ίδια λογική Κάθε διεργασία / χρήστης έχει μια δεξαμενή από πλαίσια Ουκ επιθυμήσεις το πλαίσιον του πλησίον σου Κάθε διεργασία / χρήστης μπορεί να χρησιμοποιήσει μόνο τα πλαίσια στη δεξαμενή του. Καλό; Απομόνωση (δε μας ενοχλούν οι «κακοί») Τι γίνεται με τη συνολική αξιοποίηση των πόρων; (πλαισίων) Πόσα πλαίσια σε κάθε διεργασία / χρήστη; Και αν χρειαστεί περισσότερα / λιγότερα; Μηχανισμός για την «αργή» μεταφορά πλαισίων μεταξύ διεργασιών / χρηστών Πόσο αργή; Πότε ενεργοποιείται;

Διαφορές VM και Cache; 10 Χρονοβελτίωση από cache: p: ποσοστό ευστοχίας στην cache μέσος χρόνος προσπέλασης = p * (χρόνος προσπέλασης στην cache) + (1-p) * (χρόνος προσπέλασης στο χαμηλότερο επίπεδο + επιβάρυνση αστοχίας στην cache) TLB και cache σε ταχύτητα κοντά στου επεξεργαστή Όχι πολύς χρόνος για κολπάκια Κόστος αστοχίας στην ιδεατή μνήμη Κοντά στο κόστος προσπέλασης στο δίσκο (τεράστιο) Συμφέρει να «πληρώσουμε» για πιο πολύπλοκες τεχνικές

Λυγισμός (Thrashing): To Ξεμπρόστιασμα της Ιδεατής Μνήμης Λυγισμός: Οι διεργασίες χρειάζονται (πραγματικά) περισσότερη μνήμη από τη διαθέσιμη Κάθε φορά που μια εκτελείται φέρνει σελίδες της στην κύρια μνήμη Για να το κάνει αυτό διώχνει άλλες σελίδες που θα χρειαστούν σύντομα στο μέλλον Οι διεργασίες τρώνε το χρόνο τους σε μεταφορές σελίδων Τρέχει λίγο, σφάλμα σελίδας, μπλοκάρει για πολύ κ.ο.κ. Χρησιμοποίηση Ι/Ο 100% Όλα τα άλλα όμως κάαααθονται Τι θέλαμε; Ιδεατή μνήμη μεγάλη σαν το δίσκο και γρήγορη σαν τη φυσική Τι πετυχαίνουμε; Μνήμη με χρόνο προσπέλασης ίσο με το χρόνο προσπέλασης του δίσκου 11

Πότε Συμβαίνει; Οι διεργασίες ζητούν «συχνά» σελίδες που δεν είναι στην κύρια μνήμη Τρώνε περισσότερο χρόνο περιμένοντας για I/O παρά κάνοντας δουλειά Τρεις λόγοι Κακό μοτίβο προσπέλασης. Μη επαναχρησιμοποίηση. Παρελθόν!= Μέλλον Διευθύνσεις Μοτίβο προσπέλασης Χρόνος 12 Επαναχρησιμοποίηση αλλά η διεργασία δε «χωράει» Απαιτήσεις Μatlab Μνήμη Επαναχρησιμοποίηση, κάθε διεργασία χωράει, αλλά όλες μαζί δε χωράνε Μνήμη

Με Αριθμούς 13 h: Ποσοστό ευστοχίας στη φυσική μνήμη aat: Μέσος χρόνος προσπέλασης mat: Χρόνος προσπέλασης στη μνήμη (~100 nsec) dat: Χρόνος προσπέλασης στο δίσκο (~10 msec) mo: Επιβάρυνση αστοχίας (έστω μικρή) aat = h*mat + (1-h)*(dat+mo) Aν h = 0.99 (μία στις 100 αναφορές πάει στο δίσκο) aat = 0.99*100nsec + 0.01*10.000.000nsec ~ 100μsec ~ 1000 φορές πιο αργό από την προσπέλαση στη μνήμη!!!

Και τι Κάνω αν Συμβεί σε Εμένα; 14 Οφείλεται σε 1 διεργασία; Περιόρισε τη ζημιά (απομόνωση διεργασίας, φωτιά και τσεκούρι ) Οφείλεται γενικώς στο φορτίο του συστήματος; Προσαρμόσου Πόση μνήμη χρειάζεται κάθε διεργασία; Μπορούμε να παίξουμε με τη χρονοδρομολόγηση; Αν εμφανιστούν νέες διεργασίες «ρίξε πόρτα» Εναλλακτικές (κοινωνικές λύσεις): Αγόρασε κι άλλη μνήμη Βρες τον «αγενή» και βάλε τις φωνές

Πώς να Λύσω το Πρόβλημα; 15 Ανάλογα πώς το βλέπεις Δε με φτάνει η «cache» (κύρια μνήμη) Η προσέγγιση του συνόλου εργασίας (λειτουργικού συνόλου / working set) Πόσο μεγάλη «cache» χρειάζεται η διεργασία για να προχωρήσει; ή πόση μνήμη χρειάζεται η διεργασία για να προχωρήσει με «λογικό» ρυθμό; (σύνολο εργασίας / λειτουργικό σύνολο) Τρέξε λοιπόν μόνο διεργασίες των οποίων οι απαιτήσεις είναι ικανοποιήσιμες! Δεν αξιοποιώ τη CPU Η προσέγγιση των σφαλμάτων σελίδας Κακός λόγος εργασίας προς διαχείριση Συχνότητα σφαλμάτων σελίδας (PFF): Σφάλματα σελίδας ανά εντολή Αν το PFF ανέβει πάνω από κάποιο όριο η διεργασία χρειάζεται παραπάνω μνήμη Αν δεν υπάρχει μνήμη, βγάλτη στο δίσκο Αν το PFF πέσει κάτω από κάποιο όριο, μπορείς να πάρεις μνήμη από τη διεργασία (δεν την αξιοποιεί)

Το Σύνολο Εργασίας (Working Set / Λειτουργικό Σύνολο) Μπορώ να ξέρω πόσες σελίδες θα χρειαστεί η διεργασία για να μη φτάσει σε λυγισμό; Και ποιες αν είναι δυνατό Τη γυάλινη σφαίρα!!! Τρυκ: Το σύνολο εργασίας: Οι σελίδες τις οποίες «άγγιξε» η διεργασία τις τελευταίες Τ μονάδες χρόνου Τ: Παράμετρος Χρήσεις: Αντικατάσταση σελίδων: Αντικατάστησε σελίδες εκτός του συνόλου εργασίας Χρονοδρομολόγηση: Τρέξε μια διεργασία μόνο αν μεγάλο μέρος του συνόλου εργασία της είναι στη μνήμη Διαμοίραση cache: Δώσε σε κάθε διεργασία αρκετή cache για να βάλει το σύνολο εργασίας της 16

Συλλογή Πλαισίων ανά Διεργασία (Μνήμες από το Παρελθόν ) 17 Κάθε διεργασία έχει ένα σύνολο πλαισίων Για την ικανοποίηση ενός σφάλματος σελίδας μπορεί να χρησιμοποιηθεί μόνο ένα πλαίσιο από αυτά που ανήκουν στη διεργασία Απομονώνει τις διεργασίες / Μειώνει τις αλληλεπιδράσεις μεταξύ τους P1 Σύνορο (φυσική μνήμη) P2 Πόσο μεγάλο σύνολο πλαισίων; Περίπου όσο και το σύνολο εργασίας της Αποτέλεσμα: Απομόνωση Καλή αξιοποίηση πόρων

Να και η Χρονοδρομολόγηση: Το Σύνολο «Ισορροπίας» (1/2) 18 Χωράει το άθροισμα των συνόλων εργασίας όλων των διεργασιών στη μνήμη; Ναι: ΟΚ, όλα όπως παλιά Όχι: Μην τις τρέχεις όλες μαζί, χώρισέ τις σε 2 ομάδες: Ενεργές: Το σύνολο εργασίας στην κύρια μνήμη Ανενεργές: Το σύνολο εργασίας συνειδητά εκτός μνήμης Σύνολο ισορροπίας: Ένωση (άθροισμα) των συνόλων εργασίας όλων των ενεργών διεργασιών

Να και η Χρονοδρομολόγηση: Το Σύνολο «Ισορροπίας» (2/2) 19 Χρονοδρομολογητής 1 ου επιπέδου: Μετακίνησε διεργασίες από το ενεργό στο ανενεργό σύνολο όσο σύνολο ισορροπίας <= κύρια μνήμη Πρέπει όμως και οι ανενεργές που και που να γίνονται ενεργές (και αντίστροφα) Αν γίνεται πολύ συχνά; Αν γίνεται πολύ σπάνια; Χρονοδρομολογητής 2 ου επιπέδου: Επιλέγει, όπως πριν, εργασίες για εκτέλεση από το ενεργό μόνο σύνολο Το σύνολο ισορροπίας πρέπει να ανανεώνεται διαρκώς Το σύνολο εργασίας κάθε διεργασίας ανανεώνεται διαρκώς

Και πώς Υπολογίζεται το Σύνολο Εργασίας; Άεργος χρόνος (idle time) σε κάθε πλαίσιο σελίδας Χρόνος υπολογισμού από την τελευταία προσπέλαση στη σελίδα Γιατί όχι πραγματικός χρόνος από την τελευταία προσπέλαση; Χρόνος > Τ: Σελίδα εκτός του συνόλου εργασίας Υπολογισμός: Διάτρεξη όλων των σελίδων της διεργασίας στην κύρια μνήμη Bit χρήσης 1; Κάνε το 0 και κάνε 0 τον άεργο χρόνο της σελίδας Bit χρήσης 0; Πρόσθεσε το διάστημα από την προηγούμενη διάτρεξη στον άεργο χρόνο της σελίδας Διάτρεξη τυπικά ανά κάποια δευτερόλεπτα To T είναι της τάξης του/ων λεπτού/ών 20

Προβλήματα (Κλασσικά ) 21 Πόσο είναι το T; Μαύρη μαγεία Αν είναι πολύ μικρό; Πολύ μεγάλο; Πώς το διαλέγουμε; Δοκιμή και λάθος Ευτυχώς συνήθως η συμπεριφορά δεν είναι ευαίσθητη στην τιμή του Τ Ποιες διεργασίες πρέπει να συνεισφέρουν περισσότερο στο σύνολο ισορροπίας; «Μεγάλες», ώστε να τελειώνουν γρήγορα; «Μικρές» ώστε να τρέχουμε πολλές «μαζί»; Τι γίνεται με τις κοινόχρηστες σελίδες; Πού χρεώνονται;

Και Ολίγη Τέχνη : Σύνολα Εργασίας Πραγματικών Προγραμμάτων 22 BT MG

Σύνολα Εργασίας Πραγματικών Προγραμμάτων 23 Φάσεις «Εκρήξεις» Μεταξύ Φάσεων LU Σταθερό Σύνολο Εργασίας N-Body

Πίσω στη Σελιδοποίηση (Πολιτικές Αντικατάστασης) 24 Αλγόριθμος λειτουργικού συνόλου: Αντικατέστησε κατά προτίμηση σελίδες που δεν είναι στο λειτουργικό σύνολο Από αυτές διάλεξε αυτή που έχει να χρησιμοποιηθεί για το μεγαλύτερο διάστημα (μεγάλος άεργος χρόνος) Πρόβλημα; Πρέπει να σαρωθούν κάθε φορά όλες οι σελίδες Λύση; Θυμάστε τον αλγόριθμο ρολογιού; Τι έκανε;

Αλγόριθμος WSClock για Αντικατάσταση Σελίδας Δεδομένα Άεργος χρόνος Bit χρήσης Bit μεταβολής (δε φαίνεται) Αλγόριθμος Ψάξε για σελίδες με bit χρήσης 0 Όταν περνάς από κάποια με bit χρήσης 1, κάνε το 0 και προχώρα στην επόμενη Από αυτές βρες κάποια με άεργο χρόνο > Τ Αν bit μεταβολής = 1, προγραμμάτισέ τη για εγγραφή στο δίσκο και πήγαινε στην επόμενη Βάλε και κάποιο όριο ανά κύκλο για να μη συμφορηθεί ο δίσκος Αν φτάσεις να σαρώσεις όλο το ρολόι και ακόμα ψάχνεις Αν έχει προγραμματιστεί έστω μία για εγγραφή, keep spinning Αν όχι, διάλεξε μία του λειτουργικού συνόλου στην «τύχη» με bit μεταβολής 0 Αν δεν υπάρχει, μία με bit μεταβολής 1 2084/1 1213/0 1620/0 1980/0 25 2020/1 2014/1

Πόσο Σημαντικό το Λειτουργικό Σύνολο; 26 Όχι τόσο πλέον Έγιναν οι σχεδιαστές ΛΣ καλύτεροι; Όχι, sorry Μην ειν το υλικό; Προφανές: Περισσότερη, φθηνότερη μνήμη Λιγότερο προφανές: Γρηγορότερη CPU, διεργασίες τελειώνουν γρηγορότερα άρα επιστρέφουν και τη μνήμη γρηγορότερα! Πάντα υπάρχουν αδηφάγες εφαρμογές πάντως