a) Berechnet bei einem modernen Betriebssystem mit virtuellem Speicher der Compiler, der Linker oder der Lader die reale (physische) Adressen eines Programms?
Ich würde Compiler und Linker ausschließen.
Kann mir jemand die Funktion eines Laders erklären?
Danke und Grüße
Chrystal
WIN105 PA 2a
-
- Forums-Scout
- Beiträge: 374
- Registriert: 23.09.04 15:43
- Kontaktdaten:
Naja, die Programme befinden sich i.d.R. auf irgendeinem Massenspeicher (z.B. Festplatte). Dort liegen sie in binärer Form vor. Zu diesem Zeitpunkt ist es völlig ungewiss wann und wo sie mal im Hauptspeicher (RAM) liegen werden falls sie gestartet werden.
Das Lader kopiert dieses Programm bei Bedarf nun in den Arbeitsspeicher und sorgt dafür, dass es an eine passende Stelle geladen wird. Im Programm selbst werden die logischen Adressen (für Sprungbefehle) nun in physikalische umgesetzt.
Kleines vereinfachtes Beispiel:
Sollte der Betriebssystem-Lader das Programm nun an die Speicheradressen 1000-1003 laden, dann steht ab 1000 dann beispielsweise:
Gleichzeitig verwaltet der Lader noch den zugewiesenen Speicher und legt entsprechende Referenzen ab, damit der Dispatcher/Scheduler (der Betriebssystemteil, der bestimmt welches Programm gerade ausgeführt werden soll) weiß wo er die Programme vorfindet, die zur Ausführung bereit sind.
Das Lader kopiert dieses Programm bei Bedarf nun in den Arbeitsspeicher und sorgt dafür, dass es an eine passende Stelle geladen wird. Im Programm selbst werden die logischen Adressen (für Sprungbefehle) nun in physikalische umgesetzt.
Kleines vereinfachtes Beispiel:
Code: Alles auswählen
1. Befehl
2. Befehl
3. Befehl
=> Sprungbefehl an den ANFANG
Code: Alles auswählen
1000 Mache irgendwas
1001 Mache irgendwas
1002 Mache irgendwas
1003 SPRINGE #1000
Danke erstmal für die Erklärung.
Aber bezieht sich das nicht nur auf den "verschiebenden Lader"?
Und die Adresse wird demnach also nicht vom Lader berechnet???
Dann wäre bei dieser Frage ja keine Möglichkeit korrekt...
Hoffe, ich befinde mich nicht total auf dem Holzweg durch den Win-Wald?!
Grüße
Chrystal
Aber bezieht sich das nicht nur auf den "verschiebenden Lader"?
Und die Adresse wird demnach also nicht vom Lader berechnet???
Dann wäre bei dieser Frage ja keine Möglichkeit korrekt...

Hoffe, ich befinde mich nicht total auf dem Holzweg durch den Win-Wald?!
Grüße
Chrystal