65 - 12.1.6 Adressraumkonzepte: Segmentierter logischer Adressraum [ID:27047]
50 von 176 angezeigt

Nun die Abstraktion von der realen Adressraumbelegung kann auch anders

geschehen, nämlich auf Basis eines sogenannten zweidimensionalen Adressraums. Ein logischer

Adressraum, der in zwei Dimensionen aufgespannt wird. Das ist die Segmentierung, das ist der

segmentierte Adressraum, den man durch die Harpwärter entsprechend auch unterstützt können muss. Und

hier meint eben die Segmentierung, die Unterteilung des Adressraums in Einheiten von möglicherweise

verschiedener Größe. Und diese Einheiten sind dann eben die Segmente, die jeweils eine gewisse

Länge haben, wo denn diese Segmente dann praktisch auch in Form von Tawellen und anderen Strukturen

den Linear aufgezählt sind und selbst gleich große Einheiten linear aufzählen. Jedes Segment,

es bildet denn eine lineare Folge von festen Speichereinheiten. Diese Speichereinheit kann

das einfache Byte sein. Dann würden wir sagen, dass dieses Segment immer zwingend zusammenhängend

im realen Adressraum platziert werden muss. Wenn wir also denn ein Segment S bestimmter Größe

halt haben, was bedeutet, eine bestimmte Anzahl von Bytes haben, dann müssen wir genau diese Anzahl

von Bytes im realen Adressraum irgendwo im Hauptspeicher finden, um dahin ein entsprechendes

Segment abbilden zu können. Die andere Einheit, die man da typischerweise sieht, ist die Seite.

Seiten, die wir gerade kennengelernt haben. Jede Seite ist ja gleich groß, aber ist natürlich

halt ein Vielfaches von diesen Bytes, typischerweise den 4K. Das bedeutet denn,

dass man hier eigentlich eine Kombination von der Segmentierung und der Seitennummerierung hat.

Man spricht eben auch von der Seitennummerierten Segmentierung, Page Segmentation. Was denn

bedeutet, dass ein Segment sozusagen dem vorher kennengelernten eindimensionalen Adressraum

entspricht und auf unterschiedliche Seitenrahmen abgelegt werden kann. Also demzufolge im realen

Adressraum nicht zwingend zusammenhängend liegen muss. Sehr wohl müssen natürlich denn die Seiten,

die eins zu eins auf den Seitenrahmen abgebildet werden, im realen Adressraum zwingend liegen,

zusammenhängend liegen, aber nicht das gesamte Segment. Das Segment ist dann praktisch,

wenn man so will, ein seitennummerierter Adressraum. Und die zweite Dimension hier,

jetzt wenn man von Segmentierung spricht, kommt durch die Benennung, durch die Adressierung eines

solchen Segments letztendlich zustande. Das heißt also so eine generierte Adresse,

so eine segmentierte Adresse von einem Prozess wird eben als ein Paar aufgefasst. Da haben wir

dann einmal S als Segmentnamen oder auch eben die Segmentnummer. Das ist die erste Dimension,

die man hat. Hat bestimmt einen Wertebereich, wie das für jede Form der Adressen gilt. Und

dann ist die zweite Komponente in diesem Paar D als Display, ist eine Verschiebung innerhalb

des Segments verstanden, die die zweite Dimension denn repräsentiert ist. Dann praktisch die Beidadresse

wenn man so will, innerhalb des Segments mit einem entsprechenden Wertebereich,

der eben auch von der Hardware vorgegeben ist. Dieser Segmentname übernimmt die Funktion des

Segmentindex, so wie wir das bei der Seitennummerierung vorher gesehen haben. Die

Abbildung ist tabellengesteuert. Wir haben also eine Segmenttabelle, die indiziert wird mit

diesem Segmentnamen. Und in dieser Segmenttabelle sind Segmentdeskriptoren drin, die einfach genau

ähnlich wie für eine Seite das Segment im realen Adressraum beschreiben, also die Anfangsadresse

festlegen, die Länge festlegen und dann dem Segment auch noch weitere andere Attribute

denn zuschreiben können. Auch hier ist der Deskriptor, der Segmentdeskriptor, so ein zentrales

Verbundobjekt, um dann einfach diese Abbildung durchzuführen, um den solchen Segmenten dann

eben auch noch gewisse statische und dynastische Eigenschaften dann zuzuschreiben. Nun, im Wesentlichen

sehen die durchaus ähnlich aus wie die Seitendeskriptoren. Der wesentliche Unterschied

könnte man sagen, besteht darin, dass wir hier eine Längeninformation haben. Also Segmente im

Gegensatz zu Seiten können ja immer unterschiedlich groß sein und deshalb steht in jedem Segmentdeskriptor

eben auch drin praktisch die Information, wie lang denn dieses Segment dann jeweils ist. Das sind

dann die Anzahl der Granulate, wie ich sie bezeichnet habe. Je nachdem, ob sozusagen die

Granulatgröße ein Byte ist, dann hätten wir halt hier eine Byte-Anzahl drin oder das Granulat ist

eine Seite, dann hätten wir halt hier eine Segmentlänge hinsichtlich der Anzahl der Seiten,

die zum Beispiel jetzt in diesem Segment denn drin liegen. Die Basisadresse ist die Anfangsadresse

im realen Adressraum, im Hauptspeicher, wenn man so will. Auch hier wird man entsprechend die

Teil eines Kapitels:
12.1 Adressraumkonzepte

Zugänglich über

Offener Zugang

Dauer

00:18:43 Min

Aufnahmedatum

2020-12-21

Hochgeladen am

2020-12-22 01:08:57

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen