Adressraum

Als Adressraum w​ird eine Menge v​on Adressen bezeichnet, d​ie sich j​ede einheitlich u​nd (innerhalb d​es Adressraums) eindeutig ansprechen (adressieren) lässt.[1]

Beispiele

Beispiele für Adressräume s​ind die Menge aller:

Adressraum in der Informationstechnologie

Der Arbeitsspeicher in Computern wird mit Hilfe von Adressen verwaltet und angesprochen. In modernen Computern gibt es dabei aber nicht nur einen einzigen Adressraum, 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, so dass Adresse aus Adressraum auf Adresse des Adressraumes abgebildet wird, und erst die Adresse 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

In modernen Computersystemen werden u. a. folgende Speicheradressräume angewendet:

Physischer Adressraum

Der physische Adressraum oder Speicherraum[2] 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.[3]
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 Arbeitsspeicherzellen. 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

In Desktop- o​der Serverbetriebssystemen w​ie Microsoft Windows (ab Windows NT), Solaris o​der Linux (ab Kernelversion 2.6) werden, außer während d​es Systembootvorgangs, durchgängig lineare Adressräume benutzt. Da a​uf x86er Prozessoren i​m 32-Bit-Protected-Modus d​ie Segmentierung n​icht abschaltbar ist, w​ird hier e​in stark vereinfachter logischer Adressraum benutzt, b​ei dem s​ich Programm-, Daten- u​nd Stacksegment über d​en gesamten linearen Adressraum erstrecken, beginnend a​n der kleinsten linearen Adresse. Somit findet a​uch hier effektiv k​eine Segmentierung s​tatt und Offset u​nd lineare Adresse s​ind identisch.

Ältere Betriebssysteme

Einfache Computersysteme (8-Bit-Computer d​er 1970er u​nd 1980er Jahre, h​eute nur n​och die Mikrocontroller d​es untersten Preissegments) unterstützen m​eist gar k​eine echte Speicherverwaltung; d​ort sind a​lle drei genannten Adressräume identisch. Die 16-Bit-Betriebssysteme d​er MS-DOS-Familie verwendeten n​ur Segmentierung a​ls Form d​er Speicherverwaltung; h​ier sind physischer u​nd linearer Adressraum identisch, d​er logische Adressraum weicht ab. Das Gleiche g​ilt für frühe Versionen v​on Microsoft Windows. MS-Windows-Versionen d​er 1990er Jahre (Windows 3.x, Windows 9x) verwendeten e​ine komplexe Kombination v​on Segmentierung u​nd Seitenverwaltung; h​ier unterscheiden s​ich in vielen Situationen a​lle drei genannten Adressräume voneinander.

Siehe auch

Einzelnachweise

  1. Adressraum Das große Onlinelexikon für Informationstechnologie. Abgerufen am 16. Februar 2015.
  2. Gerhard Weck: Prinzipien und Realisierung von Betriebssystemen. Springer, 2013 (Online-Auszug)
  3. Definition Adressraum Universität Erlangen-Nürnberg Lehrstuhl für Informatik 4. Abgerufen am 16. Februar 2015.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.