日期:2014-05-16  浏览次数:21088 次

linux可以修改进程时间片的长短吗?
如果可以
how to do it?
thanks.

------解决方案--------------------
应该可以改吧?时间片太小,CPU浪费在进程切换上的时间比例就大,效率就低;而时间片太大,交互、实时性能就保证不了。
------解决方案--------------------
去看看schedule函数
------解决方案--------------------
改HZ的值,一般不建议修改
------解决方案--------------------
linux的时间片不能直接修改,可以通过修改进程的优先级来间接修改。调度程序会根据优先级动态调整时间片。
可以通过系统调用nice()来修改进程优先级,从而影响时间片。

note:只有超级用户才能在调用它时使用负值。
------解决方案--------------------
间接修改的话可以修改进程的优先级,从而让内核自己调整进程的时间片.
直接修改的话,可以自己写个系统调用或者模块,调整进程的task_struct结构的slices
就可以修改了
------解决方案--------------------
明确回答,no
不可能改某个进程的时间片长度,系统调度的时间片是既定的。具体在代码的什么地方,还没研究过,但是Linux的实现原理是这样的
想要一个进程获得更多的运行时间只有提高它的优先级。
------解决方案--------------------
探讨
george3038:
nice()不可以修改其他进程的静态优先级啊。
我要改变其他进程的时间片长短。

------解决方案--------------------
Linux内核创建新进程时分配给进程的时间片缺省值是200ms,用户可以通过系统调用来改变它。这个是直接改变;至于间接改变,正如楼上那位兄台所说,可以通过调整进程的优先级。