Was sind Segmentregister? Warum ist der Speicher segmentiert? Wie erfolgt die Speichersegmentierung?


Beste Antwort

Ein Segment ist ein zusammenhängender Speicherblock. In einem segmentierten Speicherschema befindet sich der gesamte Speicher eines Prozesses in Segmenten. Die ersten virtuellen Speichersysteme (Burroughs B5000, Mulitcs) basierten auf Segmenten variabler Größe, die in den RAM und aus dem RAM kopiert wurden.

Ein Programm verweist auf jedes Segment als Offset auf ein Segmentregister. Der tatsächliche Inhalt des Segmentregisters wird vom System gesteuert. Das System weiß, wann auf ein Segment verwiesen wird, wenn das Segmentregister verwendet wird, und verwaltet damit den virtuellen Speicher.

Dies steht im Gegensatz zu paged virtueller Speicher, der heute überall verwendet wird, wobei die Quanten des virtuellen Speichers Speicherblöcke fester Größe sind. Paging ist komplexer und erfordert mehr Hardware-Unterstützung.

Multics des MIT haben sich massiv auf das moderne Computing ausgewirkt (einschließlich vieler Ideen, die in Unix und Linux integriert sind). Fred Pollack schloss sich dem Intel 286-Projekt frisch vom MIT an. Er sah die 8086-Segmentregister (eigentlich Basisregister) und setzte sich erfolgreich dafür ein, diese realen Segmentregister wie in Multics zu erstellen. (Fred wurde später Intel Fellow.)

Die 64-KB-Segmente des 286 hatten das gleiche Problem wie die Multics-Segmente: Sie waren zu klein. Allzu oft werden mehrere Segmente benötigt, um auf Speicherstrukturen zuzugreifen, was bedeutet, dass Segmentregister neu geladen werden und häufig das Betriebssystem einbezogen wird. Aufgrund der Auswirkungen auf die Leistung wurde die Segmentierung selten verwendet, und Segmentregister wurden im 8086-Kompatibilitätsmodus als Basisregister verwendet.

Der 32-Bit-Intel 386 fügte unter dem Segmentschema (meh!) Paged Virtual Memory (YEA!) Hinzu ). Das 64-Bit-Intel-Architekturmodell beseitigt Segmentregister vollständig, obwohl es bis zum 8086 immer noch Kompatibilitätsmodi aufweist.

Antwort

1.Was sind Segmentregister?

-> Wie wir alle wissen, sind Register im Prozessor vorhanden. Wir erstellen Segmente im Speicher (Segmentierung). Um den Startort dieser Segmente zu erhalten, speichern wir die Adresse dieser Segmente im Segmentregister. In kurzen Segmentregistern wird der Startort der im Speicher vorhandenen Segmente gespeichert, dh die Segmentadresse.

3.Wie erfolgt die Speichersegmentierung?

-> Die Speichersegmentierung erfolgt unter Verwendung von 16-Bit-Adressen. Zuerst geben wir die Segmentadresse an (Beginn des Segments). Nachdem wir die Segmentadresse angegeben haben, geben wir die Offset-Adresse () an, um auf Positionen in diesem Segment zuzugreifen.

Wir geben die Segmentadresse nur einmal an, danach geben wir die Offset-Adresse an.

geben wir die Segmentadresse und an Versatzadresse beide 16-Bit-Adressen als Programmierer. Nach Angabe dieser Adresse ist es die Pflicht des Prozessors, diese beiden Adressen in physikalische Adressen (reale Adressen) umzuwandeln.

physikalische Adresse = Segmentadresse * 10 + Versatzadresse

= 1000 * 10 + 2345

= 12345H

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.