Linux Process Management(9) > 2. exec() : loads a new executable into the address space and > begins executing it. > 3. With Linux, fork() is implemented using copy-on-write > pages. Instead of duplicating the process address space, > the parent and the child can share a single copy. The data > is marked in such a way that if it is written to, a > duplicate is made and each process receives a unique copy. > 4. If exec() is called immediately after fork() - they never > need to be copied. The only overhead incurred by fork() is > the duplication of the parent's page tables and the > creation of a unique process descriptor for the child. > 8. P.23 fork() > 1. fork() <-- clone() <-- do_fork() <-- copy_process() > 1. Calls dup_task_struct() which creates a new kernel > stack, thread_info structure, and task_struct for > the new process whose values are identical to those