每个进程中都有一个进程控制块--PCB。PCB--维护进程相关的信息。然而,linux内核的进程控制块就是task_struct结构体,它可以保存进程的信息。
所有运行在系统里的进程都以task_struct链表的形式存在内核里。
每个进程都将它的信息放在task_struct结构体中,既然它是一个结构体,那么它里边包含些什么内容呢?
》》
1.进程标识符:
pid:进程
ppid:父进程
ppid pid
运行(R)的为父进程;僵死状态(Z)的为子进程。
2.进程状态:
常见的进程状态有:R(运行状态),S(可中断的休眠状态),D(不可中断的休眠状态),T(停止状态),t(暂停状态),
x(死亡状态),Z(僵死状态)
s:
3.进程优先级:
进程cpu资源分配的优先。进程的优先级的值越小,越早被执行。用PRI来表示。。
在这里,还有一个概念是NI。
NI是不是优先级呢?当然不是啦。但是它是影响优先级变化的一个因素(nice(nice -n -5 +可执行程序名),renice(renice -5 -p +进程号))。公式这样来表示:PRI(new)=PRI(old)+nice。
nice的使用:
nice -n -5 +可执行程序 就可以改变它的优先级啦。
还是举个例子吧:
按照上面的步骤执行,最终就通过nice将它的优先级改变了哦。
当然你想改变它的优先级只需要调整nice的大小即可。