Linux进程优先级
1.进程优先级
1.1 基本概念
由于系统中进程数量众多,而CPU资源比较少甚至只有一个,进程之间需要竞争来使用CPU。这时让一个比较重要、需要优先执行的进程去和其他进程竞争,显然是不合理的。为了更合理的分配CPU资源, 就有了进程优先级。
优先级高的进程有优先执行的权利。此外,优先级还影响分配给进程的时间片长短。 重要的进程,应该分配多一些cpu时间片,好让其尽快完成任务。所有的进程都会有机会运行,但优先级高的进程会获取更多的cpu执行时间。配置进程优先级对多任务环境的Linux很有用,可以改善系统性能。
1.2 优先级取值范围
实时进程与非实时进程
- 和其他操作系统类似,Linux也支持两种进程:实时进程和非实时进程。 实时进程具有一定程度上的紧迫性,要求对外部事件做出非常快的响应;而非实时进程则没有这种限制。所以,调度程序要区分对待这两种进程,通常,实时进程要比非实时进程优先运行。实时进程会一直运行直到退出,除非它阻塞才会释放CPU, 实时进程只能被更高优先级的实时进程抢占,任意实时进程比非实时进程的优先级都要高。 这两种进程的区分也反映在task_struct 数据结构中。
进程优先级取值范围
在linux系统中,进程优先级的取值范围是0-139 , 而这个值又是由另外两个值组成的,一个是代表实时进程(realtime)优先级范围是[0, 99]</