Warum kompilieren Zeit & Ladezeit Adressbindung generieren identische physikalische und logische Adressen während der Ausführung Zeit Adressbindung erzeugen verschiedene physikalische & logische Adressen?Adresse Bindung generieren die gleiche Adresse
Antwort
Es ist lange her, seit diese Frage gestellt wurde, aber ich füge nur die Antwort für Archivierungszwecke hinzu.
Lassen Sie uns die folgende Definition einen Blick:
Logical address
: Adresse, die durch CPU
Physical address
: Adressen, wie durch Speicherverwaltungseinheit (MMU)
Jetzt in compile time binding
gesehen nehmen wir an, dass immer ein Speicherbereich zur Verfügung steht (was für das Programm ausreicht) und absoluter Code generiert wird. Also was auch immer Adressen CPU-generiert (wie Pointer-Adressen usw.) sind die gleichen wie was von MMU gesehen wird.
Eine bessere Version der Speicherauslastung ist, die Bindung bis zur Ladezeit zu verzögern, so dass der Speicher nicht vom Programm verwendet wird, das auf der Festplatte sitzt. Dazu wird der Code im verlagerbaren Format generiert. Dies ist load time binding
.
Jetzt ist execution time binding
ein bisschen anders wo Bindung bis zur Ausführungszeit verzögert ist. In diesem Fall erzeugt die CPU eine Adresse, sagen wir 300
, und führt alle Manipulationen an der Adresse 300
aus, aber wenn es einen tatsächlichen Speicherzugriff gibt, wird diese Adresse transformiert, indem der Wert des verschiebbaren Registers, beispielsweise R
, an diese Adresse addiert wird. Der logische Adressbereich ist 0-LIM
, während der physische Adressraum R-(R+LIM)
ist.
Lassen Sie es mich auch mit einem Beispiel erklären, damit es klar wird:
Swapping Überlegen Sie, ob Sie ein Programm mit load time binding
getauscht Sie es wieder an die gleiche Stelle wechseln müssen (wie alle Adressen in den Anweisungen waren Wie in dieser Adresse angegeben) können Sie in execution time binding
jeden Prozess an einen beliebigen Ort zurückgeben, da Sie nur den Wert im verschiebbaren Register ändern müssen und es wird einfach funktionieren. Daher wird die Speichernutzung erhöht.
Können Sie mir bitte sagen, was ist der Unterschied zwischen Umzug und Bindung? – Zephyr