next up previous
Nächste Seite: Kooperative Ausnutzung der Rechenzeit Aufwärts: Kooperativität Vorherige Seite: Kooperativität

Kooperative Ausnutzung des Adressraumes

Unter Raum wird hier der logische Adreßraum verstanden, in dem das Programm und seine Daten repräsentiert werden. Während es bei älteren Betriebssystemen (wie z.B. bei UNIX Edition VII) wenig Einflußmöglichkeiten auf die Aufteilung dieses Raumes gab, erlauben neuere Systeme innerhalb einiger Restriktionen die freie Verwendung des gesamten Raums. So gibt es unter den moderneren UNIX-Varianten neben dem traditionellen brk(2) die Systemaufrufe mmap(2) und shmat(2), die es erlauben, an (fast) beliebigen Stellen im Adreßraum Speicher zu allokieren, Dateibereiche hereinzuholen oder gemeinsame Speicherbereiche mit anderen Prozessen zu unterhalten. Die Ulmer Oberon-Bibliothek trennt die Verwaltung des Adreßraumes von der Speicherverwaltung, die sich um NEW und die automatische Freigabe von Speicher kümmert.

Die Adreßraumverwaltung wird durch das Modul Memory durchgeführt, das abgesehen von der Kenntnis eines INTEGER-Typs, der ausreichend für den logischen Adreßraum sein muß, vollkommen systemunabhängig ist. Es unterstützt auch vorwärts oder rückwärts wachsende Bereiche, die insbesondere für Keller geeignet sind. Memory bemüht sich dabei um eine größtmögliche Fairneß bei der Allokation wachsender Bereiche. Dies gelingt recht gut, wenn der logische Adreßraum bedeutend größer ist als der maximale physisch zur Verfügung stehende Raum.


next up previous
Nächste Seite: Kooperative Ausnutzung der Rechenzeit Aufwärts: Kooperativität Vorherige Seite: Kooperativität
Andreas Borchert 2000-12-18