Was ist der Unterschied zwischen einer virtueller und einer realen Adresse in der Informatik?

...komplette Frage anzeigen

3 Antworten

Also ich versuche das abstrakt zu erklären.

Im Memory hast du physische Adressen (Speicherplatz 1, Speicherplatz 2 ... Speicherplatz n).

Jedem Prozess wird ein virtueller Adressraum (Speicherplatz 1, Speicherplatz 2, Speicherplatz n) zur Speicherung zur Verfügung gestellt.

Dabei startet jeder virtuelle Adressraum bei Speicherplatz 1. Insofern startet auch jeder Prozess mit dem virtuellen Speicherplatz 1.

Im physischen Adressraum werden diese virtuellen Adressräume eingegliedert. Das heißt, das Prozess 1 bei Speicherplatz 1 startet und Prozess 2 bspw. bei Speicherplatz 5. Im virtuellen Adressraum hingegen starten beide Prozesse bei Speicherplatz 1.

Fazit: Es gibt einen physischen Adressraum im Speicher. Dieser wird in virtuelle Adressräume für einzelne Prozesse/Threads unterteilt.

wolfgang1956 02.07.2017, 11:53

Also ich versuche das abstrakt zu erklären.

Der Fragensteller und ich wollen das jetzt aber konkret wissen … :-)

0

Virtuelle Adressen sind Namen für physische Adressen.

Die physische Adresse einer Variablen kann sich ändern, ohne dass die virtuelle Adresse sich ändert.

grtgrt 01.07.2017, 16:24

Reale Adressen sind physische Adressen.

0
wotan38 03.07.2017, 11:38

Variable sind meines Erachtens keine virtuellen, sondern symbolische Adressen (Texte) und werden erst vom Compiler in virtuelle (Nummern) umgesetzt. Erst beim Laden des fertigen Programmes wird ein realer Speicherbereich zugewiesen. Konkret bedeutet das, dass nach dem Erstellen des Programmes der Speicherbereich noch völlig offen ist, wo das Programm später ausgeführt wird.

Die Erklärung von HannibalRising gibt das korrekt wieder.

0
grtgrt 03.07.2017, 13:20
@wotan38

Du hast recht: Die Bezeichnung "symbolische Adresse" ist weit gebräuchlicher als die Bezeichnung "virtuelle Adresse".

Aber erstens ist beides dasselbe und zweitens war hier ja wirklich nach der Bedeutung "virtueller" Adressen gefragt worden - was berechtigt war, denn man spricht ja tatsächlich vom "virtuellen Adressraum" eines Prozesses (in dem Sinne, wie HannibalRising es erklärt).

Nebenbei: Von "realen" Adressen spricht man eigentlich nicht. Man nennt sie "physische" Adressen.

0

Das kann man alles in der Wikipedia nachlesen.

Dazu kommen weitere Details wie Speichersegmentierung, Adressumsetzung uvam.

Was möchtest Du wissen?