73 - 6.3.3 Adressbindung: Speicheradressen [ID:18546]
50 von 327 angezeigt

Nun kommen wir zum Hauptteil der heutigen Vorlesungsstunde, nämlich der Namensauflösung.

Und hier wollen wir uns einmal um die Speicheradressen kümmern, also wie wir von Normen zu Speicheradressen

kommen und andererseits eben auch um Adressen im Ablagesspeicher.

Und hier geht es um die Pfadnamen, wie man die Pfadnamen zum Beispiel auflöst,

etwa am Beispiel eines UNIX-ähnlichen Betriebssystems. Starten wir mit den

Speicheradressen. Nun, Adresse wird auch durchaus als synonymen betrachtet.

Das sieht man insbesondere, wenn man die alten Arbeiten zum Beispiel durchliest,

die den virtuellen Adressraum halt definiert haben und so was in einer

virtuellen Adresse definiert haben. Und da ist denn die Adresse eben entweder

ein Name oder ein Ort, je nachdem welches Bezugsystem wir hier vor Augen haben.

Wenn wir praktisch auf der programmiersprachlichen Ebene uns

befinden, dann wird so eine Adresse eben auch als Name bezeichnet oder eben auch

als virtuell Adresse. Also man gibt die Adresse einer eher abstrakteren

Bedeutung und würde denn praktisch so einen gesamten Satz von solchen Namen

eben in einem Adressraum, genauer müsste man denn sagen virtuellen Adressraum,

oder in einem Namensraum praktisch zusammenfassen.

Betrachtet man, sagen wir mal, in tiefere Ebene, also etwa konkret die Speicherebene,

die Hauptspeicherebene, dann würde man sagen, okay so eine Adresse bezieht sich

auf einen Ort im Hauptspeicher. Und dann würde das eben eine Speicheradresse

sein. Und der Satz von diesen Orten sozusagen, die Menge dieser Orte, macht

dann zusammen den Speicherraum aus. Also alle Adressen, die sich dann zum Beispiel

auf gültige Speicherzellen im Hauptspeicher zum Beispiel befinden werden.

Also hier sehen wir schon, dass die Abstraktionsebene, die man jeweils

einem durch eine Rolle spielt, um genau zu begreifen, was man denn mit einer

Adresse meint. Ist es einfach nur Name oder ist es wirklich ein Ort, der damit

verbunden ist? Nun, dieser Adressraum, der virtuellen Adressraum, den wir halt haben, ist also

eine Ansammlung von potentiell nutzbaren Namen, die Informationseinheiten in

irgendeiner Form repräsentieren. Das sind dann also Namen von Variablen, ganz

abstrakt. Prozeduradressen im Endeffekt zählen hier eben so darunter. Und wenn man

sich jetzt so Programmabläufe anschaut und etwa so Fallunterscheidungen

betrachtet, Schleifen betrachtet, also wie wir eigentlich gewohnt sind, auch

wirklich komplexere Programme zu formulieren, da hat man selten einen

Einzelpfad, der durch dieses Programm hindurchführt, sondern mehrere Pfade. Und

manche Pfade wären zur Ausführung überhaupt gar nicht gegangen im Endeffekt.

Und das bedeutet dann letztendlich, dass auf der anderen Seite eben gar keine

zwingenden Bewendigkeiten ist, dass hinter jeder einer solchen virtuellen Adresse

hinter jedem Namen, die man da halt hat, denn wirklich konkret nach hier

irgendeine Information sich verbergen muss.

Diese Deutung ist damit also sehr kontextabhängig. Die Deutung von dem, was

eine Adresse denn konkret ist oder eben auch was ein Name halt ist. Wir wissen

das vielleicht schon, dass eben derselbe Name, wenn wir verschiedene Adressräume

halt haben, denn durchaus verschiedene Orte adressieren kann. Also dass er

durchaus der Name doppelt belegt ist, aber er wird einfach eindeutig dadurch,

indem man halt den Kontext, den Namensraum als einen Kontext versteht. Oder

wir haben eine Situation, wo derselbe Ort eben über verschiedene Namen

adressiert werden kann. Auch diese Situation ist durchaus ganz gebräuchlich.

So diese Namen sind wünschenswerterweise, muss man sagen, denn eigentlich

ortstransparent. Das muss nicht zwingend sein, aber typischerweise, wenn wir

sozusagen den Begriff Namen assoziieren, dann meinen wir damit durchaus Orte, die

Adressen, die halt auf unterschiedliche Speicherorte sich beziehen können.

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

00:27:38 Min

Aufnahmedatum

2020-06-24

Hochgeladen am

2020-06-24 16:56:28

Sprache

de-DE

Tags

module programmstruktur Variablen Datentypen Preprozessor Gültigkeit
Einbetten
Wordpress FAU Plugin
iFrame
Teilen