Adressraum

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Die fraglichen Angaben werden daher möglicherweise demnächst entfernt. Bitte hilf der Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Näheres ist eventuell auf der Diskussionsseite oder in der Versionsgeschichte angegeben. Bitte entferne zuletzt diese Warnmarkierung.

Als Adressraum wird eine Menge von Adressen bezeichnet, die sich jede einheitlich und (innerhalb des Adressraums) eindeutig ansprechen (adressieren) lässt.

Beispiele[Bearbeiten]

Beispiele für Adressräume sind die Menge aller:

Adressraum in der Informationstechnologie[Bearbeiten]

Der Arbeitsspeicher in Computern wird mit Hilfe von Adressen verwaltet und angesprochen. In modernen Computern gibt es dabei aber nicht nur einen einzigen Adressenraum, vielmehr sind häufig Speicherverwaltungsmechanismen zuschaltbar, die es ermöglichen verschiedene Adressräume zu benutzen. Die Abbildung der Adressen eines Adressraums auf die jeweiligen Speicherzellen wird von der Speicherverwaltung übernommen. Diese Abbildung kann auch mehrstufig geschehen, sodass Adresse a aus Adressraum A auf Adresse b des Adressraumes B abgebildet wird und erst die Adresse b wird dann auf die Adresse der anzusprechenden Speicherzelle abgebildet. Des Weiteren kann sich die Adressumsetzung während der Laufzeit ändern, wodurch ein und derselben Adresse eines Adressraums zu verschiedenen Zeitpunkten verschiedene Speicherzellen zugeordnet sein können.

Gebräuchliche Speicheradressräume[Bearbeiten]

In modernen Computersystemen finden u. a. folgende Speicheradressräume Anwendung:

Physischer Adressraum
Der physische Adressraum ist die Menge aller durch einen Prozessor ansprechbaren Speicheradressen. Die Größe dieses Adressraumes wird durch die Zahl der Adressleitungen des Prozessors oder der Speicherverwaltung (MMU) begrenzt.
Der physische Adressraum wird in der Regel nicht einfach auf den vorhandenen Arbeitsspeicher abgebildet („gemappt“). Bestimmte Adressbereiche sind für spezielle Funktionen reserviert, sie dienen der Kommunikation mit Hardwarekomponenten (zum Beispiel die AGP-Apertur zur Kommunikation mit der Grafikkarte) oder dem Zugriff auf nichtflüchtigen Speicher (zum Beispiel Flash-ROMs, die das BIOS enthalten). Der im System verfügbare Arbeitsspeicher (RAM) wird über Adressbereiche zwischen den reservierten Bereichen angesprochen. Dadurch ist der vorhandene Arbeitsspeicher mancher Systeme nicht über einen einzigen, zusammenhängenden und an der ersten physischen Adresse beginnenden Adressbereich ansprechbar. Abhängig von der Systemspeicheraustattung sind Teile des physischen Adressraums nicht zugeordnet, also unbenutzbar.
Um den physischen Adressraum zu erweitern, hat man früher Bank Switching in Form von Erweiterungen wie etwa EMS verwendet.
Neben dem Arbeits- und Programmspeicher ist auch noch der I/O-Adressraum wichtig, der je nach Computersystem als Memory Mapped I/O oder als Isolated I/O ausgeführt sein kann.
Linearer Adressraum
Bei modernen Prozessoren können Betriebssystem und MMU in Zusammenarbeit einen virtuellen von der ersten bis zur letzten linearen Adresse zusammenhängenden Adressraum bilden. Dies geschieht mittels sogenannter Seitenverwaltung. Sie ermöglicht einen linearen Adressraum, der größer sein kann als die Menge der real im System vorhandenen Arbeitspeicherzellen. Je nach Prozessor und dessen MMU kann der lineare Adressraum sogar größer sein als der physische Adressraum (zum Beispiel beim PowerPC).
Wird keine Seitenverwaltung unterstützt oder ist sie abgeschaltet, sind physischer und linearer Adressraum identisch.
Logischer Adressraum
Mit Hilfe von Segmentierung teilen Betriebssystem und MMU den linearen oder (direkt) den physischen Adressraum in Segmente und bilden somit den logischen Adressraum. Logische Adressen bestehen aus zwei Teilen, einer Segmentadresse und einem Offset. Die Segmentadresse gibt an, aus welchem Segment des linearen Adressraums eine Adresse angesprochen werden soll. Der Offset adressiert, relativ zum Segmentanfang, die Speicherstelle innerhalb des Segments, die angesprochen werden soll. Ist nur der Offset angegeben, ist meist das aktuelle Segment gemeint („implizite Adressierung“).
Ist die Speichersegmentierung nicht vorhanden oder deaktiviert, sind logischer und linearer Adressraum identisch.

Aktuellere Betriebssysteme[Bearbeiten]

In Desktop- oder Serverbetriebsystemen wie Windows XP, Solaris oder Linux (ab Kernelversion 2.6) werden, außer während des Systembootvorgangs, durchgängig lineare Adressräume benutzt. Da auf x86er Prozessoren im 32-Bit-Protected-Modus die Segmentierung nicht abschaltbar ist, wird hier ein stark vereinfachter logischer Adressraum benutzt, bei dem sich Programm-, Daten- und Stacksegment über den gesamten linearen Adressraum erstrecken, beginnend an der kleinsten linearen Adresse. Somit findet auch hier effektiv keine Segmentierung statt und Offset und lineare Adresse sind identisch.

Siehe auch[Bearbeiten]