c - Fork() 执行相同的程序并复制相同的变量 - 操作系统如何将两者保存在内存中,保护每个进程只访问他的变量?

标签 c linux

Fork() 在 fork 时执行相同的程序并复制父进程的相同变量,操作系统如何将两个进程都保存在内存中,以保证每个进程只访问他的变量?

最佳答案

当内核创建一个新进程时,它也会创建一个新的内存映射。最初,新映射中的所有页面都与父进程共享,但是一旦映射中的页面被子进程修改,这些页面就会被复制到它们自己的页面中。

要搜索的有用术语:虚拟内存、按需分页、内存映射、共享内存、写时复制。

关于c - Fork() 执行相同的程序并复制相同的变量 - 操作系统如何将两者保存在内存中,保护每个进程只访问他的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38423883/

相关文章:

c - 三态 boolean

linux - 致命: could not read Username for 'https://gitlab.com' : No such device or address on gitlab

javascript - 如何在 node.js 中以编程方式使用 grep 命令

c - RRD具有高精度?

c++ - glibc sprintf 可以在可重入函数中使用吗?

c - malloc 是否负责内存对齐?

c - 如何在计数中包含文件的最后一个字

c - 将地址传递给指针函数

c - 在 C 中对二维结构数组进行排序时出现问题

linux - Emacs Lisp 中的无效函数