linux创建新进程的过程

在进程中调用fork()来创建子进程。fork()进一步调用do_fork(),要完成任务有:
1. 在内存空间为新进程分配任务结构体使用的空间,然后把当前进程的任务结构体的所有内容拷贝到子进程的任务结构体中;
2. 为新进程在其虚拟内存建立内核堆栈;
3. 对于新进程任务结构体中的部分内容进行初始化设置,例如,进程的链接关系,包括族亲关系、进程的标识和标志、各个定时器的初值等。主要是与父进程中不同的那些数据;
4. 把父进程的资源管理信息拷贝给子进程,包括虚存信息、文件信息、信号信息等。
5. 把子进程的剩余运行时间片变量counter设置为父进程counter的一半;
6. 把子进程加入到可运行队列中,由调度进程在适当时机调度运行。
7. 无论哪个进程使用cpu运行,都会继续执行do_fork()函数中的剩余代码,并返回他们各自的返回值(父进程中返回子进程的PID,子进程中返回0)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值