ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 3ο: Διαχείριση Μνήμης

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 3ο: Διαχείριση Μνήμης"

Transcript

1 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Κεφάλαιο 3ο: Διαχείριση Μνήμης 1

2 4.1 Απλή Διαχείριση O Διαχειριστής Μνήμης (ΔΜ) (memory manager) πρέπει να: ξέρει ποια διαμερίσματα της ΚΜ είναι κατειλλημένα μπορεί ν' αναθέτει μνήμη σε διεργασίες όταν την χρειάζονται παίρνει πίσω μνήμη που "ελευθερώνεται" από διεργασίες διαχειρίζεται την εναλλαγή (swapping) δηλ. τη μεταφορά (διαμερισμάτων) διεργασιών μεταξύ ΚΜ & δίσκου. Οι ΔΜ χωρίζονται σε κατηγορίες ανάλογα με το αν επιτρέπουν, σελιδοποίηση (paging), swapping (δηλ. μεταφορά τμημάτων ή ολόκληρων διεργασιών μεταξύ ΚΜ και δίσκου). Χωρίς swapping και paging ο ΔΜ είναι «απλός». 2

3 Μονοπρογραμματισμός (Monoprogramming) Η πιο απλή λύση: μόνο ένα process βρίσκεται στη ΚΜ κάθε φορά Η ΚΜ χωρίζεται σε 2 μέρη: ένα για το Λ.Σ. και ένα για το user process που τρέχει στη Κ.Μ. Μόλις ο χρήστης ζητήσει να τρέξει ένα πρόγραμμα, το Λ.Σ. το "φορτώνει" στη ΚΜ και το τρέχει Λ.Σ. user program Το monoprogramming δεν αρκεί στις πιο πολλές περιπτώσεις: I/O-bound jobs: το CPU υποαπασχολείται κακή απόδοση. Πολλές διαδραστικές διεργασίες: χρόνος απόκρισης πολύ μεγάλος. Πολλές εφαρμογές θέλουν την δυνατότητα δημιουργίας πολλών διεργασιών που τρέχουν "ταυτόχρονα". χρειαζόμαστε multiprogramming η δουλειά του Δ.Μ. γίνεται πολύ πιο δύσκολη 3

4 Μοντέλο για Ωφέλη Πολυπρογραμματισμού Έστω p η πιθανότητα ότι σε μια χρονική στιγμή μια διεργασία βρίσκεται στη κατάσταση αναμονής για Ε/Ε (I/O-wait) Έστω επίσης ότι υπάρχουν Ν τέτοια διεργασίες Το CPU utilization δίνεται από τη φόρμουλα: CPU utilization = 1 - p N με p = 80% το CPU utilization είναι: Ν CPU util. 20% 36% 49% 59% το multiprogramming έχει σοβαρές ευεργετικές συνέπειες. Σημείωση: Το παραπάνω μαθηματικό μοντέλο είναι υπεραπλουστευμένο; Γιατί; 4

5 ΔΜ με Σταθερά Διαμερίσματα (Partitions) Ένα «partition» μνήμης είναι σταθερού μεγέθους. Διαφορετικά partitions μπορεί να έχουν διαφορετικό μέγεθος. Το κάθε διαμέρισμα μπορεί να "φιλοξενεί" διεργασίες (το μέγεθος των οποίων πρέπει να είναι του μεγέθους του διαμερίσματος). Ο Δ.Μ. διατηρεί μια ουρά από διεργασίες που περιμένουν να εισέλθουν σ' ένα διαμέρισμα. Μπορεί να υπάρχει μια ουρά για όλα τα διαμερίσματα ή μια ουρά για κάθε διαμέρισμα. Στη τελευταία περίπτωση μπορεί να υπάρχει διαθέσιμη μνήμη και να μη χρησιμοποιείται. Στη 1η περίπτωση ο Δ.Μ. πρέπει να προσέξει να μην σπαταλάει μνήμη. 5

6 ΔΜ με Σταθερά διαμερίσματα (Partitions) Παράδειγμα: Αν ένα μικρό process μπει στο διαμέρισμα 3, τότε αν και υπάρχει πολύ διαθέσιμος χώρος σε αυτό το διαμέρισμα δεν μπορεί να χρησιμοποιηθεί. Αυτό ονομάζεται εσωτερικός κατακερματισμός (internal fragmentation). Η λύση σ' αυτό το πρόβλημα δεν είναι προφανής. Για παράδειγμα αν κάθε φορά ο Δ.Μ. ψάχνει για το process στην ουρά που ελαχιστοποιεί τον εσωτερικό κατακερματισμό, τότε μικρές διεργασίες θα αδικούνται (λιμοκτονούν) -- θυμηθείτε τα πλεονεκτήματα του SJF αλγόριθμου και ότι μικρές, διαδραστικές διεργασίες πρέπει να έχουν υψηλή προτεραιότητα. Μια λύση (για λιμοκτονία) είναι το κάθε μικρό process να σχετίζεται με μια μεταβλητή, Κ, που αντιπροσωπεύει πόσες φορές ο διαχειριστής δεν έδωσε το διαμέρισμα στο process. Μετά από Κ φορές, το διαμέρισμα δίνεται στο process (αυτή η τεχνική ονομάζεται γενικά «παλαίωση» ή γήρανση aging). 6

7 Θεμελιώδη Προβλήματα των Partitions Ακόμα και με μονοπρογραμματισμό υπάρχουν 2 διαμερίσματα. Λ.Σ. user program Ο linker και ο loader συνεργάζονται και παράγουν τις διευθύνσεις των εντολών και των δεδομένων του προγράμματος. Ο linker παράγει "λογικές" διευθύνσεις και όχι "φυσικές", - δηλ. η πρώτη διεύθυνση είναι 0, κ.λπ. Ομως, στη φυσική διεύθυνση 0 βρίσκονται εντολές ή δεδομένα του Λ.Σ. τίθεται θέμα προστασίας του Λ.Σ. Η λύση εστιάζει στη μετάφραση των «λογικών» διευθύνσεων σε «φυσικές». Για παράδειγμα αν το process έχει μπει στο Part1 τότε σ' όλες τις διευθύνσεις που παράγονται κατά την εκτέλεση του process, το κατάλληλο υλικό προσθέτει 100 Κ. 7

8 Θεμελιώδη Προβλήματα των Partitions Συνήθως η παραπάνω στρατηγική υλοποιείται με την χρησιμοποίηση ενός ειδικού καταχωρητή βάσης (base register). Στο παραπάνω παράδειγμα, όταν το process φορτωθεί στο Part. 1 και αμέσως πριν του δοθεί η CPU ο καταχωρητής βάσης παίρνει την τιμή 100 Κ. Αυτό γίνεται από τον kernel του Λ.Σ. (δηλ. οι διεργασίες δεν έχουν πρόσβαση σ' αυτόν τον register). Έτσι επιτυγχάνεται το επιθυμητό αποτέλεσμα. 8

9 Θεμελιώδη Προβλήματα των Partitions Ο καταχωρητής βάσης όμως δεν αρκεί! Στην περίπτωση πολυπρογραμματισμού, πρέπει το σύστημα να εγγυάται ότι καθένα πρόγραμμα θα προστατεύεται από τ' άλλα που είναι στη Κ.Μ. απαιτείται έλεγχος σχετικά με τις διευθύνσεις που μπορεί να παράγει ένα process. π.χ. το process στο Part1 δεν μπορεί να παράγει διευθύνσεις > 200Κ γιατί τότε θα κάνει ζημιά στο process που τρέχει στο Part2. 9

10 Θεμελιώδη Προβλήματα των Partitions Αυτό το πρόβλημα λύνεται μ' ένα άλλο ειδικό καταχωρητή ορίου (limit register). Ο limit register περιέχει την μέγιστη διεύθυνση του partition στο οποίο τρέχει το process. Κάθε διεύθυνση που παράγεται, λοιπόν, προστίθεται στο base register και το αποτέλεσμα συγκρίνεται με το limit register: αν είναι μεγαλύτερο, το process πεθαίνει. Σημείωση: Με base και limit registers τα προγράμματα μπορούν να μετακινηθούν στην Κ.Μ. (δηλαδή ν' ανατεθούν σε διαφορετικά partitions κατά την διάρκεια της εκτέλεσής τους). Αυτό ονομάζεται επανατοποθέτηση (relocation). 10

11 4.2 ΔΜ με Εναλλαγή (Swapping) Τί γίνεται όταν υπάρχουν πιο πολλές διεργασίες απ' όσες μπορεί να υποστηρίξει η Κ.Μ.; Ορίζεται ένας χώρος στο δίσκο (swap space) που φιλοξενεί τις διεργασίες που δεν «χωρούν» στη Κ.Μ. Η μεταφορά διεργασιών μεταξύ ΚΜ και swap space στο δίσκο ονομάζεται εναλλαγή - swapping. Διαχείριση Μνήμης με Μεταβαλλόμενα διαμερίσματα Η έννοια των σταθερών τμημάτων δεν βοηθά πολύ: Συχνά, σπαταλείται πολύς χώρος ΚΜ γιατί δεν γίνεται καλό "ταίριασμα" («εφαρμογή») μεταξύ μεγεθών διαμερισμάτων & διεργασιών. μεταβαλλόμενου μεγέθους διαμερίσματα -- variable partitions. 11

12 ΔΜ με Μεταβαλλόμενα διαμερίσματα Βασική ιδέα: οι διευθύνσεις, ο αριθμός, και τα μεγέθη των partitions μεταβάλλονται ανάλογα με τις ανάγκες. Κάθε διαμέρισμα αποτελείται από συνεχόμενες διευθύμσεις στην ΚΜ και μπορεί να είναι ίσου μεγέθους με τη διεργασία που «φιλοξενεί» (συνήθως λίγο μεγαλύτερο). Το σημαντικό αποτέλεσμα είναι ότι τα μεταβαλλόμενα partitions ελαχιστοποιούν την σπατάλη χώρου στη ΚΜ. Από την άλλη πλευρά, όμως, η ανάθεση ΚΜ σε διεργασίες και γενικά το έργο διαχείρισης ΚΜ δυσκολεύει. 12

