Adressraum (Address Space)
Der Adressraum ist die Menge an Memory (Arbeitsspeicher), die für alle möglichen Adressen einer Recheneinheit – zum Beispiel einem Gerät, einer Datei, einem Server oder einem vernetzten Computer – zugewiesen wird. Das System stellt jedem Gerät und Prozess einen Adressraum zur Verfügung, der einen bestimmten Teil des Adressraums des Prozessors enthält. Dabei kann es sich um physische oder virtuelle Adressen handeln, die für einen Prozessor zugänglich oder für einen bestimmten Prozess reserviert sind.
Die Breite des Adressbusses und der Register schränkt den Adressraum des Prozessors häufig ein. Durch eine Memory-Managementtechnik, das so genannte virtuelle Memory, kann der Adressraum jedoch größer sein als der physische Arbeitsspeicher.
Der Adressraum wird entweder als flach oder segmentiert klassifiziert. Flache Adressräume werden durch inkrementell ansteigende Ganzzahlen dargestellt, die bei Null beginnen. Unabhängige Segmente, die durch Offsets oder Werte ergänzt werden, um sekundäre Adressen zu schaffen, stellen segmentierte Adressen dar.
In einigen Systemen kann der Adressraum durch ein Thunking-Verfahren von einem Format in ein anderes umgewandelt werden - ein maschinengenerierter Code auf niedriger Ebene, der für die Bereitstellung von Details eines Softwaresystems verwendet wird. Thunking wird oft verwendet, um Berechnungen zu verzögern, bis das System ein Ergebnis benötigt.
Einige Arten von Adressräumen
Hier sind einige Beispiele für Adressräume.
Virtueller Adressraum
Eine Binärzahl im virtuellen Arbeitsspeicher, die es Prozessen ermöglicht, einen Ort im Primärspeicher zu verwenden, ist eine virtuelle Adresse. Sie ermöglicht die Nutzung des Hauptspeichers, unabhängig von anderen Prozessen, und unterstützt die Nutzung von mehr Platz als tatsächlich vorhanden ist. Dies funktioniert, indem ein Teil des Inhalts auf eine Festplatte oder ein internes Flash-Laufwerk ausgelagert wird.
Logischer Adressraum
Ein logischer Adressraum ist eine Gruppe von logischen Adressen, die ein Computer für ein bestimmtes Programm erzeugt. Eine Gruppe von physischen Adressen, die den entsprechenden logischen Adressen zugeordnet sind, wird als physischer Adressraum bezeichnet.
Von IPv4 zu IPv6
Was den IP-Adressraum angeht, so wurde befürchtet, dass der 32-Bit-Adressraum der IP-Version 4 (IPv4) nicht ausreichen würde, um das enorme Wachstum des Internets zu bewältigen. Daher wurde IPv6 mit seinem 128-Bit-Adressraum entwickelt.
Subnet-Segmentierung des IPv6-Adressraums
Der Hauptzweck der Unterteilung (Subnetting) des IPv6-Adressraums besteht darin, die Effizienz der Adresszuweisung zu verbessern, indem ein Segment des Netzwerkadressraums unterteilt wird. Durch die Aufteilung eines umfangreichen Netzes in kleinere Gruppen miteinander verbundener Netze wird der Datenverkehr reduziert, was zu einer Erhöhung der Netzgeschwindigkeit beiträgt, da der Verkehr nicht über unnötige Routen fließen muss. Die Subnetzmaske teilt den Netzwerkteil der IP-Adresse und den Host-Adressbereich mit dem Computer. Der Host-Adressbereich umfasst die Adressen, die den Host-Computern im Netzwerk zugewiesen sind.
Randomisierung der Adressraumaufteilung
Die Randomisierung des Adressraum-Layouts ist ein Mechanismus für die Memory-Sicherheit, der die potenzielle Ausnutzung von Schwachstellen bei der Arbeitsspeicherbeschädigung verhindern soll. Durch das Hinzufügen von Zufälligkeiten in den Adressraum des virtuellen Memorys eines Prozesses wird die Ausnutzung von Sicherheitslücken erschwert.
Adressraum in Microsoft Azure
Der Adressraum für ein virtuelles Netzwerk in Microsoft Azure besteht aus einer oder mehreren Adressen, die sich nicht überschneiden. Classless Inter-Domain Routing-Notationen legen diese Adressbereiche fest und definieren sie als öffentlich oder privat. Beim Erstellen eines virtuellen Netzwerks wird der benutzerdefinierte private IP-Adressraum mit öffentlichen und privaten Adressen angegeben. Azure weist dann Ressourcen, einschließlich einer privaten IP-Adresse, aus dem Adressraum zu, den Sie in einem virtuellen Netzwerk festlegen.
Adressraum und Memory-Bereich im Vergleich
Die Adressen, die Programmierer verwenden, werden als virtuelle Adressen bezeichnet. Ein Satz dieser virtuellen Adressen wird als Adressraum bezeichnet.
Der Ort, an dem die Adresse im Hauptspeicher gespeichert wurde, wird als Speicherplatz bezeichnet. Eine Gruppe von Speicherplätzen wird als Memory-Bereich bezeichnet.
Übersetzung des Adressraums
Die Adressraumübersetzung beschreibt den Prozess der Zusammenführung der Rahmennummer (Frame Number) mit dem Offset-Teil einer logischen Adresse. Dieser Ansatz hilft bei der Bildung einer physischen Adresse.
Das Seitentabellenbasisregister (Page Table Register) enthält die Basisadresse für die Seitentabelle des aktuellen Prozesses. Dabei handelt es sich im Wesentlichen um ein Prozessorregister, das vom Betriebssystem verwaltet wird.