【无标题】

分析Linux内核创建一个新进程的过程

一.实验原理

1.进程的定义

进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。

2.进程与程序的区别

程序时静态的,它是一些保存 在磁盘上得指令的有序集合,没有任何执行的概念。

进程是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡。
3.linux系统中进程的表示
在linux系统中,进程由一个叫task_struct的结构体描述,也就是说linux中的每个进程对应一个task_struct结构体。该结构体记录了进程的一切。下面我们来看看它的核心字段。

struct task_struct
{

//这个是进程的运行状态,-1代表不可运行,0代表可运行,>0代表已经停止。
volatile long state;

/*
    flags是进程当前的状态标志,具体如下:

    0x0000 0002表示进程正在被创建

    0x0000  0004表示进程正准备退出

    0x0000  0040表示此进程被fork出,但是并没有执行exec

    0x0000   0400表示此进程由于其他进程发送相关信号而被杀死
*/
unsigned int flags;

//表示此进程的运行优先级
unsigned     int   rt_priority;

//该结构体记录了进程内存使用的相关情况
struct   mm_struct *mm;

//进程号,是进程的唯一标识
pid_t   pid;

//进程组号
pid_t  tgid;

//real_parent是该进程的"亲生父亲",不管其是否被"寄养"
struct  task_struct  *real_parent;

//parent是该进程现在的父进程,有可能是"继父"
struct   task_struct  *parent;

//这里child
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值