当前位置: 技术问答>linux和unix
linux可以修改进程时间片的长短吗?
来源: 互联网 发布时间:2016-05-12
本文导语: 如果可以 how to do it? thanks. | 用setpriority() int setpriority(int which, int who, int prio); | 应该可以改吧?时间片太小,CPU浪费在进程切换上的时间比例就大,效率就低;而时间片太大,交...
如果可以
how to do it?
thanks.
how to do it?
thanks.
|
用setpriority()
int setpriority(int which, int who, int prio);
|
应该可以改吧?时间片太小,CPU浪费在进程切换上的时间比例就大,效率就低;而时间片太大,交互、实时性能就保证不了。
|
去看看schedule函数
|
改HZ的值,一般不建议修改
|
linux的时间片不能直接修改,可以通过修改进程的优先级来间接修改。调度程序会根据优先级动态调整时间片。
可以通过系统调用nice()来修改进程优先级,从而影响时间片。
note:只有超级用户才能在调用它时使用负值。
可以通过系统调用nice()来修改进程优先级,从而影响时间片。
note:只有超级用户才能在调用它时使用负值。
|
间接修改的话可以修改进程的优先级,从而让内核自己调整进程的时间片.
直接修改的话,可以自己写个系统调用或者模块,调整进程的task_struct结构的slices
就可以修改了
直接修改的话,可以自己写个系统调用或者模块,调整进程的task_struct结构的slices
就可以修改了
|
明确回答,no
不可能改某个进程的时间片长度,系统调度的时间片是既定的。具体在代码的什么地方,还没研究过,但是Linux的实现原理是这样的
想要一个进程获得更多的运行时间只有提高它的优先级。
不可能改某个进程的时间片长度,系统调度的时间片是既定的。具体在代码的什么地方,还没研究过,但是Linux的实现原理是这样的
想要一个进程获得更多的运行时间只有提高它的优先级。
|
Linux内核创建新进程时分配给进程的时间片缺省值是200ms,用户可以通过系统调用来改变它。这个是直接改变;至于间接改变,正如楼上那位兄台所说,可以通过调整进程的优先级。