Linux的进程管理

Linux内核中的进程信息放置在task_struct中,称为进程描述符的结构,该结构定义在<linux/sched.h>中。进程描述符能够完整的描述一个进程,博爱阔它打开的文件、进程的地址空间、挂起的信号、进程的状态等,例如

struct task_struct{
    unsigned long state;
    int prio;
    unsigned long policy;
    struct task_struct *parent;
    struct list_head tasks;
    pid_t pid;
    ......
}

其中存放了进程的所有信息,可以说是进程的一张身份证。


进程的状态

状态说明具体说明
TASK_RUNNING运行进程是可执行的(可以随时投入执行),或者正在执行
TASK_INTERRUPTIBLE可中断进程正在睡眠,等待某些条件的达成后,内核将进程设置为可执行,并唤醒随时准备投入执行
TASK_UNINTERRUPTIBLE不可中断同上,但是对信号不做反应,就算接收到了唤醒的信号也不会唤醒。一般是等待某件时间很快发生或者不受干扰的时候。较少使用
__TASK_TRACED被其他进程跟踪的进程例如被ptrace跟踪的进程
__TASK_STOPPED停止进程没有投入执行,在手动进程停止的信号时,会进入此状态

进程的状态转换大致如图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值