Ich verstehe die Funktionweise von mmap nicht ganz und hoffe ihr könnt mir das erklären.
mmap "mapped" ja ein file in den Adressraum von meinem Prozess. Gleichzeitig ist aber nicht der ganze RAM, der für das file nötig wäre belegt.
Wie funktioniert das und was heist "mappen" in dem Fall überhaupt ?
Wenn ein file zb 1MB auf der Platte hat, dann werd ich doch auch Adressen für 1MB (im RAM) mappen müssen, und damit sind die doch trotzdem belegt oder nicht ?
...oder "mappt" sich der Prozess da einfach immer nur einen fixen Adressraum und je nachdem was ich von dem file anspreche wird dort entsprechend eingelesen ? Nur dann hat man ja wieder "normale" I/Os und damit keinen Performancegewinn oder ?
Ich hoffe ihr versteht was ich meine
