概述
-
1、 fork在创建子进程的时候完成的事情:
- 1.1创建子进程,子进程拷贝父进程的PCB。
- 1.2分配新的内存块和内核数据结构(task_ struct) 给子进程
- 1.3将父进程部分数据结构内容拷贝至子进程,
- 只是拷贝部分,例如子进程的PID进程号就是自己的,并不是拷贝于父进程。
- 1.4添加子进程到系统进程列表当中,添加到双向链表当中
- 1.5fork返回,开始调度器(操作系统开始调度)调度。
-
2、用户空间&内核空间
-
- 我们用一张图来理解用户空间和内核空间
- 内核空间:
- Linux 操作系统和驱动程序运行在内核空间。换句话说, 系统调用的函数都是在内核空间运行的,因为是操作系统提供的函数。
- 用户空间:
- 应用程序 都是运行在用户空间的。换句话说,我们程序员自己写的代码都是运行在用户空间的。但是,当程序猿写的代码调用了系统调用函数,则会切换到内核空间进行执行。执行完毕之后,在返回到用户空间继续执行用户的代码。
-
3.写时拷贝
-
最后
以上就是积极跳跳糖为你收集整理的关于fork函数你不知道的一些小细节的全部内容,希望文章能够帮你解决关于fork函数你不知道的一些小细节所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复