13 ΔΜ με Μεταβαλλόμενα διαμερίσματα Παράδειγμα: Κ.Μ. Kernel P1 Μόλις ήρθε το process P1 >> Kernel P1 P2 Μόλις ήρθε και το process P2 >> Kernel P2 Έφυγε το process P1 >> Kernel P3 P2 Ήρθε το process P3 >> Kernel P3 P2 P4 Ήρθε το process P4 Βλέπουμε ότι υπάρχουν 2 "άδεια" διαμερίσματα της ΚΜ, έστω με μέγεθος 3ΜΒ και 1ΜΒ αντίστοιχα. 13

14 ΔΜ με Μεταβαλλόμενα διαμερίσματα Αν τώρα έρθει ένα process P5 που χρειάζεται 4ΜΒ, δεν μπορεί να γίνει δεκτό, παρότι υπάρχει 4ΜΒ ελεύθερος χώρος στη ΚΜ. Αυτό το φαινόμενο ονομάζεται εξωτερικός κατακερματισμός (external fragmentation). Μια λύση στο πρόβλημα του external fragmentation είναι η σύμπτυξη μνήμης (storage compaction) που συνδέει όλους τους άδειους χώρους της ΚΜ σ' ένα συνεχόμενο διαμέρισμα της ΚΜ. π.χ. Σπάνια όμως χρησιμοποιείται επειδή απαιτεί χρονοβόρο memory-to-memory copying (CPU time). 14

15 ΔΜ με Μεταβαλλόμενα διαμερίσματα Πόση μνήμη ανατίθεται σ' ένα process; Η δυσκολία έγκειται στο ότι συνήθως το μέγεθος ενός process μεταβάλλεται κατά την εκτέλεσή του. Ένα process έχει τρία τμήματα: - text: το object code («εκτελέσιμο»)- δεν μεταβάλλεται - data: τα δεδομένα -μεταβάλλεται [βλ. malloc()] - stack: το stack επίσης μεταβάλλεται Το data τμήμα μεγαλώνει προς το stack και αντίστροφα. Προσέξτε: αν δίναμε ακριβώς όσο χώρο χρειάζεται ένα process όταν εισέρχεται στη μνήμη, τότε θ' απαιτείται mem-to-mem αντιγραφή για να μεταφέρουμε ένα process που μεγαλώνει σε κάποιο άλλο διαμέρισμα. 15

16 Διαχείριση Μνήμης Θεμελιώδες θέματα είναι: ποιά είναι τα άδεια διαμερίσματα της μνήμης; ποιο process κατέχει ποιο διαμέρισμα της μνήμης; Οι απαντήσεις σ' αυτά τα ερωτήματα δίνονται χρησιμοποιώντας εναλλακτικούς τρόπους, π.χ.: Bit Maps: χάρτες ψηφίων που περιέχουν ένα bit για κάθε διαμέρισμα. Π.χ., αν ΒΜ[Ι] = 1 το διαμέρισμα Ι είναι ελεύθερο. Linked Lists: λίστες των οποίων οι κόμβοι αντιστοιχούν σε διαμερίσματα. Buddy Systems: βασίζεται σε διαφορετικές λίστες, οι κόμβοι των οποίων αντιστοιχούν σε διαμερίσματα των οποίων το μέγεθος είναι διαφορετικές δυνάμεις του 2. 16

17 ΔΜ με Bit Maps Η κύρια μνήμη χωρίζεται σε "μονάδες ανάθεσης" (allocation units) των οποίων το μέγεθος είναι λίγα bytes ή λίγα Kbytes. Το μέγεθος των μονάδων ανάθεσης είναι σταθερό. Σε κάθε μονάδα ανάθεσης αντιστοιχεί ένα bit στο Bit Map. Αν η Ι θέση είναι 1, τότε η μονάδα ανάθεσης Ι δεν χρησιμοποιείται από κανένα process. Όσο πιο μεγάλο είναι το μέγεθος των μονάδων ανάθεσης τόσο πιο μικρό είναι το Bit Map. Μεγάλες μονάδες ανάθεσης έχουν σαν αποτέλεσμα σπατάλη χώρου, λόγω internal fragmentation (η τελευταία μονάδα ανάθεσης δεν θα χρησιμοποιείται όλη). Πλεονέκτημα bit maps: η απλότητα τους (ευκολία υλοποίησης). Μειονέκτημα bit maps: κόστος ανάθεσης -- πρέπει να βρεθούν στο Bit Map αρκετά συνεχόμενα 1 - μια χρονοβόρα διαδικασία. 17

18 ΔΜ με Linked Lists Στην πιο απλή μορφή τους, κάθε κόμβος αντιστοιχεί σε διαμέρισμα που είτε χρησιμοποιείται από κάποιο process, είτε είναι "ελεύθερο" διαμέρισμα. Τα πεδία ενός κόμβου είναι: 1 ψηφίο (διεργασία ή οπή ;), 1 αριθμός (αρχική διεύθυνση του διαμερίσματος), 1 αριθμός (μέγεθος του διαμερίσματος), 2 δείκτες (στον προηγούμενο και επόμενο κόμβο). Οι κόμβοι της λίστας είναι ταξινομημένοι με βάση τη διεύθυνση του 1ου byte του διαμέρισματος που αντιπροσωπεύουν. Η ταξινόμηση βοηθά στη διαχείριση: όταν ένα process τελειώσει ή γίνει swapped out η ενημέρωση της λίστας είναι γρήγορη: πρέπει να εξεταστούν ο επόμενος και ο προηγούμενος κόμβος της λίστας ούτως ώστε να επιτευχθεί η συγχώνευση των (πιθανών) άδειων τμημάτων (οπών --holes) - δηλ. 2 συνεχόμενα holes (άδεια διαμερίσματα) να συγχωνευθούν σ' ένα. 18

19 Αλγόριθμοι Ανάθεσης Μνήμης σε Διεργασίες Εκτελούνται κατά τη διάρκεια δημιουργίας ενός process ή κατά το swap in ενός process. Μέθοδος First-Fit: Βρίσκει την πρώτη οπή (hole) όπου χωράει το process. Μέθοδος Next-Fit: Σαν το first-fit, μόνο που ξεκινά το ψάξιμο από την προηγούμενη οπή που βρήκε την προηγούμενη φορά που έτρεξε. Μέθοδος Best-Fit: Βρίσκει την οπή με το μικρότερο εσωτερικό κατακερματισμό. Μέθοδος Worst-Fit: Βρίσκει την οπή με το μεγαλύτερο εσωτερικό κατακερματισμό. 19

20 Αλγόριθμοι Ανάθεσης Μνήμης σε Διεργασίες: Σύγκριση Η Best-Fit είναι πιο αργή μέθοδος, προφανώς, από τη firstfit γιατί απαιτεί περισσότερη αναζήτηση. Το best fit έχει χαμηλότερο «memory utilization» (δηλ. υψηλότερη σπατάλη μνήμης) σε σχέση με το first fit. Αυτό εξηγείται διότι το best fit έχει την τάση ν' αφήνει πολύ μικρές «οπές» όπου δε μπορούν να χωρέσουν διεργασίες. Η βασική ιδέα του Worst Fit είναι ν' αφήνει όσο το δυνατόν μεγαλύτερα διαμερίσματα προς μελλοντική χρησιμοποίηση. Πειραματικά, όμως, έχει αποδειχθεί ότι το worst fit δεν είναι αποδοτικό. Ένας τρόπος να αυξηθεί η επίδοση των παραπάνω αλγορίθμων ανάθεσης είναι να χρησιμοποιούνται 2 διαφορετικές λίστες, μια με διεργασίες και μια με οπές (αυτό όμως αυξάνει το κόστος όταν ένα process τελειώνει ή γίνει swapped out). Αν η λίστα των οπών είναι ταξινομημένη με βάση το μέγεθος, τότε best fit & first fit είναι περίπου εξίσου αποδοτικές μέθοδοι. 20

21 Αλγόριθμοι Ανάθεσης Μνήμης σε Διεργασίες Ο αλγόριθμος quick fit: κρατά πολλές λίστες οπών, η κάθε μια αντιπροσωπεύει οπές με διαφορετικά μεγέθη. έτσι η ανάθεση γίνεται γρήγορα (βρίσκεται πολύ γρήγορα μια οπή ενός συγκεκριμένου μεγέθους). το μειονέκτημά του έγκειται στο ότι, όταν ένα process τελειώσει ή γίνει swapped out, τότε είναι πιο χρονοβόρο ν' εξετασθούν οι περιπτώσεις για συγχώνευση οπών. 21

22 4.3 Εικονική Μνήμη (Virtual Memory) Τί γίνεται όταν Διεργασίες είναι μεγαλύτερες της ΚΜ; Δηλαδή το σύνολο των μεγεθών των text, data και stack υπερβαίνει το μέγεθος της ΚΜ; ή Το σύνολο των διεργασιών που τρέχουν (βλέπε πολυπρογραμματισμό) απαιτούν χώρο μεγαλύτερο της Κ.Μ.; Η λύση είναι η τεχνική εικονικής μνήμης (virtual memory): Το Λ.Σ. κρατά μερικά διαμερίσματα ενός process στη ΚΜ ενώ άλλα διαμερίσματα βρίσκονται στο swap space. Συνήθως λίγα κομμάτια του text, data & stack είναι στη Κ.Μ. Αυτά τα κομμάτια αφορούν τις εντολές, και δεδομένα που χρειάζονται άμεσα καθώς και αυτά που αναμένεται να χρησιμοποιηθούν στο εγγύς μέλλον. Έτσι, αυτό που γίνεται swap in & out είναι κομμάτια των text, data, stack τμημάτων ενός process, και όχι ολόκληρες διεργασίες. 22

