当前位置: 技术问答>linux和unix
请教schuduler_tick()调用周期是多少呢
来源: 互联网 发布时间:2016-08-24
本文导语: 本帖最后由 piaopiaolanghua 于 2010-05-04 02:13:35 编辑 http://www.linuxforum.net/forum/showflat.php?Cat=&Board=linuxK&Number=645598&page=&view=&sb=&o=&vc=1 i386, SMP环境下的调用是: smp_apic_timer_interrupt > smp_local_timer_interrupt > update_process_times > ...
i386, SMP环境下的调用是:
smp_apic_timer_interrupt > smp_local_timer_interrupt > update_process_times > scheduler_tick
-------------------------------------------------------
我需要比较schuduler_tick()调用周期 和 一般进程的时间片。
我想大概知道schuduler_tick()大概多长时间被调用一次呢?从哪段代码可以看出呢?
接触内核时间不久,可能问题比较白痴,不过还是得悉心请教,知道的指导一下啦:-)
|
x86不清楚 arm下面一般是这样的
在arch/arm/mach-xxx/***time.c里面会设置这个时钟中断,周期由时钟中断的时钟源/HZ 来决定,其中HZ就是用户编译内核时指定的CONFIG_HZ 定时器会根据这个除后的结果设置定时器的值,时间到了,就会触发时钟中断,时钟中断的isr调用timer_tick()->update_process_times()->scheduler_tick()
在arch/arm/mach-xxx/***time.c里面会设置这个时钟中断,周期由时钟中断的时钟源/HZ 来决定,其中HZ就是用户编译内核时指定的CONFIG_HZ 定时器会根据这个除后的结果设置定时器的值,时间到了,就会触发时钟中断,时钟中断的isr调用timer_tick()->update_process_times()->scheduler_tick()
|
发现使用旧的基于HZ的代码是这条路,这样的话LZ希望的周期可以大概算出。
我也看到,高精度的代码也会走到update_process_times(),这个时候的周期就不好算了,中断由定时器决定。现在还不是很确定。