Anonymes Memory-Mapping
Verfasst: Montag 20. März 2006, 23:38
Hey Amigos, wie geht's?
Ich möchte in einem Programm zwecks effizienten Datenaustausches zwischen Threads Shared Memory verwenden. Da ich aber vor dessen Benutzung nie genau weiß, wieviel Daten darin abgelegt werden, möchte ich das ganze über anonymes Memory-Mapping realisiern, bei dem der Systemkern tatsächlich nur soviel physikalischen Speicher benutzt (allokiert), wie auch wirklich gebraucht wird. Es will mir allerdings nicht so recht gelingen:
Dies (und anderes) wirft mir aber nur einen EnvironmentError("[Errno 22] Invalid argument") entgegen.
Die Idee, als ersten Parameter für das file Objekt -1 zu übergeben, habe ich Python2.5 entnommen, wo anonymes Memory-Mapping dann mit mmap(-1, SIZE) auch funktioniern soll. Wie ich es allerdings unter 2.4 erreiche, ist mir gänzlich unklar. Hat jemand hier das Wissen und wäre bereit, es zu teilen?
Vielen Dank für eure Antworten!
Gruß,
/dev
Ich möchte in einem Programm zwecks effizienten Datenaustausches zwischen Threads Shared Memory verwenden. Da ich aber vor dessen Benutzung nie genau weiß, wieviel Daten darin abgelegt werden, möchte ich das ganze über anonymes Memory-Mapping realisiern, bei dem der Systemkern tatsächlich nur soviel physikalischen Speicher benutzt (allokiert), wie auch wirklich gebraucht wird. Es will mir allerdings nicht so recht gelingen:
Code: Alles auswählen
from mmap import mmap, MAP_ANONYMOUS
mm = mmap(-1, 1024, MAP_ANONYMOUS)
Die Idee, als ersten Parameter für das file Objekt -1 zu übergeben, habe ich Python2.5 entnommen, wo anonymes Memory-Mapping dann mit mmap(-1, SIZE) auch funktioniern soll. Wie ich es allerdings unter 2.4 erreiche, ist mir gänzlich unklar. Hat jemand hier das Wissen und wäre bereit, es zu teilen?
Vielen Dank für eure Antworten!
Gruß,
/dev