23 4.3.1 Σελιδοποίηση (PAGING) Μια τεχνική υλοποίησης εικονικής μνήμης. Η έννοια της σελίδας (Page) αναφέρεται στο κομμάτι εκείνο ενός process που γίνεται swapped in & out - δηλαδή είναι η μονάδα εναλλαγής. [Χρησιμοποιούνται οι έννοιες pagein & pageout] Το σύνολο των διευθύνσεων μνήμης που παράγονται κατά την εκτέλεση ενός προγράμματος αποτελεί ένα χώρο διευθύνσεων (address space). Επειδή, στη γενική περίπτωση, αυτό είναι μεγαλύτερο της ΚΜ, δεν μπορεί να υπάρξει μονοσήμαντη αντιστοιχία μεταξύ μιας διεύθυνσης που παράγει ένα πρόγραμμα και μιας φυσικής διεύθυνσης (physical address). Ακόμα περισσότερο όταν η ΚΜ διαμοιράζεται σε πολλές διεργασίες! διευθύνσεις που παράγονται από ένα πρόγραμμα λέγονται εικονικές διευθύνσεις (virtual addresses) χώρο εικονικών διευθύνσεων (virtual address space). 23

24 4.3.1 Σελιδοποίηση Χωρίς εικονική μνήμη, συνεπώς, ότι διεύθυνση παράγεται θα δίνεται στο memory bus το οποίο προσπελαύνει την διεύθυνση (μετά ίσως από χρήση των καταχωρητών ορίου/βάσης). Με εικονική μνήμη, απαιτείται η παραγόμενη διεύθυνση να "μεταφραστεί" πριν δοθεί στο memory bus. Αυτή η μετάφραση γίνεται από ειδικό hardware (memory management unit -- MMU). Το virtual address space διαιρείται σε μονάδες μνήμης που λέγονται σελίδες (pages). Αντίστοιχα, η φυσική μνήμη διαιρείται σε πλαίσια σελίδων (page frames) Σελίδες και πλαίσια σελίδων έχουν το ίδιο μέγεθος -- [συνήθως από 512 bytes μέχρι 8 K bytes). Η κάθε σελίδα όταν χρειαστεί (pagein) αποθηκεύεται σε ένα πλαίσιο σελίδας. 24

25 4.3.1 Σελιδοποίηση Παράδειγμα: Θεωρείστε έναν Η/Υ με 16-bit διευθύνσεις (δηλ. virtual address space = 64K), με 32 ΚΒ μνήμη και με μέγεθος σελίδας = 8K Το MMU μεταφράζει τις παραγόμενες διευθύνσεις ως εξής: κ.ο.κ 0-8K 8K-16K 8K-16K ; 16Κ-24Κ 0K-8K 24K-32K ; Τα ερωτηματικά σημαίνουν ότι απαιτείται page in. 25

26 Σφάλμα Σελίδας Όταν το MMU βρίσκει ότι η σελίδα που περιέχει τη ζητούμενη διεύθυνση δεν υπάρχει στην Κ.Μ., τότε κάνει ένα trap στο Λ.Σ. Αυτό το trap ονομάζεται σφάλμα σελίδας -- page fault. Το Λ.Σ. εξυπηρετεί ένα page fault ως εξής: 1. από κάποιες δομές που διαχειρίζεται για το process που τρέχει, βρίσκει πού υπάρχει αυτή η σελίδα στο swap space. 2. Αν η ΚΜ είναι γεμάτη, βρίσκει μια σελίδα που βρίσκεται ήδη στη Κ.Μ. (συνήθως την λιγότερο χρησιμοποιημένη) «θύμα». 3. Αν η σελίδα θύμα έχει ενημερωθεί, τότε την γράφει στη θέση της στο swap space. Γιατί; 4. Κατόπιν, φέρνει την ζητούμενη σελίδα στο πλαίσιο σελίδας (frame) που ελευθερώθηκε. 26

27 Σφάλμα Σελίδας 5. Κατόπιν ενημερώνει το χάρτη μνήμης (memory map). Δηλαδή: την εγγραφή που δείχνει στο πλαίσιο που χρησιμοποιήθηκε - δηλ. την εγγραφή της σελίδας «θύμα»: να δείχνει πλέον ότι αυτή η σελίδα δεν είναι χαρτογραφημένη και την εγγραφή της ζητούμενης σελίδας, ώστε να δείχνει το κατάλληλο πλαίσιο. 6. Τέλος, ξανακαλείται η εντολή που προκάλεσε το σφάλμα σελίδας (trap). 27

28 Η μετάφραση virtual physical Στο παράδειγμα μας, κάθε εικονική διευθυνση έχει 16 ψηφία. Αφού η σελίδα είναι 8Κ απαιτούνται 13 bits για τις διευθύνσεις των bytes μέσα στη σελίδα (offset). Με 64Κ virtual address space και 8Κ σελίδες μπορούμε να έχουμε 8 σελίδες εικονικών διευθύνσεων 3 bits για να προσδιορίσουμε την εικονική σελίδα. 28

29 Η μετάφραση virtual physical Τα 3 πρώτα bits ενός virtual address ορίζουν την εικονική σελίδα, και τα υπόλοιπα 13 bits ορίζουν ένα byte μέσα στη σελίδα. Αν η 6η εικονική σελίδα τοποθετηθεί στο πλαίσιο 3, τότε η μεταφρασμένη διεύθυνση (physical) είναι: η διεύθυνση στη θέση του πίνακα οοοοοοοοοοοοο, όπου το «οοο...ο» είναι το 13-αψήφιο offset. Το αποτέλεσμα είναι 15 bits. 29

30 4.3.2 Πίνακες Σελίδων (Page Tables) Στην ουσία, οι πίνακες σελίδων είναι αυτό που έχουμε ονομάσει έως τώρα χάρτες μνήμης (memory maps). Η λειτουργία τους δηλ. είναι η ίδια: Μία εικονική διεύθυνση χωρίζεται σε εικονικό αριθμό σελίδας (virtual page number) (σημαντικά ψηφία) και offset (low-order bits). Ο εικονικός αριθμός σελίδας χρησιμοποιείται σαν δείκτης θέσης στο PT. (ίσως μετά από page fault) ο αριθμός πλαισίου στην εγγραφή του PT αποτελεί τα σημαντικά ψηφία που αντικαθιστούν τα σημαντικά ψηφία του virtual page number. Μόλις προσθέσουμε σε αυτά το offset, παράγεται η σωστή φυσική διεύθυνση -- physical address. 30

31 4.3.2 Πίνακες Σελίδων (PTs) Προκύπτουν όμως 2 σημαντικά προβλήματα: Μέγεθος: Τα PTs μπορεί να είναι πολύ μεγάλα. Σημειώστε ότι κάθε process έχει δικό του PT! Η λειτουργία πρέπει να είναι πολύ γρήγορη γιατί χρησιμοποιείται για κάθε διεύθυνση που παράγεται! Αναλογιστείτε ότι σχεδόν όλα τα μοντέρνα συστήματα έχουν 32-bit διευθύνσεις > 4 GB virtual addr. space. Αν page size = 4KΒ το κάθε PT έχει 1M εγγραφές Επίσης, λόγω του μεγέθους των, οι πίνακες σελίδων αποθηκεύονται στην (καλύτερη περίπτωση στην) Κ.Μ. (όχι σε registers) διπλασιάζονται οι προσβάσεις στη ΚΜ που απαιτούνται για να εκτελεστεί μια εντολή...! Συνήθως λύσεις άλλοτε βασίζονται σε καταχωρητές υλικού για το mapping ή σε τεχνικές που "μικραίνουν" το μέγεθος των ΠΣ. 31

32 Πολυ-επίπεδοι Πίνακες Σελίδων Μια τεχνική που αποσκοπεί στο να τμηματοποιήσει το PT (που είναι πολύ μεγάλο) έτσι ώστε να απαιτούνται λίγα (και μικρά) διαμέρισματά του στη ΚΜ σε κάθε στιγμή. Παράδειγμα: 32-bit διευθύνσεις και Πίνακες 2 επιπέδων Τα 10 bits του PT1 ορίζουν ένα PT με 1024 εγγραφές. Κάθε μια δείχνει σ' ένα άλλο Page Table (στο 2ο επίπεδο) στη Κ.Μ. Ετσι η τιμή του PT1 χρησιμοποιείται ως δείκτης θέσης στο PT1, η εγγραφή του οποίου οδηγεί σ' ένα PT στο 2ο επίπεδο. 32

33 Πολυ-επίπεδοι Πίνακες Σελίδων Τα 10 ψηφία PT2 χρησιμοποιούνται ως index στο PT που βρέθηκε στο προηγούμενο βήμα. Η εγγραφή στο 2ο PT δείχνει στο πλαίσιο της ΚΜ για τη ζητούμενη σελίδα. Το 12-bit offset χρησιμοποιείται για να βρεθεί το κατάλληλο byte στο πλαίσιο σελίδας που δείχνει το PT2. 33

34 Πολυ-επίπεδοι Πίνακες Σελίδων Στο παράδειγμα: Κάθε σελίδα είναι 4KB (αφού offset είναι 12 bits) Κάθε PT στο 2ο επίπεδο αναπαριστά (χαρτογραφεί) 4MB Το PT στο 1ο επίπεδο αναπαριστά 4GB (32 bits -> 4 GB). Έτσι αν τα text, data, και stack διαμερίσματα του process είναι το καθένα <=4ΜΒ τότε χρειαζόμαστε να έχουμε στη κύρια μνήμη μόνο 3 PTs του 2ου επιπέδου. Αφού το text διαμέρισμα δεν μεγαλώνει, τότε η ανάθεση εικονικών διευθύνσεων στο process μπορεί να γίνει ως εξής: 0-4MB text 4MB - 8MB data τα τελευταία 4ΜΒ stack (μεγαλώνει "προς τα κάτω") θα χρειαστούν περισσότερα PTs στη KM μόνο αν το data ή το stack διαμέρισμα μεγαλώσει πάνω από 4ΜΒ το καθένα. 34

