Ich habe ein einfaches Segmentierungssystem mit der folgenden Segmenttabelle:
Starting Address Length (bytes)
660 248
1752 422
222 198
996 604
Bestimmen Sie die physikalische Adresse für die folgenden logischen Adressen; weisen auf Segmentfehler hin. Ich kenne die Antworten, aber ich verstehe nicht, wie sie berechnet wurden:
a. 0, 198 -- 858
b. 2, 156 -- 378
c. 1, 530 -- seg fault
d. 3, 444 -- 1440
e. 0, 222 -- 882
a) 660 + 198 = 858
b) 222 + 156 = 378
c) 530 > 422
d) 996 + 444 = 1440
e) 660 + 222 = 882
Zuerst müssen Sie prüfen, ob (Offset < Segmentgrenze) ein Problem vorliegt. Wenn dies der Fall ist, addieren Sie Offset + Basisadresse für die physikalische Adresse. Ist dies nicht der Fall, tritt ein Segmentfehler auf.
a) (0, 198) Wir überprüfen 198 < 248, was wahr ist, also berechnen wir die Physische Adresse = 660 + 198 = 858.
b) (2, 156) Wir überprüfen 156 < 198, was wahr ist, also berechnen wir die Physische Adresse = 222 + 156 = 378.
c) (1, 530) Wir prüfen 530 < 422, was falsch ist, sodass ein Segmentfehler auftritt.
d) (3, 444) Wir werden 444 < 604 überprüfen, was wahr ist, also berechnen wir die Physische Adresse = 996 + 444 = 1440
e) (0, 222) Wir überprüfen 222 < 248, was wahr ist, also berechnen wir die Physische Adresse = 660 + 222 = 882
Nick Alexejew
Chris Stratton