学习地址
创建子进程
-
所有进程都是由父进程创建出来的
pstree -T
init pid是1,是所有进程的祖先
ps aux
-
进程空间
进程间、进程与内核间相互隔离的,各自在自己的进程空间中运行;
一个进程不能读取修改另一个进程或内核的数据;
新进程被创建出来之后,便是一个独立的进程,拥有自己独立的进程空间,拥有唯一的pid,
拥有自己独立的pcb,新进程被内核同等调度执行; -
fork子进程
-
理解fork系统调用
- 一次fork调用,产生两次返回值
父进程返回一次、子进程返回一次
父进程返回大于0(子进程pid),子进程返回0 - 子进程与父进程几乎完全相同
各自有自己的进程空间,父子进程不共享这些存储空间;
例子:定义一个变量,子进程对变量赋值,不影响父进程变量值; - 子进程什么时候运行:fork调用返回后的代码开始运行
虽然父子进程有各自进程空间,但执行的代码是一样的,执行不同的代码段;
子进程运行fork以后的代码,不会运行fork之前的代码;