35 Κρυφή Μνήμη για τους Πίνακες (PAGE TABLE CACHES / TLB ) Αφού τα PTs είναι πολύ μεγάλα για να χωρέσουν σε CPU registers, πώς μπορούμε να μειώσουμε το κόστος πρόσβασης σ' αυτά (στη ΚΜ) ; Η απάντηση βασίζεται στη χρήση συσχετιστικής μνήμης (associative memory) που λειτουργεί σαν «κρυφή μνήμη» ή «προσωρινή μνήμη» (cache). Η θεμελιώδης παρατήρηση είναι ότι η συμπεριφορά των περισσότερων προγραμμάτων είναι τέτοια ώστε να παρατηρούνται μεγάλοι αριθμοί αναφορών σε λίγες σελίδες (που αλλάζουν αργά με το πέρασμα του χρόνου) π.χ. - όλες οι εντολές σε μια σελίδα εντολών (βλέπε loops). Έτσι χρησιμοποιείται ειδικό υλικό που αποτελείται από καταχωρητές το σύνολο των οποίων καλούνται TLB -- translation lookaside buffer. Ο αριθμός αυτών των registers είναι μικρός (π.χ. 64). 35

36 Κρυφή Μνήμη για τους Πίνακες (PAGE TABLE CACHES / TLB ) Ο κάθε καταχωρητής έχει την ίδια πληροφορία που υπάρχει σε μια καταχώρηση του ΠΣ και επιπλέον έχει και τον εικονικό αριθμό σελίδας. Η MMU εξετάζει πρώτα αν η ζητούμενη εικονική σελίδα βρίσκεται στην κρυφή εξετάζονται παράλληλα). μνήμη TLB (όλοι οι registers Αν ναι, τότε αποφεύγεται η πρόσβαση του PT στη ΚΜ. Αν όχι, τότε προσπελαύνεται το PT και η κατάλληλη PT εγγραφή αντικαθιστά κάποια άλλη στην TLB. Σε μερικές σύγχρονες μηχανές, η διαχείριση σφαλμάτων στη TLB γίνονται από το ΛΣ. Προσέξτε ότι αν δρομολογηθεί άλλη διεργασία (process/context switch), τότε θα πρέπει να "μηδενισθεί" η PT cache! Η έννοια και χρήση κρυφής μνήμης είναι καθοριστικής σημασίας για Συστήματα Λογισμικού! 36

37 Η Δομή των Εγγραφών των ΠΣ Συνήθως η ακριβής δομή εξαρτάται από τη μηχανή. Αλλά, οι πιο πολλές εγγραφές έχουν τις εξής πληροφορίες: Προστασία -- Protection bits: ορίζουν αν η σελίδα αυτή μπορεί να γίνει read/write/execute Ενημέρωση; -- Modify bit: δηλώνει αν έχει ενημερωθεί η σελίδα από τότε που ήρθε στη ΚΜ. Αναφορές; -- Reference bits: δηλώνουν πόσες φορές το τελευταίο χρονικό διάστημα έγινε αναφορά σ' αυτή τη σελίδα. Παρούσα; -- Present bit: δηλώνει αν η σελίδα βρίσκεται στη ΚΜ. Δείκτης πλαισίου -- Page Frame bits: ορίζουν σε ποιο frame της ΚΜ βρίσκεται αυτή η σελίδα. 37

38 Η Δομή των Εγγραφών των Πινάκων Σελίδων Προσέξτε ότι η διεύθυνση της σελίδας στο swap space (δίσκο) δεν βρίσκεται στην εγγραφή του PT... Modify bit: χρησιμοποιείται όταν αποφασίζεται να εκδιωχθεί μια σελίδα απ' την ΚΜ για να ελευθερωθεί χώρος για μια άλλη σελίδα. Αν το bit αυτό είναι 1, τότε η σελίδα γράφεται στο swap space - αλλιώς δεν χρειάζεται αυτή η εγγραφή στο δίσκο μια χρονοβόρα εντολή. Reference bit: Χρησιμοποιείται για ν' αποφασιστεί ποια σελίδα ("θύμα") θ' αντικατασταθεί. Το πρόσφατο παρελθόν, οδηγός του μέλλοντος... 38

39 Ανεστραμμένοι ΠΣ (inverted PTs) Αν ο χώρος εικονικών διευθύνσεων είναι πολύ μεγάλος, (πχ 2 64 ) οι ΠΣ πρέπει να είναι εξαιρετικά μεγάλοι (πχ 2 52 εγγραφές για πλαίσια μεγέθους 4ΚΒ). απαιτείται άλλη προσέγγιση! Οι ανεστραμμένοι πίνακες είναι μια λύση: Υπάρχει ένας μόνο ΠΣ, με μια εγγραφή για κάθε πλαίσιο, που δείχνει ποια σελίδα ποιας διεργασίας φιλοξενεί (πχ 2 18 εγγραφές). Σε κάθε αναφορά μνήμης, δηλαδή σε εικονική σελίδα, χρησιμοποιείται μια συσκευή TLB, όπως πριν. Αν δε βρεθεί στη TLB, για να βρούμε αν υπάρχει η σελίδα στη μνήμη γρήγορα, χρησιμοποιείται ένα πίνακας κατακερματισμού (hash table): Κάθε φορά που εισέρχεται μια σελίδα στη μνήμη, με βάση τον αριθμό εικονικής σελίδας, εισέρχεται και στον πίνακα κατακερματισμού. Επίσης, πρέπει να ενημερώνεται και η TLB. 39

40 Ανεστραμμένοι ΠΣ (inverted PTs) Πίνακας Κατακερματισμού Ανεστρ. Πίνακας Εικ. Χώρος Διευθ. Δ1 Εικ. Διευθ. Δ1 Εικ. Χώρος Διευθ. Δ2 40

41 4.3.3 Αντικατάσταση Σελίδων (Page Replacement) Όταν σημειώνεται ένα σφάλμα σελίδας τότε το Λ.Σ. πρέπει (μερικές φορές - αν δεν υπάρχει ελεύθερο πλαίσιο) να διαλέξει μια σελίδα (victim) "θύμα" που θα αντικατασταθεί από την ζητούμενη σελίδα. Αν το "θύμα" είναι «βρώμικο» (dirty) (δηλ. έχει ενημερωθεί όσο ήταν στη Κ.Μ.) τότε το Λ.Σ. πρέπει να την ξαναγράψει πάλι στο swap space. Μια σελίδα είναι dirty αν η εγγραφή στο ΠΣ που δείχνει σ' αυτήν έχει το ψηφίο M = 1. Προφανώς η απόδοση του συστήματος είναι καλύτερη αν το "θύμα" δεν είναι μια πολυ-χρησιμοποιημένη σελίδα. Το μεγάλο πρόβλημα κόστους πηγάζει από την ανάγκη πρόσβασης στο δίσκο για αντικατάσταση σελίδων μια χρονοβόρα διαδικασία! 41

42 4.3.3 Αντικατάσταση Σελίδων Η βέλτιστη στρατηγική: Αν ξέραμε μετά από πόσο χρόνο (π.χ. αριθμό εντολών) η κάθε σελίδα στη ΚΜ θα επαναπροσπελαστεί, τότε μπορούμε να διαλέξουμε σαν θύμα τη σελίδα που δε θα χρειαστεί για το μεγαλύτερο χρονικό διάστημα. Όμως, γενικά σε πραγματικά συστήματα, τέτοιου είδους πληροφορία δεν υπάρχει, ούτε μπορεί να παραχθεί. Σε μερικές περιπτώσεις είναι δυνατόν να υποβληθεί ένα πρόγραμμα σε κάποιο είδους «ανιχνευτή» («tracer») το οποίο καταχωρεί την συμπεριφορά του προγράμματος αναφορικά με τις προσπελάσεις σε σελίδες. Αυτή η πληροφορία χρησιμοποιείται όταν το πρόγραμμα τρέχει πραγματικά και έτσι μπορούμε να υλοποιήσουμε τη βέλτιστη στρατηγική. 42

43 Ο Αλγόριθμος Not Recently Used Συνοπτικά, αυτή η μέθοδος διαλέγει σαν θύμα μια σελίδα που δεν έχει χρησιμοποιηθεί πρόσφατα. Πρέπει λοιπόν να υπάρχουν πληροφορίες σχετικά με το πόσο πρόσφατα χρησιμοποιήθηκε η κάθε σελίδα. Στον αλγόριθμο NRU χρησιμοποιούνται τα R και Μ ψηφία που συνήθως υπάρχουν στις εγγραφές των Page Tables: Το R γίνεται ένα όταν η αντίστοιχη σελίδα προσπελαύνεται. Το Μ γίνεται 1 όταν η αντίστοιχη σελίδα ενημερώνεται. Τις ενημερώσεις των R, M bits τις κάνει συνήθως το hardware. 43

44 Ο Αλγόριθμος Not Recently Used Αλγόριθμος NRU 1. Όταν αρχίζει ένα process τότε όλα τα R, M bits των εγγραφών του PT παίρνουν την τιμή Σε κάθε clock interrupt το R bit γίνεται πάλι 0. Έτσι αν εξετάσουμε μια PT εγγραφή και δούμε το R = 1 ότι υπήρξε αναφορά σ' αυτή τη σελίδα μετά το τελευταίο clock tick. 3. Όταν σημειώνεται ένα page fault: Το Λ.Σ. χρησιμοποιεί 4 κατηγορίες σελίδων με βάση τις τιμές των R & M bits. Το Λ.Σ. διαλέγει σαν θύμα μια από τις σελίδες στην κατώτερη κατηγορία. Γιατί προτιμάει θύματα από Κ1 και όχι από Κ2; Ο NRU είναι απλός, και έχει καλή απόδοση. K1 R = 0 M = 0 K2 R = 0 M = 1 (υπάρχει αυτή η κατηγορία; ΝΑΙ) K3 R = 1 M = 0 K4 R = 1 M = 1 44

45 Αλγόριθμοι βασισμένοι σε FIFO: Δεύτερη Ευκαιρία Προφανώς η "καθαρόαιμη" FIFO στρατηγική έχει προβλήματα. Γιατί ; O Αλγόριθμος Δεύτερης Ευκαιρίας (Second - Chance) Βασίζεται στη στρατηγική FIFO: εξετάζει σελίδες αρχίζοντας από την πιο παλιά. Αλλά, αντί να αντικαθιστά την πιο παλιά σελίδα, εξετάζει το R bit. Αν R=0 τότε την αντικαθιστά. Αν R = 1 τότε κάνει το bit R = 0 η σελίδα τοποθετείται στο τέλος της λίστας (δηλ. "βαφτίζεται" σαν η πιο πρόσφατη σελίδα στη ΚΜ) η αναζήτηση θύματος συνεχίζεται στην επόμενη πιο παλιά σελίδα. Αν R=1 για όλες τις σελίδες, τότε second-chance είναι στην ουσία FIFO (Γιατί ;) 45

46 Αλγόριθμοι βασισμένοι σε FIFO: Ρολόι O Αλγόριθμος «Ρολόι» (Clock) Το σημαντικότερο μειονέκτημα του second-chance είναι ότι συνεχώς ενημερώνει την λίστα - χρονοβόρα διαδικασία. Στον αλγόριθμο Ρολόι, οι σελίδες-πλαίσια οργανώνονται σ' ένα μια κυκλική λίστα που προσομοιώνει ένα ρολόι, δηλαδή υπάρχει ένας δείκτης που δείχνει στην πιο παλιά σελίδα. Όταν σημειώνεται ένα page fault: εξετάζεται η σελίδα που δείχνει ο δείκτης: Αν R=0, τότε αυτή είναι το θύμα & ο δείκτης προωθείται να δείχνει στην επόμενη σελίδα. Αν R=1, τότε R 0 & ο δείκτης δείχνει στην επόμενη σελίδα και η αναζήτηση συνεχίζεται. 46

47 Ο Αλγόριθμος Least-Recently Used (LRU) Βασική ιδέα: σελίδες που προσπελάστηκαν στο πρόσφατο παρελθόν θα επαναπροσπελασθούν και στο εγγύς μέλλον (και αντιστρόφως). Έτσι, το θύμα είναι η σελίδα που δεν έχει χρησιμοποιηθεί για το μεγαλύτερο χρονικό διάστημα. Μια προσέγγιση υλοποίησης είναι με μια λίστα όλων των σελίδων στη ΚΜ με την πιο-πρόσφατα-χρησιμοποιημένη σελίδα στην κορυφή της λίστας και την LRU σελίδα στο τέλος. Απλή μέθοδος, αλλά η λίστα χρειάζεται ενημέρωση σε κάθε αναφορά στη μνήμη (που γίνεται > 1 φορές για κάθε εντολή) το κόστος είναι απαγορευτικό! 47

48 Ο Αλγόριθμος Least-Recently Used (LRU) Μια προσέγγιση αποφυγής του παραπάνω κόστους είναι να χρησιμοποιηθεί ειδικό hardware. Μια μέθοδος χρησιμοποιεί έναν 64-bit counter η τιμή του οποίου αυξάνεται σε κάθε εντολή. Επίσης, κάθε εγγραφή του PT έχει 64 bits παραπάνω, έτσι ώστε μετά από κάθε αναφορά σε μια σελίδα της ΚΜ η τιμή του counter να αποθηκεύεται στην αντίστοιχη εγγραφή του PT. η μέθοδος διαλέγει σαν θύμα την σελίδα της οποίας η εγγραφή στο PT έχει την μικρότερη τιμή του counter. Το παραπάνω ειδικό h/w κοστίζει, φυσικά, και μπορεί να μην υπάρχει/προσφέρεται από κάποιο σύστημα. Ετσι πολλοί σχεδιαστές Λ.Σ. καταφεύγουν σε λύσεις software με τις οποίες προσπαθούν να προσομοιώσουν την στρατηγική LRU. 48

49 Μια προσομοίωση του LRU είναι Not- Frequently-Used (NFU) Με κάθε σελίδα συνδέεται και ένας μετρητής (software counter) -- αρχικά έχει την τιμή 0. Με κάθε clock interrupt το Λ.Σ. προσπελαύνει όλες τις σελίδες στην Κ.Μ. Για κάθε σελίδα: o counter «ολισθαίνει δεξιά» (shift right) η τιμή του counter τότε προσαυξάνεται με την τιμή του R (0 ή 1) της ίδιας σελίδας. Το R προστίθεται στο πιο σημαντικό ψηφίο του counter. Όταν σημειώνεται ένα σφάλμα σελίδας, η σελίδα με τη μικρότερη τιμή του μετρητή επιλέγεται σαν θύμα. 49

50 Μια προσομοίωση του LRU: Not- Frequently-Used (NFU) Ο παραπάνω αλγόριθμος είναι μια συγκεκριμένη μορφή NFU που ονομάζεται αλγόριθμος γήρανσης (aging). π.χ. Counters

51 Μια προσομοίωση του LRU είναι Not-Frequently-Used (NFU) Αν μια σελίδα δεν έχει χρησιμοποιηθεί για Ν ticks τα πρώτα N bits = 0. Αυτός ο αλγόριθμος διαφέρει κατά 2 τρόπους από τον LRU: 1. Στο παράδειγμα: Αν και η σελίδα 1 είναι το θύμα, είναι πιθανό να είχε χρησιμοποιηθεί μετά την σελίδα 2 στο clock tick Υπάρχει ένας πεπερασμένος αριθμός (για τον counter) ψηφίων (π.χ. αν όλα τα 6 ψηφία 2 σελίδων είναι 0, τότε διαλέγουμε στην τύχη μεταξύ τους). Αυτό όμως δεν δημιουργεί ιδιαίτερα προβλήματα! 51

52 4.4 Σχεδιασμός Συστημάτων Σελιδοποίησης Όταν αρχίζει ένα process το Λ.Σ., μπορεί να επιλέξει: να μην φέρει καμία σελίδα του στη Κ.Μ. (δηλαδή να αφήσει το σύστημα να φέρει την κάθε σελίδα από το δίσκο όταν υπάρξει η πρώτη αναφορά σ' αυτήν). Αυτή η στρατηγική ονομάζεται σελιδοποίηση κατ απαίτηση (demand paging). να φορτώσει κάποιες σελίδες του process από το δίσκο πριν το process αρχίσει να τρέχει. Αυτή η στρατηγική ονομάζεται προσελιδοποίηση (prepaging). Συνήθως η συμπεριφορά των προγραμμάτων που τρέχουν χαρακτηρίζεται από διάφορες φάσεις. Σε κάθε φάση οι αναφορές μνήμης που γίνονται απ' το πρόγραμμα εντοπίζονται σ' ένα μικρό σύνολο σελίδων του (locality of reference) που είναι ένα πολύ μικρό υποσύνολο του address space του προγράμματος. 52

53 4.4 Σχεδιασμός Συστημάτων Σελιδοποίησης Αυτό το υποσύνολο των σελίδων, που χρησιμοποιεί ένα πρόγραμμα στη τωρινή φάση του, ονομάζεται λειτουργικό σύνολο (working set). Αν όλο το working set ενός process βρίσκεται στην ΚΜ, τότε το process αυτό θα δημιουργεί page faults μόνο κατά τη μετάβαση στην επόμενη φάση. Αυτό είναι και το ζητούμενο! Αν το working set είναι πολύ μεγάλο και δε χωράει στη διαθέσιμη "ελεύθερη" φυσική μνήμη, τότε το πρόγραμμα θα τρέξει πολύ αργά. 53

54 4.4 Σχεδιασμός Συστημάτων Σελιδοποίησης Το φαινόμενο thrashing «αλλώνισμα»: Όταν ένα process σπαταλάει ένα μεγάλο μέρος του συνολικού χρόνου σε page faults (π.χ. ένα process έτρεξε για 15 secs, τα 14 από τα οποία ήταν για page faults). Προσέξτε: - κάθε εντολή παίρνει χρόνο < 1 μs - κάθε πρόσβαση στο δίσκο παίρνει χρόνο ~= 10 ms Το Μοντέλο του Λειτιυργικού Συνόλου (Working Set - WS) Λ.Σ. που εφαρμόζουν αυτό το μοντέλο πρέπει να: ξέρουν ποιο είναι το working set κάθε διεργασίας, και πριν την τρέξουν (είτε στην αρχή, είτε μετά από swap in) να έχουν φέρει το ΛΣ στη Κ.Μ., (δηλ. εφαρμόζουν prepaging). 54

55 4.4 Σχεδιασμός Συστημάτων Σελιδοποίησης Πώς μπορεί το Λ.Σ. να ξέρει ποιο είναι το WS; Μία μέθοδος βασίζεται στον αλγόριθμο NFU με γήρανση (aging) για την αντικατάσταση σελίδων που είδαμε πριν. Το WS ενός process αποτελείται απ' όλες τις σελίδες των οποίων τα πρώτα N ψηφία των μετρητών δεν είναι 0. Δηλ. αν στα τελευταία Ν τικς του ρολογιού έχει σημειωθεί αναφορά στη σελίδα, τότε η σελίδα ανήκει στο WS της διεργασίας. Το μοντέλο WS μπορεί να συνδυαστεί με τον αλγόριθμο clock: Αντί να επιλέγεται ως θύμα η σελίδα στην οποία δείχνει ο δείκτης αν το R = 0: πρώτα εξετάζεται αν η σελίδα αυτή ανήκει στο WS. Αν ναι, τότε δεν επιλέγεται ως θύμα, και συνεχίζεται η αναζήτηση. Αλλιώς, επιλέγεται ως θύμα. Αυτός ο αλγόριθμος ονομάζεται WS_Clock 55

56 Τοπική και Καθολική Αντικατάσταση (Global και Local Page Replacement) Θεμελιώδης ερώτηση: Όταν σημειώνεται ένα σφάλμα σελίδας, και αναζητούμε ένα θύμα, θα περιορίσουμε την έρευνα μας μόνο στις σελίδες της διεργασίας που προκάλεσε to σφάλμα, ή θα εξετάσουμε όλες τις σελίδες της Κ.Μ. ανεξάρτητα από το σε ποια διεργασία ανήκουν; Στην πρώτη περίπτωση η στρατηγική ονομάζεται «τοπική» local ενώ στη δεύτερη περίπτωση ονομάζεται «καθολική» global. Με καθολικούς αλγόριθμους, ο αριθμός των πλαισίων που έχουν δοθεί σε κάθε διεργασία μεταβάλλεται με το χρόνο. Συνήθως προτιμούνται οι καθολικοί αλγόριθμοι διότι συνήθως το μέγεθος του WS αλλάζει με την πάροδο του χρόνου. Με τοποικούς αλγόριθμους: Αν το WS μικρύνει τότε σπαταλείται (στην ουσία) χώρος της Κ.Μ. έλλειψη του οποίου δημιουργεί page faults σ' άλλες διεργασίες. Αντίθετα, αν το WS μεγαλώσει, μπορεί να συμβεί thrashing. 56

57 Τοπική και Καθολική Αντικατάσταση Οι καθολικοί αλγόριθμοι δεν έχουν αυτά τα προβλήματα. Όμως πρέπει ν' αποφασίσουν πόσα πλαίσια σελίδων να δώσουν σε κάθε process. Συνήθως, ανάλογα με το μέγεθος του process, του ανατίθεται και ένας αριθμός πλαισίων. Αλλά και αυτό μπορεί να δημιουργήσει thrashing. Το πρόβλημα μπορεί να λυθεί μετρώντας τη συχνότητα σφαλμάτων σελίδων (page fault frequency) κάθε process και χρησιμοποιώντας 2 κατώφλια: High PFF και Low PFF. Όταν μετριέται το PFF ενός process p: Αν PFFp > H_PFF τότε το Λ.Σ. δίνει πιο πολλά πλαίσια στο p. Αν PFFp < L_PFF τότε το Λ.Σ. μπορεί να αφαιρέσει πλαίσια από το process p. 57

58 Μέγεθος Σελίδας Μικρές ή μεγάλες σελίδες ; Κατά μέσο όρο, η τελευταία σελίδα κάθε segment (text, data, ή stack) είναι περισσότερο άδεια μικρές σελίδες είναι καλύτερα. Επίσης όταν μια σελίδα είναι μεγάλη τότε μπορεί το WS του process να χρειάζεται μόνο ένα υποσύνολο της πληροφορίας στη σελίδα και έτσι σπαταλείται Κ.Μ. μικρές σελίδες είναι καλύτερα. Από την άλλη μεριά: μικρές σελίδες μεγάλα PTs σπαταλείται Κ.Μ. μικρές σελίδες μη αποδοτικό I/O κατά τη διάρκεια page faults. Αυτό συμβαίνει γιατί, όταν σελίδες γίνονται swap in/out, ο μεγαλύτερος χρόνος που απαιτείται οφείλεται στη χρησιμοποίηση του δίσκου για seek (δηλ. να τοποθετηθεί η κεφαλή του δίσκου στη σωστή σελίδα) συμφέρει να μεταφέρουμε μεγάλες σελίδες! 58

59 4.5 Ζητήματα Υλοποίησης ΛΣ και Σελιδοποίηση Δημιουργία διεργασίας: Δέσμευση ΚΜ για τον ΠΣ και αρχικοποίηση Δέσμευση στο δίσκο χώρου για αρχείο εναλλαγής (swap file) και αρχικοποίηση (εντολές και δεδομένα προγράμματος). Χρονοπρογραμματισμός διεργασίας: Αρχικοποίηση TLB, ενημέρωση για ποιος είναι ο τρέχων ΠΣ, προσελιδοποίηση(;) Σφάλμα σελίδας: Εύρεση στο δίσκο ζητούμενης σελίδας, εύρεση θύματος, page_out(;), page_in, Τερματισμός διεργασίας: Απελευθέρωση χώρου για ΠΣ, εναλλαγή στο δίσκο. 59

60 4.5 Ζητήματα Υλοποίησης Πισωγύρισμα Εντολής (Instruction Back-Up) Έστω μια εντολή που προκαλεί page fault. Το page fault μπορεί να προκλήθηκε όταν έγινε αναφορά στη σελίδα της εντολής, ή σε μια από τις σελίδες που περιέχουν τις παραμέτρους--δεδομένα. Μόλις το Λ.Σ. φέρει τη ζητούμενη σελίδα, πρέπει να επαναληφθεί η εντολή από την αρχή το Λ.Σ. πρέπει να βρει που είναι το 1o byte της εντολής. Συνήθως οι εντολές είναι πολλά bytes (π.χ. 2 bytes για opcode και 2 για κάθε παράμετρο) δεν είναι εύκολη υπόθεση. Μερικά συστήματα είτε κρατούν αυτή τη πληροφορία σε ειδικούς registers, είτε ο μικροκώδικας (microcode) της εντολής τη βάζει (push) στο stack, όπου το Λ.Σ. τη βρίσκει! 60

61 4.5 Ζητήματα Υλοποίησης Κλείδωμα Σελίδων (Page Locking) Υπάρχει αλληλεπίδραση μεταξύ υποσυστήματος Ε/Ε και εικονικής μνήμης (I/O και virtual Memory). Θεωρήστε ένα process, P1, που εκτελεί read (fd, &buf,...). Το Λ.Σ. δίνει την εντολή στο δίσκο να φέρει το ζητούμενο disk block στην σελίδα(ες) Σ1, Σ2,... όπου βρίσκεται ο buf. Το P1 μπλοκάρει και το CPU δίνεται στο P2. Το P2 προκαλεί page faults και σαν θύμα επιλέγεται μια από τις σελίδες Σ1, Σ2,... όπου βρίσκεται ο buf της P1 και τη φορτώνει με την επιθυμητή σελίδα της P2. Αργότερα ο δίσκος φέρνει την απάντηση από το δίσκο για την P1 και χρησιμοποιώντας DMA την αποθηκεύει στη διεύθυνση όπου τώρα υπάρχει η σελίδα της P2... καταστροφή. Η λύση στο πρόβλημα είναι να χρησιμοποιηθεί ένα lock bit για κάθε πλαίσιο. Όταν το lock bit είναι 1 τότε αυτή η σελίδα δε μπορεί να επιλεχθεί σα θύμα από τον pager. Έτσι, αν όλες οι σελίδες που εμπλέκονται σε I/O έχουν το lock bit = 1 τότε το παραπάνω πρόβλημα αποφεύγεται. 61

62 4.5 Ζητήματα Υλοποίησης Διαμοιρασμός Σελιδων (Page Sharing) Συνήθως >1 διεργασίες τρέχουν το ίδιο πρόγραμμα (π.χ. εκτελέσιμοι κώδικες) συμφέρει οι σελίδες να διαμοιράζονται, αντί να υπάρχει ένα αντίγραφο του κοινού προγράμματος για κάθε διεργασία. όταν ένα process γίνεται swap out (ή τελειώνει) πρέπει οι σελίδες (text) που χρησιμοποιούνται από άλλες διεργασίες να μην γίνουν swap out (και το swap space να μην ελευθερωθεί) 62

63 4.5 Ζητήματα Υλοποίησης Swap Space Συνήθως είναι ένα ειδικό partition στο δίσκο. Υπάρχει ένα free list έτσι ώστε καινούργιες διεργασίες να βρίσκουν swap space. Όταν ένα process αρχίζει, το Λ.Σ. του αναθέτει τόσο swap space όσο είναι και το μέγεθός του. Στην εγγραφή του Process Table του Λ.Σ. για το process P υπάρχει ένα πεδίο που δείχνει στη διεύθυνση στο δίσκο για το process P (swap space). Έτσι με το virtual page number και αυτή την διεύθυνση βρίσκουμε που είναι η κατάλληλη σελίδα στο χώρο εναλλαγής. Συνήθως τα segments όπως το stack και το data ενός process έχουν διαφορετικά swap spaces, λόγω κυμαινόμενου μεγέθους. 63

64 4.5 Ζητήματα Υλοποίησης Οι Δαίμονες Σελιδοποίησης Σε πολλά συστήματα δαίμονες σελιδοποίησης (ειδικές διεργασίες) διασφαλίζουν ότι υπάρχουν "αρκετά" ελεύθερα πλαίσια σελίδων στη μνήμνη. Περιοδικά, ο δαίμονας σελιδοποίησης (paging deamon) ξυπνάει, ελέγχει αν υπάρχουν αρκετά ελεύθερα πλαίσια. Αν ναι, ξανακοιμάται. Αν όχι, τρέχει τον αλγόριθμο αντικατάστασης σελίδων, μέχρι αρκετά frames να γίνουν ελεύθερα. Έτσι το σύστημα έχει καλύτερη απόδοση. Γιατί ; 64

65 Χειρισμός Λάθους (Page Fault Ηandling) Αλγόριθμος 1. Έχουμε παγίδα στον πυρήνα (kernel trap). O kernel σώζει PC και διεύθυνση εντολής (1ο byte). 2. Ο kernel σώζει general-purpose regs. 3. Βρίσκει ποια εικονική σελίδα προκάλεσε page fault (μπορεί να χρειαστεί να κάνει parse την εντολή). 4. Αν οι έλεγχοι προστασίας περάσουν, το Λ.Σ. προσπαθεί να βρει ελεύθερο frame (τρέχοντας ίσως τον page replacement αλγόριθμο). 5. Αν το θύμα έχει M=1, τότε ζητάει απ' το disk controller το γράψιμο της σελίδας και δρομολογεί άλλο process (αφού κλειδώσει την σελίδα). 65

66 Χειρισμός Λάθους (Page Fault Ηandling) 6. Αφού γραφτεί η σελίδα, ο kernel βρίσκει που στο swap space είναι η ζητούμενη σελίδα και ζητά απ' τον disk controller να την φέρει (και δρομολογεί άλλη διεργασία). 7. Όταν έρθει η σελίδα τα PTs ενημερώνονται και η σελίδα ξεκλειδώνεται. 8. Ο kernel βρίσκει το 1ο byte της εντολής που προκάλεσε το page fault. 9. To process που προκάλεσε το page fault ξανατρέχει (ο έλεγχος επιστρέφει στην assembly-code ρουτίνα του βήματος 2). Η assembly ρουτίνα επανατοποθετεί τις κατάλληλες τιμές των general-purpose CPU regs και επιστρέφει. 10. Το process τώρα τρέχει σαν το page fault να μην είχε συμβεί. 66

Λειτουργικά Συστήματα Ι. Διαχείριση Μνήμης (Memory Management)

Λειτουργικά Συστήματα Ι. Διαχείριση Μνήμης (Memory Management) Λειτουργικά Συστήματα Ι Διαχείριση Μνήμης (Memory Management) 1 «Δίψα» για Μνήμη! ~1990: ένας desktop υπολογιστής είχε περίπου 1MB memory. Τα 4MB ήταν πολυτέλεια! Σήμερα: ένα laptop, ακόμα κι ένα κινητό(!)

Διαβάστε περισσότερα

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

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Επ. Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 8 «Ιδεατή Μνήμη» Διδάσκων: Δ. Λιαροκαπης Διαφάνειες: Π. Χατζηδούκας Ιδεατή Μνήμη Οργάνωση. Εισαγωγή. Ιδεατές και πραγματικές διευθύνσεις. Λογική οργάνωση. Τμηματοποίηση

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση

Διαβάστε περισσότερα

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

Εικονική Μνήμη (Virtual Μemory) ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

Διαβάστε περισσότερα

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

Εικονική Μνήμη (Virtual Μemory) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

Διαβάστε περισσότερα

Διαχείριση Κύριας Μνήμης

Διαχείριση Κύριας Μνήμης Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διαχείριση Κύριας Μνήμης Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Διαχείριση

Διαβάστε περισσότερα

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΗΧΑΝΗΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ Γ. Τσιατούχας 6 ο Κεφάλαιο 1. Επίπεδο OSM 2. Εικονική μνήμη ιάρθρωση 3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 7 ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης II ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης II Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 7 «Διαχείριση Μνήμης» Διδάσκων: Δ. Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Κύρια Μνήμη 1. Εισαγωγή 2. Βασική διαχείριση μνήμης 3. Μνήμη και πολυπρογραμματισμός 4. Τμηματοποίηση

Διαβάστε περισσότερα

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

Εικονική Μνήμη (Virtual Memory) Εικονική Μνήμη (Virtual Memory) Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, Operating Systems Concepts,

Διαβάστε περισσότερα

ιαχείριση Μνήµης (Memory Management)

ιαχείριση Μνήµης (Memory Management) ιαχείριση Μνήµης (Memory Management) Πως κατανέµεται η µνήµη στις διάφορες διεργασίες Τύποι Μνήµης Η µνήµη µε µηχανικά µέρη είναι σηµαντικά πιο αργή αλλά και αρκετά πιο φθηνή. Οι καταχωριτές (registers)

Διαβάστε περισσότερα

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation Προηγμένοι Μικροεπεξεργαστές Paging & Segmentation Segmentation Τεχνική για σπάσουμε την μνήμη σε λογικά κομμάτια Κάθε κομμάτι αποθηκεύει πληροφορία σχετική με data segments for each process code segments

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

Διαβάστε περισσότερα

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

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ρχιτεκτονική Υπολογιστών 2016-17 Εικονική Μνήμη (και ο ρόλος της στην ιεραρχία μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Δευτερεύουσα μνήμη

Διαβάστε περισσότερα

Διαχείριση Μνήμης (Memory Management)

Διαχείριση Μνήμης (Memory Management) Διαχείριση Μνήμης (Memory Management) Εισαγωγή Βασικές έννοιες και μοντέλο εκτέλεσης Εναλλαγή (swapping) Ανάθεση σε συνεχόμενα τμήματα (contiguous allocation) Σελιδοποίηση (paging) Τμηματοποίηση (segmentation)

Διαβάστε περισσότερα

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Εικονική Μνήµη Κεφάλαιο 8 Υλικό και δοµές ελέγχου Οι αναφορές στην µνήµη υπολογίζονται δυναµικά κατά την εκτέλεση Ηδιεργασίαχωρίζεταισετµήµατα τα οποία δεν απαιτείται να καταλαµβάνουν συνεχόµενες θέσεις

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 9 : Ιδεατή Μνήμη 1/2 Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2011-12 Εικονική (και ο ρόλος της στην ιεραρχία μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Ιεραρχία η νέα τάση: [2011]

Διαβάστε περισσότερα

Εικονική Μνήμη (virtual memory)

Εικονική Μνήμη (virtual memory) Εικονική Μνήμη (virtual memory) Πολλά προγράμματα εκτελούνται ταυτόχρονα σε ένα υπολογιστή Η συνολική μνήμη που απαιτείται είναι μεγαλύτερη από το μέγεθος της RAM Αρχή τοπικότητας (η μνήμη χρησιμοποιείται

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

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

Διαβάστε περισσότερα

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

Εικονική Μνήμη (1/2) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εικονική Μνήμη (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Εικονική Μνήμη

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 8: Διαχείριση Μνήμης. Φυσικές και Λογικές Διευθύνσεις Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και

Διαβάστε περισσότερα

Μάθημα 8: Διαχείριση Μνήμης

Μάθημα 8: Διαχείριση Μνήμης Μάθημα 8: Διαχείριση Μνήμης 8.1 Κύρια και δευτερεύουσα μνήμη Κάθε μονάδα ενός υπολογιστή που χρησιμεύει για τη μόνιμη ή προσωρινή αποθήκευση δεδομένων ανήκει στην μνήμη (memory) του υπολογιστή. Οι μνήμες

Διαβάστε περισσότερα

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης II ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης II Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin

Διαβάστε περισσότερα

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης.

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης Εικονική Μνήμη Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης I ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης I Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Μνήμης Βασίλης Σακκάς 6/12/2013 1 Διαχείριση Μνήμης 1 Το τμήμα του Λ/Σ που διαχειρίζεται τη μνήμη λέγεται Διαχειριστής Μνήμης (Memory manager). Καθήκον του είναι

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 5α: Διαχείριση Κύριας Μνήμης Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 8: Διαχείριση Μνήμης. Φυσικές και Λογικές Διευθύνσεις Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Ενότητα 7 (Κεφάλαιο 7) Διαχείριση Μνήμης. Περιεχόμενα. Ανάγκη για διαχείριση μνήμης. Βασικές αρχές διαχείρισης μνήμης.

Ενότητα 7 (Κεφάλαιο 7) Διαχείριση Μνήμης. Περιεχόμενα. Ανάγκη για διαχείριση μνήμης. Βασικές αρχές διαχείρισης μνήμης. ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 7 (Κεφάλαιο 7) Διαχείριση Μνήμης Οι

Διαβάστε περισσότερα

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

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Επικοινωνία με περιφερειακά Αρτηρία εισόδου-εξόδου, διευθύνσεις, εγγραφές αναγνώσεις Διαδικασία εξόδου έλεγχος κατάστασης περιφερειακού περίμενε

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 8: Σελιδοποίηση & Swapping Από τα Προηγούμενα 2 Φυσική μνήμη Έλλειψη προστασίας Περιορισμένο μέγεθος Συνεχείς ή κατά κανόνα συνεχείς περιοχές Διαμοίραση ορατή στα

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) ..8 Κατανομή των αρχείων σε συσκευές Ακολουθείται κάποια λογική στην αποθήκευση των αρχείων:.αρχεία που χρησιμοποιούνται συχνά τοποθετούνται στους σκληρούς δίσκους που έχουν μεγάλη ταχύτητα πρόσβασης..αν

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 5β: Διαχείριση Κύριας Μνήμης Διαχείριση Δευτερεύουσας Μνήμης Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης III Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz,

Διαβάστε περισσότερα

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1 Λειτουργικά Συστήματα Κεφάλαιο 5 Κεφ. 5 Λειτουργικά Συστήματα 1 Διαχείριση Κεντρικής Μνήμης Στην Κεντρική (κύρια) Μνήμη του Η/Υ αποθηκεύονται ανα πάσα στιγμή όλα τα προγράμματα που εκτελούνται στην ΚΜΕ

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Ενότητα # 3: Διαχείριση Μνήμης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Λειτουργικά Συστήματα. Ενότητα # 3: Διαχείριση Μνήμης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Λειτουργικά Συστήματα Ενότητα # 3: Διαχείριση Μνήμης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 7: Διαχείριση Μνήμης. Φυσική και Λογική Διευθυνσιοδότηση. Προστασία. Εναλλαγή Μνήμης Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο

Διαβάστε περισσότερα

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

ΠΛΕ- 027 Μικροεπεξεργαστές ΠΛΕ- 027 Μικροεπεξεργαστές 10ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Εικονική μνήμη, σχεδίαση αποδοτικής κρυφής μνήμης, προγραμματισμός για κρυφή μνήμη Αρης Ευθυμίου Εικονική μνήμη ως cache Η κύρια

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης II ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης II Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 9: Ιδεατή Μνήμη. Σφάλματα Σελίδας. Τοποθέτηση & αντικατάσταση σελίδων. Τοπικότητα Αναφορών. Κατάπτωση. Παράδοξο Belady. Παραμένων

Διαβάστε περισσότερα

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

Εικονική Μνήμη (Virtual memory) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 16 Εικονική Μνήμη (Virtual memory) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Προβλήματα φυσικής μνήμης (1) Τι θα συμβεί εάν η μνήμη

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης I ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης I Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης I ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης I Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin

Διαβάστε περισσότερα

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

Διαβάστε περισσότερα

Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών

Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών Το εκπαιδευτικό υλικό που ακολουθεί αναπτύχθηκε στα πλαίσια του έργου «Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών», του Μέτρου «Εισαγωγή

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Χρήση Κρυφής Μνήμης (Cache)

Διαβάστε περισσότερα

Εικονική Μνήμη (virtual memory)

Εικονική Μνήμη (virtual memory) Εικονική Μνήμη (virtual memory) Πολλά προγράμματα εκτελούνται ταυτόχρονα σε ένα υπολογιστή Η συνολική μνήμη που απαιτείται είναι μεγαλύτερη από το μέγεθος της RAM Αρχή τοπικότητας (η μνήμη χρησιμοποιείται

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (ΗΥ222) Λειτουργικά Συστήματα (ΗΥ222) Διάλεξη 7: Εισαγωγή στην Ιδεατή Μνήμη - Τμηματοποίηση Η Ευτυχισμένη Κοινωνία των Διεργασιών 2 Πολλαπλές χαρούμενες διεργασίες στο σύστημα Και αν το Visual Studio χρειαστεί

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Κλειώ Σγουροπούλου Λειτουργικό Σύστημα Ένα πρόγραμμα που διαχειρίζεται τους πόρους ενός υπολογιστικού συστήματος και ενεργεί ως μεσάζων μεταξύ του χρήστη και των πόρων αυτών user

Διαβάστε περισσότερα

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 9

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 9 Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 9 Κεφάλαιο 9 ιαχείριση Μνήµης στα Λειτουργικά Συστήµατα Σκοπός του κεφαλαίου αυτού είναι να σου γνωρίσει τον τρόπο µε τον οποίο ένα

Διαβάστε περισσότερα

Λειτουργικά. Συστήματα Ι. Διεργασίες-Νήματα. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Διεργασίες-Νήματα. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Διεργασίες-Νήματα Εισαγωγή στα Λειτουργικά Συστήματα Εγκατάσταση Ιδεατής Μηχανής Linux Συστήματα Αρχείων Χειρισμός και Διαχείριση Linux

Διαβάστε περισσότερα

Virtual Memory. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Virtual Memory. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 24-25 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Virtual Memory http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Υλισµικό διαχείρισης µνήµης (Memory management hardware)

Υλισµικό διαχείρισης µνήµης (Memory management hardware) Ιστορική αναδροµή Πρώτοι υπολογιστές µικρή χωρητικότητα µνήµης (κόστος) διαίρεση προγραµµάτων σε τµήµατα επικάλυψης (overlay segments) που χωρούσαν στην µνήµη (επικάλυψη µνήµης) Κάθε τµήµα επικάλυψης Φορτωνόταν,

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 9: Ιδεατή Μνήμη. Σφάλματα Σελίδας. Τοποθέτηση & αντικατάσταση σελίδων. Τοπικότητα Αναφορών. Κατάπτωση. Παράδοξο Belady. Παραμένων

Διαβάστε περισσότερα

Υλισμικό Διαχείρισης Μνήμης (Memory Management Hardware)

Υλισμικό Διαχείρισης Μνήμης (Memory Management Hardware) Υλισμικό Διαχείρισης Μνήμης (Memory Management Hardware) Ιστορική αναδρομή Πρώτοι υπολογιστές μικρή χωρητικότητα μνήμης (κόστος) διαίρεση προγραμμάτων σε τμήματα επικάλυψης (overlay segments) που χωρούσαν

Διαβάστε περισσότερα

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

Η ιεραρχία της μνήμης Η ιεραρχία της μνήμης Οι περιορισμοί στο σχεδιασμό της μνήμης συνοψίζονται σε τρεις ερωτήσεις : 1) Πόση 2) Πόσο γρήγορη 3) Πόσο ακριβή Ερωτήματα-Απαντήσεις Ερώτημα πόση μνήμη. Είναι ανοικτό. Αν υπάρχει

Διαβάστε περισσότερα

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 7ο μάθημα: Κρυφές μνήμες (cache) - εισαγωγή Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Σύστημα μνήμης! Η μνήμη είναι σημαντικό

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα

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

Σελίδα Φορτώθηκε Προσπελάστηκε Συχνότητα R Μ (dirty) Ιδεατή Μνήμη Άσκηση 1: Ένας υπολογιστής έχει τέσσερα πλαίσια σελίδων. Οι χρονικές στιγμές φόρτωσης, τελευταίας προσπέλασης, ο αριθμός αναφορών και τα bit αναφοράς (R) και μεταβολής (M ή dirty ) φαίνονται

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 8 : Διαχείριση Μνήμης Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 7: Διαχείριση Μνήμης. Φυσική και Λογική Διευθυνσιοδότηση. Προστασία. Εναλλαγή Μνήμης Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 9: Πολιτικές Αντικατάστασης Σελίδων - Λυγισμός (Thrashing) Η Απόλυτη LRU 2 Σε κάθε αναφορά στη μνήμη «Χρονοσφράγισε» το πλαίσιο Την ώρα της έξωσης: Ψάξε για την παλαιότερη

Διαβάστε περισσότερα

Λειτουργικά συστήµατα. Λογισμικό Συστήματος 1

Λειτουργικά συστήµατα. Λογισμικό Συστήματος 1 Λειτουργικά συστήµατα Λογισμικό Συστήματος 1 Figure 3.1 Batch processing 0-2 Λογισμικό Συστήματος Figure 3.2 Interactive processing 0-3 Λογισμικό Συστήματος Figure 3.3 Software classification 0-4 Λογισμικό

Διαβάστε περισσότερα

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ 2. Σκοποί και Λειτουργίες των ΛΣ Λειτουργικά Συστήματα Η/Υ I. Προστασία του υλικού II. Επικοινωνία με τον χρήστη III. Διαχείριση, αξιοποίηση και έλεγχος πόρων IV. Ικανότητα και ευκολία εξέλιξης Κεφάλαιο

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 7: Εικονική Μνήμη Σελιδοποίηση & Πίνακες Σελίδων Ιδεατή Μνήμη Βασισμένη σε Σελίδες (Σελιδοποίηση) Σπάσε τη μνήμη σε κομματάκια σταθερού μεγέθους (σελίδες) Δίλλημα:

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3.1 Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ

Διαβάστε περισσότερα

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

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 4: Διεργασίες Πρόγραμμα Πρόγραμμα 1 Πρόγραμμα

Διαβάστε περισσότερα

Εικονική Μνήμη (virtual memory)

Εικονική Μνήμη (virtual memory) Εικονική Μνήμη (virtual memory) Πολλά προγράμματα εκτελούνται ταυτόχρονα σε ένα υπολογιστή Η συνολική μνήμη που απαιτείται είναι μεγαλύτερη από το μέγεθος της RAM Αρχή τοπικότητας (η μνήμη χρησιμοποιείται

Διαβάστε περισσότερα

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Μαθηµα 2 ηµήτρης Λιούπης 1 Intel SA-1110 µc StrongARM core. System-on-Chip. Εξέλιξη των SA-110 και SA-1100. 2 ARM cores ARM: IP (intellectual

Διαβάστε περισσότερα

Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών. Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ. Μνήμη

Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών. Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ. Μνήμη Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ Μνήμη Διαχείριςη Μνήμησ Σε ϋναν ιδανικό κόςμο... Η μνόμη θα όταν ϊπειρη ςε μϋγεθοσ

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 8 : Υποστήριξη από το Λειτουργικό Σύστημα Φώτης Βαρζιώτης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες» 1. Εισαγωγή Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 3 «Διεργασίες» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης

Διαβάστε περισσότερα

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ 2/9/5 ΗΜΥ 32 -- ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ Διδάσκουσα: ΜΑΡΙΑ Κ. ΜΙΧΑΗΛ Επίκουρη Καθηγήτρια, ΗΜΜΥ (mmichael@ucy.ac.cy) [Προσαρµογή από Computer Architecture,

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ιεραρχία συχνά και το

Διαβάστε περισσότερα

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

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο, Εικονικοποίηση Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο, 2016-2017 Εικονικοποίηση - Σύνοψη Γενικά Οργάνωση VMM Τεχνικές Εικονικοποίησης Εικονικοποίηση Μνήμης Live Migration Εικονικοποίηση - Σύνοψη Γενικά Οργάνωση

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 2: Σύστημα Αρχείων Τα προγράμματα που εκτελούνται

Διαβάστε περισσότερα

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες Αρης Ευθυμίου Το σημερινό μάθημα Κρυφές μνήμες (cache memory) Βασική οργάνωση, παράμετροι: γραμμές, συσχετιστικότητα, συνολική χωρητικότητα Επίδοση:

Διαβάστε περισσότερα

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

Διαβάστε περισσότερα

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ ΗΜΥ 32 -- ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ Διδάσκων: Χάρης Θεοχαρίδης, ΗΜΜΥ ttheocharides@ucy.ac.cy [Προσαρμογή από Computer Architecture, Hennessy & Patterson,

Διαβάστε περισσότερα

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering Οργάνωση και Σχεδίαση Η/Y (HY232) Εργαστήριο 8 Χειμερινό Εξάμηνο 2016-2017 1. Προσομοίωση λειτουργίας ιεραρχίας

Διαβάστε περισσότερα

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

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) SMPcache Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) 1. Βασικές ρυθμίσεις του συστήματος: δημιουργία μια δικής μας σύνθεσης συστήματος. Το SMPcache είναι ένα εργαλείο με το οποίο μπορούμε

Διαβάστε περισσότερα