36. Υλικό κατάτμησης

 

Κάθε εγγραφή στο πίνακα τμημάτων (segment table) έχει βάση (segment base)  και ένα όριο (limit). Η βάση περιέχει την αρχική φυσική διεύθυνση όπου το τμήμα εδρεύει στη μνήμη, ενώ το όριο ορίζει το μήκος κάθε τμήματος.

·         Μια λογική διεύθυνση αποτελείται από 2 μέρη: τον αριθμό τμήματος s, και ένα offset σε αυτό το τμήμα, d. Ο αριθμός τμήματος (segment number) χρησιμοποιείται ως ευρετήριο στον πίνακα τμημάτων. Το offset d της λογικής διεύθυνσης πρέπει να είναι ανάμεσα στο 0 και το όριο. Αν δεν είναι,  ενημερώνεται το λειτουργικό σύστημα (trap – προσπάθεια εύρεσης λογικής διεύθυνσης πέρα από το όριο του τμήματος). Αν το offset είναι νόμιμο, προστίθεται στο τμήμα βάσης για την παραγωγή της διεύθυνσης του επιθυμητού byte στη φυσική μνήμη.

·         Θεωρήστε τα ακόλουθα 3 παραδείγματα: Η CPU παράγει τη λογική διεύθυνση 1200. Αυτή διαιρείται στο τμήμα 1, offset 200.

·         Γίνεται πρόσβαση στο πίνακα στο τμήμα 1 , και το offset 200 συγκρίνεται με το όριο 400 για να δούμε αν είναι μικρότερο από το όριο.

·         O έλεγχος περνά, έτσι το offset προστίθεται στη βάση για την παραγωγή της φυσικής μνήμης 6300 + 200 = 6500.

·         Παράδειγμα 2: Η CPU παράγει τη λογική διεύθυνση 3250. Αυτή διαιρείται στο τμήμα 3, offset 250.

·         Γίνεται πρόσβαση στο πίνακα στο τμήμα 3, και το offset 250 συγκρίνεται με το όριο 1100 για να δούμε αν είναι μικρότερο από το όριο.

·         O έλεγχος περνά, έτσι το offset προστίθεται στη βάση για την παραγωγή της φυσικής μνήμης 3200 + 250 = 3450.

·         Παράδειγμα 3: Η CPU παράγει τη λογική διεύθυνση 2500. Αυτή διαιρείται στο τμήμα 2, offset 500.

·         Γίνεται πρόσβαση στο πίνακα στο τμήμα 2, και το offset 500 συγκρίνεται με το όριο 400 για να δούμε αν είναι μικρότερο από το όριο.

·         Ο έλεγχος αποτυγχάνει έτσι παράγεται ένα trap στο λειτουργικό σύστημα.