Information Technology Reference
In-Depth Information
chert. Die reale Adresse lässt sich anschließend durch Addition der Segmentbasis
und der virtuellen Bytenummer ermitteln (b). Da hierbei die Obergrenze eines Seg-
ments möglicherweise überschritten wird, muss die Gültigkeit der realen Adresse
durch Vergleich der Segmentgröße mit der virtuellen Bytenummer überprüft werden
(c). Gegebenenfalls führt dies zur Aktivierung eines Fehlersignals „Bereichüber-
schreitung“.
virtuelle Adresse
Segmentnr.
Bytenr.
s
b
Basis
Segmenttabelle
Attrib.
Limit
Segmentbasis
a
r
b
c
Bytenr.
Bereichsüberschreitung
reale Adresse
Bild 2.66. Segmentierende Speicherverwaltung. Die Segmentnummer indiziert eine im Hauptspei-
cher befindliche Tabelle, in der sich die reale Basisadresse (Bytenummer) und die Größe der zuge-
ordneten Einheit befindet
Die in jedem Deskriptor gespeicherten Attribute werden nicht für die Adressumset-
zung benötigt, sondern dienen der Zugriffsüberwachung bzw. dem Halten von Statu-
sinformationen. Zum Beispiel lässt sich hier festlegen, ob ein Segment lesend oder
schreibend zugreifbar ist und ob es ausgeführt werden darf, wobei man normaler-
weise zwischen hoch- und niedrigpriorisierten Zugriffen unterscheidet (siehe
Abschnitt 1.4.3). Weitere Attribute legen fest, ob es möglich ist, die Inhalte eines
Segments in den Cache zu laden oder nicht (z.B. bei Zugriffen auf Peripheriebau-
steine), ob ein Segment vom Prozessor nur exklusiv oder in einem Mehrprozessor-
system von anderen Prozessoren adressiert werden darf usw. - Die von einer Spei-
cherverwaltungseinheit im Deskriptor gespeicherten Statusbits zeigen z.B. an, ob
auf ein Segment zugegriffen bzw. ob es durch einen Schreibzugriff modifiziert
wurde. Letzteres lässt sich vom Betriebssystem zur Speicherung persistenter (dauer-
haft verfügbarer) Inhalte auf der Festplatte nutzen.
Beispiel 2.11. Die Segmentierung des Pentium 4 . Die Segmentnummer der virtuellen Adresse ist
entweder explizit im Befehl codiert oder wird in Registern der Speicherverwaltungseinheit gehal-
ten. Zum Beispiel ist im Pentium 4 von Intel u.a. eine segmentierende Speicherverwaltungseinheit
implementiert, die über sechs Segmentregister verfügt [80]. Die Auswahl des zu verwendenden
Segmentregisters geschieht aut omatisch in Abhängigkeit von der vom Prozessor bearbeiteten
1. Der Übersichtlichkeit halber wird die Adresse des Deskriptors hier durch Addition mit der
Basisadresse der Segmenttabelle ermittelt. Tatsächlich ist natürlich zu berücksichtigen, dass ein
Deskriptor mehrere Byte breit ist und bei Verwendung von Byteadressen die Segmentnummer
entsprechend dieser Breite multipliziert werden muss.
 
Search WWH ::




Custom Search