que tienen una gran memoria intermedia:obtener el comportamiento de copia por escritura del tenedor ing(), sin tenedor()
char *buf = malloc(1000000000); // 1GB
Si bifurcada un nuevo proceso, que tendría un buf, que la memoria compartida con el buf de los padres hasta que uno o el otro le escribieron. Incluso entonces, solo un nuevo bloque 4KiB necesitaría ser asignado por el kernel, el resto continuaría siendo compartido.
Me gustaría hacer una copia de buf, pero solo voy a cambiar un poco de la copia. Me gustaría el comportamiento de copiar y escribir sin bifurcaciones. (Como se obtiene de forma gratuita al bifurcar.)
¿Esto es posible?
seguro, pero no será "gratis": tendrá que gestionar su propia memoria y realizar un seguimiento de los cambios. –
Sí, quiero 'gratis'. Me preguntaba si había alguna solución basada en mmap, o tal vez algo que ni siquiera había imaginado. – fadedbee
¿Quizás mmap con MAP_ANONYMOUS y MAP_PRIVATE haría el trabajo? – fadedbee