For the memory copy optimization, couldn't you do it COW. Stop execution in original process, copy the essential stuff, like the stack (hard to execute code without it) (or part of), start the new process, and start copying the rest of memory, if a load or store happens on an address not copied, treat it as a page fault, and copy that address (or n pages)?
Posted Dec 30, 2012 2:19 UTC (Sun) by hummassa (subscriber, #307)
[Link]
Unless you mean "if a load or store happens on an address not copied" both on the father process and on the child process, this would give you race conditions.