Linker, Loader und ausführbare Formate
Welche Aussage zur vom Linker durchgeführten Relokation ist richtig?
- ANachdem die endgültigen Adressen von Code und Daten feststehen, werden die Adressen in Befehlen und Daten durch korrekte Werte ersetzt
- BEin laufendes Programm wird auf einen anderen Computer verschoben und dort weiter ausgeführt
- CBei Speichermangel werden Seiten in den Massenspeicher ausgelagert
Antwort und Erläuterung anzeigen
Antwort: A. Nachdem die endgültigen Adressen von Code und Daten feststehen, werden die Adressen in Befehlen und Daten durch korrekte Werte ersetzt
Der Compiler erzeugt jede Datei, als begänne sie bei Adresse 0, und vermerkt als Relokationsinformationen die Stellen, an denen Adressen von Funktionen anderer Dateien oder eigener Variablen verwendet werden. Nachdem der Linker alle Dateien angeordnet und die tatsächlichen Adressen festgelegt hat, berechnet er für jede vermerkte Stelle die korrekte Adresse (oder den Abstand zum PC) und schreibt sie in den Befehl. Beim dynamischen Linken übernimmt der dynamische Linker zur Laufzeit einen Teil ähnlicher Ersetzungen.