chrt 进程的优先级设置


参考以下链接

https¥www.cnblogs.com/abels0025/p/11430740.html

系统的整体优先级策略是:如果系统中存在需要执行的实时进程,则优先执行实时进程。直到实时进程退出或者主动让出CPU时,才会调度执行非实时进程。实时进程可以指定的优先级范围为1-99

调度队列:

新产生的进程都会先获得一个时间片,进入活动队列等待调度到CPU执行。而内核会在每个tick间隔期间对正在CPU上执行的进程进行检查。一般的tick间隔时间就是cpu时钟中断间隔,每秒钟会有1000个,即频率为1000HZ(这是可以设置的)。每个tick间隔周期主要检查两个内容:1、当前正在占用CPU的进程是不是时间片已经耗尽了?2、是不是有更高优先级的进程在活动队列中等待调度?如果任何一种情况成立,就把则当前进程的执行状态终止,放到等待队列中,换当前在等待队列中优先级最高的那个进程执行。

nice值:

如果有两个nice值为0的进程同时占用cpu,那么它们应该每人占50%的cpu,如果将其中一个进程的nice值调整为1的话,那么此时应保证优先级高的进程比低的多占用10%的cpu,就是nice值为0的占55%,nice值为1的占45%。那么它们占用cpu时间的比例为55:45。这个值的比例约为1.25。就是说,相邻的两个nice值之间的cpu占用时间比例的差别应该大约为1.25。进程的优先级应该是从父进程继承来的,这个值一般是0。

举例:

通过NICE命令来对一个将要执行的bash命令进行NICE值设置:

[root@zorrozou-pc0 zorro]# nice -n 10 bash

这样我就又打开了一个bash,并且其nice值设置为10

nice值的-20到19,映射到实际的优先级范围是100-139

PR值:

ps命令中看到的PRI值或者top命令中看到的PR值。

nice值表示NI值,叫做静态优先级

priority值表示PRI和PR值,或者叫动态优先级。

我们也统一将“优先级”这个词的概念规定为表示priority值的意思

实时进程和非实时进程:

如果系统中存在需要执行的实时进程,则优先执行实时进程(PR为0-99); 直到实时进程退出或者主动让出CPU时,才会调度执行非实时进程(PR为100-140)。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM