Hallo,
im Buch von Tanenbaum habe ich eine interessante Idee gelesen.
Da ja ab dem Pentium II (oder III - muss ich nochmal nachlesen) ja lineare Addressräume bis 64 GByte unterstützt werden bzw. bei 64 bit CPUs sogar einige tausend Terrabyte, habe ich mir gedacht, da ich sowieso auf moderne Architekturen setzen wollte, dass ich Dateien nicht nur lese, sondern einfach komplett in den Addressraum des Programs lade, das diese Datei öffnet.
Durch Paging kann ich ja dann, wenn darauf zugegriffen wird, den entsprechenden Teil laden - geht ja dann einfach von Festplatte - und das Programm ließt dann nur noch aus dem RAM. Falls dann irgendwann weitergelesen wird, brauch ich gar kein I/O mehr, da ich ja einfach aus meinem Addressraum lese - es sei denn, ich muss eine neue Page laden.
Es gibt da nur zwei Probleme, die mir jetzt eingefallen sind:
1. Der Page-Daemon muss das Dateiformat verstehen, in welchem die Dateien vorliegen. Wenn man also mehrere Datei-Format unterstützt müsste dann immer zunächst der Treiber für dieses Format aufgerufen werden - d.h. mehr Overhead
2. Der Programmierstil ändert sich gravierend gegenüber anderen OS. Ich bekomme dann nicht mehr meine Bytes, die ich auslesen wollte, sondern einen Pointer zum Begin der Datei, die in meinem Addressraum liegt. Durch einfach Pointerarithmetik komme ich dann zu meinen Bytes, die ich haben möchte, aber es ist eine Umstellung.
Haltet ihr sowas für realisierbar. Eben einmal OS-technisch und einmal User-technisch?
Schonmal Danke für die Antworten