64 - 12.1.5 Adressraumkonzepte: Seitenbasierter logischer Adressraum [ID:27046]
50 von 226 angezeigt

Nun, der logische Adressraum ermöglicht nun eine Abstraktion von der realen Adressraumbelegung und

damit letztendlich auch eine Abstraktion von diesem Adressraumbelegungsplan, den wir gerade

vorher so ein bisschen kennengelernt haben. Dieser logische Adressraum beschreibt letztendlich eine

geradlinige Beschaffenheit des Hauptspeichers, zumindestens für sogenannte schwergewichtige

Prozesse. Der Hauptspeicher wird damit linear adressierbar, auch wenn wir den Hauptspeicher

praktisch physisch über verschiedene reale Adressbereiche realisiert vorfinden. Je nach

Hardware-Konfiguration würde man in dem logischen Adressraum diesen gesamten Hauptspeicher denn in

einen Adressraum, diese verschiedenen Bereiche auf der realen Ebene, in diesen einen Adressraum

zusammenfassen und damit linear adressierbar machen. Soweit bezüglich Hauptspeicher. Man geht aber auch

durchaus auch noch darüber hinaus und nimmt zum Beispiel andere Hardware-Einheiten mit hinzu,

die denn adressierbar sein sollen, die über normale Speicheradressen adressierbar sein sollen,

bildet diese praktischen, diesen logischen Adressraum mit ab. Das sind sogenannte speicher

abgebildete Objekte der Hardware, Memory Mapped, I.O. etwa ist so ein typisches Beispiel, wo man

besondere Geräteregister halt hat für die Interaktion mit den jeweiligen Peripheriegeräten

und erlaubt, dass diese Geräteregister logische Adressen bekommen und damit praktisch wie mit

ganz normalen Leseschreiboperationen und auch anderen Operationen praktisch von den Prozessen

zusammen im Kontext eines solchen logischen Adressraums denn referenzierbar werden. Aber

der wichtige Punkt hier ist eigentlich der Hauptspeicher, der auch wenn er auf der realen

Ebene fragmentiert wäre, im Endeffekt, dass er hier zu einer gesamten linearen Einheit praktisch

zusammengefasst wird letztendlich. Und in diesem logischen Adressraum, insbesondere natürlich

denn in diesem Hauptspeicher, den man damit anbietet, werden denn alle Text- und Datenadressen,

die für den Prozess denn gültig sein sollen, zusammengefasst. Wie ich eingangs schon sagte,

basiert das dann eben vor allem eben auch da darauf, was das Programm aussagt, also welche

Anweisungen das Programm halt enthält, wie groß das Programm halt ist, mit welchen Eingabedaten

dieses Programm denn arbeiten soll. Und der Adresswertebereich, der da dann halt praktisch

zustande kommt, bezogen auf Text- und Datenadressen, der macht denn eigentlich diesen logischen

Adressraum aus. Auf der Programmiersprachen-Ebene sehen wir hier mindestens zwei Segmente. Wir

kennen schon den Begriff Textsegment und den Begriff Datensegment aus der Begrifflichkeit

eines Unix-Prozesses. Hier bezogen auf die Programmiersprachen-Ebene meinen wir damit

schlichtweg im Textsegment sind alle diese Maschinenanweisungen enthalten, Programmkonstanten

sind da letztendlich enthalten. Das ist normalerweise nur lesbar und man würde sagen, das sind die

ausführbaren Anteile eines Programms enthalten. Wohingegen die Daten, etwa initialisierte Daten,

die globale Variable, vielleicht die Halda, also der Hieb, halt ein eigenes anderes Datensegment

dann entsprechend eben aufmacht. Das ist eine logische Sicht, die auf der Programmiersprachen-Ebene

eingenommen wird und die Größe dieser Segmente, dieser Text- oder Datensegment, die man hat,

hängen auch sehr stark von der Größe der Programme letztendlich an. Dann haben wir auf der

Maschinenprogramm-Ebene mindestens ein weiteres Segment, nämlich den Stack, das Stapelsegment,

wo man für jeden Prozess sowas wie die lokalen Variablen, umfällige Hilfsparameter oder

Hilfsvariablen ablegt und dann für die Prozedur- und Funktionsaufrufe die aktuellen Parameter

letztendlich übergibt, zumindest für Stapelmaschinen. Des Weiteren gibt es dann auch andere Segmente,

die sich da so rumtummeln auf der Maschinenprogramm-Ebene, etwa Gemeinschaftsbibliotheken,

also die Shared Libraries, die dann erst in Erscheinung treten und sozusagen Text- und

Datensegmente denn noch ergänzen. Dieser logische Adressraum und wo da jetzt praktisch diese Text-

und Datensegmente oder diese Shared Libraries denn abgebildet werden als Segment, als logische

Segmente, das wird durch das sogenannte Adressraummodell des Betriebssystems halt vorgegeben. Das ist also

nicht etwa durch die Hardware vorgeschrieben. Da hat Linux ein anderes Modell als Mac OS, als Windows.

Das ist also im Betriebssystem dann letztendlich definiert und da würde das Betriebssystem festlegen,

wie man dann unter Zuhilfenahme entsprechender Hardware, nämlich der Memory-Management-Unit,

diesen logischen Adressraum und die darin befindlichen logischen Segmente abbildet auf

die entsprechenden physisch zur Verfügung stehenden Objekte. Und da kann dann praktisch

Teil eines Kapitels:
12.1 Adressraumkonzepte

Zugänglich über

Offener Zugang

Dauer

00:24:14 Min

Aufnahmedatum

2020-12-21

Hochgeladen am

2020-12-22 01:28:43

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen