Linux下进程创建Fork()函数分析
来源:互联网 发布:专业汽车维修软件 编辑:程序博客网 时间:2024/05/16 10:30
一个进程包括代码、数据、进程控制块、堆栈等资源。进程在运行时还有自身的状态,这个自身的状态不是指宏观上的就绪态、等待态,而是指进程在CPU上运行时,CPU内部各个寄存器的值,进程在切换的时候,这些状态值是要保存在堆栈当中的,目的是下次进程运行时能够“无缝”连接。
Linux下,用于创建进程的函数是fork()函数。fork()函数创建的“子进程是父进程的一个完整拷贝”,也就是说子进程和父进程基本一样,不但拷贝了父进程的数据,也拷贝了父进程的代码,还有一个关键的地方是拷贝了父进程的运行状态,也就是说父进程运行到了什么地方,子进程运行是也是从对应的代码位置开始运行的。因此子进程是从自身被创建的代码处开始执行的。
下面我们举个例子,看看下面代码中创建了多少个子进程。
那么图中的代码共创建了多少个进程呢?这里大家需要注意的是“&&”操作,该操作的左边操作数如果为0,那么后面的语句就不执行了,与操作么,左边为0,右边就不用算了,结果肯定为0!因此如果父进程在执行“fork()&&fork()”语句中的第一个fork时,会生成一个子进程,但是由于该子进程给自身的返回值是0,因此该子进程在执行时,不会执行“fork()&&fork()”语句中后面的fork。具体的流程请看下面手画的图。
老羊快跑 微信公众号,欢迎关注。我们有最好的操作系统课程微论坛
阅读全文
0 0
- Linux下进程创建Fork()函数分析
- linux下fork函数创建进程
- linux下利用fork()函数创建进程
- Linux进程创建fork()函数
- Linux创建进程fork和vfork函数分析
- 通过fork函数创建进程的跟踪,分析linux内核进程的创建
- Linux 内核--fork()函数创建进程
- Linux 内核--fork()函数创建进程
- Linux 内核--fork()函数创建进程
- LInux 子进程创建函数fork简介
- Linux创建进程的fork()函数
- Linux进程创建之fork()函数
- Linux 创建子进程函数 --- fork
- fork函数创建进程
- 创建进程-fork函数
- Linux:fork进程创建
- Linux-fork进程创建
- Linux进程-fork创建新进程之文件分析
- Fresco属性
- ASP.NET中常见文件类型、扩展名、存放位置及用途总结
- bzoj 4622: [NOI 2003] 智破连环阵
- 苹果开发者账号申请的相关知识
- 拓扑排序(Topological Sort)
- Linux下进程创建Fork()函数分析
- asp.net(c#)网页跳转七种方法小结
- linux——用脚本自动安装虚拟机
- NOIP复赛复习(十)怎样才能拿到高分?
- 跟大师学习系统编程---操作系统加载(6)
- 6-16 Topological Sort(25 point(s))
- golang进阶(六)——restful开发优雅处理error
- oracle 11.2.0.3 expdp 时报错,ORA-39181: Only partial table data may be exported due to fine grain
- Java 数据 -- 集合