Title: Τι γίνεται παιδιά με την MMU? Post by: kekropas on February 07, 2006, 14:16:15 pm Μια βοήθεια ακόμα θέλω. Στη σελ. 514-215 τι γίνεται? Έχασα λίγο τη μπάλα? Γιατί η εικονική διεύθυνση είναι 32bit και γιατί η φυσική 15bit? τι ακριβώς παίζει σε αυτή την παράγραφο?
Title: Απ: Τι γίνεται παιδιά με την MMU? Post by: Scopeng on February 07, 2006, 14:24:15 pm οι σελίδες είναι 514 - 515 ή 214 - 215;;;;;;;;;;;;
Title: Απ: Τι γίνεται παιδιά με την MMU? Post by: tolia on February 07, 2006, 21:21:07 pm Η εικονική μνήμη δεν είναι απαραίτητα ίδιου μήκους bits με τη φυσική διεύθυνση μνήμης.Αυτό που πρέπει να είναι ίδιο στις 2 διευθύνσεις είναι τα τελευταία 12 bits γιατί εκεί είναι ουσιαστικά η πληροφορία που χρειάζεσαι.Όλα τα υπόλοιπα bits είναι για να παραπέμψει η εικονική διεύθυνση στη θέση της φυσικής διεύθυνσης.
Title: Απ: Τι γίνεται παιδιά με την MMU? Post by: Junior on February 07, 2006, 22:22:44 pm Η εικονική μνήμη δεν είναι απαραίτητα ίδιου μήκους bits με τη φυσική διεύθυνση μνήμης.Αυτό που πρέπει να είναι ίδιο στις 2 διευθύνσεις είναι τα τελευταία 12 bits γιατί εκεί είναι ουσιαστικά η πληροφορία που χρειάζεσαι.Όλα τα υπόλοιπα bits είναι για να παραπέμψει η εικονική διεύθυνση στη θέση της φυσικής διεύθυνσης. Εγώ θα έλεγα ότι και τα 12 bits είναι για να παραπέμψει στη θέση της φυσικής μνήμης. Δεν υπάρχει καμιά πληροφορία ούτε στα 32 ούτε στα 15 bits, μόνο διευθύνσεις μνήμης είναι Να πως έχει το πράγμα: Η εικονική μνήμη είναι 2^32 θέσεις μνήμης ενώ η φυσική είναι 2^15 θέσεις μνήμης. Γι' αυτό χρειάζονται η μια διευθύνσεις μνήμης 32 bits και η άλλη 15 bits. Και οι δύο μνήμες χωρίζονται σε σελίδες των 2^12 θέσεων μνήμης, άρα η εικονική μνήμη έχει 2^20 σελίδες και η φυσική έχει 2^3 = 8 σελίδες. Οι σελίδες αντιγράφονται πάντοτε ολόκληρες από τη φυσική μνήμη στην εικονική, άρα κάθε 2^12 διαδοχικές θέσεις της κύριας μνήμης που αποτελούν μια σελίδα βρίσκονται διαδοχικά με την ίδια σειρά στην εικονική μνήμη όπου αποτελούν επίσης μια σελίδα. Πχ αν η θέση 0 της φυσικής μνήμης αντιγράφτηκε στη θέση 8192 της εικονικής μνήμης, τότε όλες οι θέσεις από 0 μέχρι 4095 (2^12 - 1) της φυσικής μνήμης έχουν αντιγραφεί στις θέσεις 8192 - 12287 της εικονικής μνήμης με τη σειρά. Η επόμενη θέση της φυσικής μνήμης, η 4096, μπορεί να γράφτηκε στη θέση 0 της εικονικής μνήμης ή στη θέση 4096 ή στη θέση 12288 κλπ. Η διεύθυνση μνήμης στην πραγματικότητα είναι μία, αλλά, αφού χωρίσαμε τη μνήμη (και τις δύο μνήμες) νοητά σε σελίδες, μπορούμε να πούμε ότι η διεύθυνση μας δίνει δύο πληροφορίες για τη θέση μνήμης: σε ποια σελίδα βρίσκεται και ποια η σχετική της θέση μέσα στη σελίδα Και στην εικονική μνήμη και στη φυσική μνήμη κάθε σελίδα έχει 2^12 θέσεις μνήμης, άρα για να προσδιορίσουμε σε ποια θέση της σελίδας αναφερόμαστε (σχετική θέση μέσα στη σελίδα) χρειαζόμαστε 12 bit. Επειδή όλες οι θέσεις της σελίδας έχουν την ίδια σειρά στη σελίδα της εικονικής και στη σελίδα της φυσικής μνήμης, η σχετική τους θέση θα είναι η ίδια. Γι' αυτό τα 12 bit είναι ίδια στη φυσική και εικονική διεύθυνση. Τα υπόλοιπα 20 bit της εικονικής διεύθυνσης και τα υπόλοιπα 3 bit της φυσικής διεύθυνσης μας λένε σε ποια σελίδα αναφερόμαστε (2^20 σελίδες στην εικονική και 2^3 σελίδες στη φυσική). Η εικονική διεύθυνση δίνεται στην MMU από το λειτουργικό σύστημα και έτσι η MMU ξέρει και τη σελίδα της εικονικής μνήμης και τη σχετική θέση της θέσης μνήμης. Τώρα η MMU πρέπει να κάνει αναφορά στην αντίστοιχη θέση στη φυσική μνήμη. Ξέρει ότι αν εντοπίσει τη σελίδα μέσα στη φυσική μνήμη, μπορεί εύκολα να βρει την (απόλυτη) θέση, αφού η σχετική θέση μέσα στη σελίδα της κύριας μνήμης είναι ίδια με τη σχετική θέση μέσα στη σελίδα της εικονικής μνήμης (τα 12 bit είναι ίδια). Πως όμως ξέρει ποια σελίδα της φυσικής μνήμης αντιστοιχεί στη σελίδα της εικονικής μνήμης που θέλει; Αυτή την πληροφορία δίνει ο αριθμός 110 (6 στο δεκαδικό), που βλέπεις στον πίνακα σελίδων. Αν η εικονική σελίδα δεν υπάρχει στη φυσική μνήμη, είναι μία άλλη ιστορία, που νομίζω είναι πολυ εύκολα κατανοητή αν πιάσεις το παραπάνω. Title: Re: Τι γίνεται παιδιά με την MMU? Post by: BabylonX on February 13, 2006, 20:06:16 pm Τα τελευταια ειναι για τη σχετικη θέση μεσα στη σελιδα! Αν εκτυπώσουμε 20 σελιδες απο ενα βιβλιο 200 σελιδων και παρουμε τις σελ απο 160-180 και θέλουμε να πουμε σε κάποιον άλλο να διαβάσει την τριτη σειρα απο τη σελιδα 165 τοθ βιβλιου και αυτός έχει τα φυλλαδια θα του πουμε "5η σελιδα, 3η σειρα".
Το "3η σειρα" δεν αλλάζει. Μονο ο αριθμος της σελίδας! Στο παράδειγμα μου η φυσική διευθυνση είναι "5η σελιδα 3η σειρα" ενω η virtual θα ήταν "165η σελιδα 3η σειρα" Κάπως έτσι είναι τα πράγματα και με την MMU. Ελπίζω να βοήθησα με το παραδειγμα μου! Title: Απ: Τι γίνεται παιδιά με την MMU? Post by: Junior on February 14, 2006, 08:27:01 am Πάρα πολύ πετυχημένο παράδειγμα! Μπράβο ρε BabylonX!!
|