关于linux中的实时调度策略,主要包括FIFO两种,在文章http://4989715.blog.51cto.com/4979715/1416852中有介绍。RR实时调度策略针对优先级相同的实时进程,采用了平分时间片的做法,这对于需要赋予不同权重的进程而言是不足的,本文对linux3.5.4的内核代码做出修改,使得同一优先级的进程可以根据其不同的重要性分配权重,称为WRR调度策略,内核源码稍后上传,下面给出改进后的测试用例及测试结果。
1、测试环境
内核版本:linux-3.5.4-WRR
执行顺序:
终端一:
stap ./cswmon_spec.stp 90
终端二:
/root/ws/ms
WRR 测试程序:
//t1.c #define _GNU_SOURCE /* See feature_test_macros(7) */ #include <sched.h> #include<stdio.h> #include<sched.h> #include<time.h> #include<stdio.h> #include<stdlib.h> int main() { time_t t1,t2; struct sched_param param; int sched_method=SCHED_WRR; int ret=0; int nrcpus=2; cpu_set_t cm; int i; ret=sched_getaffinity(0, sizeof(cm), &cm); for ( i = 0; i < nrcpus; i++ ) { if ( CPU_ISSET_S(i, sizeof(cm), &cm) ) { printf("t1 CPU %d is set\n", (i+1)); } } time(&t1); param.sched_priority=70; param.wrrunits_num=50; ret=sched_setscheduler(getpid(),sched_method,¶m); if(ret) { fprintf(stderr,"set scheduler to failed\n"); return -4; } unsigned int a=0; while(a<3000000000) { a++; } time(&t2); printf("The t1: %d is done,a=%u,time:%lds\n",getpid(),a,t2-t1); return 0; } |
//t2.c #define _GNU_SOURCE /* See feature_test_macros(7) */ #include <sched.h> #include<stdio.h> #include<sched.h> #include<time.h> #include<stdio.h> #include<stdlib.h> int main() { time_t t1,t2; struct sched_param param; int sched_method=SCHED_WRR; int ret=0; int nrcpus=2; cpu_set_t cm; int i; ret=sched_getaffinity(0, sizeof(cm), &cm); for ( i = 0; i < nrcpus; i++ ) { if ( CPU_ISSET_S(i, sizeof(cm), &cm) ) { printf("t2 CPU %d is set\n", (i+1)); } } time(&t1); param.sched_priority=70; param.wrrunits_num=10; ret=sched_setscheduler(getpid(),sched_method,¶m); if(ret) { fprintf(stderr,"set scheduler to failed\n"); return -4; } unsigned int a=0; while(a<3000000000) { a++; } time(&t2); printf("The t2: %d is done,a=%u,time:%lds\n",getpid(),a,t2-t1); return 0; } |
//ms.c #define _GNU_SOURCE /* See feature_test_macros(7) */ #include <sched.h> #include<stdio.h> #include<sched.h> #include<time.h> #include<stdio.h> #include<stdlib.h> int main() { time_t t1,t2; struct sched_param param; int sched_method=SCHED_WRR; int ret=0; int nrcpus=2; cpu_set_t cm; int i; ret=sched_getaffinity(0, sizeof(cm), &cm); for ( i = 0; i < nrcpus; i++ ) { if ( CPU_ISSET_S(i, sizeof(cm), &cm) ) { printf("t1 CPU %d is set\n", (i+1)); } } time(&t1); param.sched_priority=70; param.wrrunits_num=50; ret=sched_setscheduler(getpid(),sched_method,¶m); if(ret) { fprintf(stderr,"set scheduler to failed\n"); return -4; } unsigned int a=0; while(a<3000000000) { a++; } time(&t2); printf("The t1: %d is done,a=%u,time:%lds\n",getpid(),a,t2-t1); return 0; } |
//cswmon_spec.stp global time_offset probe begin { time_offset =gettimeofday_us() } probe scheduler.ctxswitch{ if(next_task_name =="t2" || prev_task_name == "t1" || next_task_name == "t1" || prev_task_name == "t2") { t=gettimeofday_us() printf("time_off (%8d)%20s(%6d)(prio=%4d)(state=%6d)---> %20s(%6d)(prio=%4d)(state=%d)\n",t-time_offset,prev_task_name,prev_pid,prev_priority,(prevtsk_state),next_task_name,next_pid,next_priority,(nexttsk_state)) } } probe scheduler.process_exit {if(execname() == "t2") printf("task:%s PID (%d) PRI(%d) EXIT \n",execname(),pid,priority); } probe timer.s($1) { printf("---------------------------------------\n") exit(); } |
WRR的测试结果
time_off ( 1961523) t2( 4072)(prio= 29)(state= 0)---> ms( 4073)(prio= 19)(state=0) time_off ( 2059788) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 2158785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 2658784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 2758785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 3258785) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 3358784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 3858785) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 3958785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 4454788) t1( 4073)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off ( 4454799) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4073)(prio= 29)(state=0) time_off ( 4458784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 4558785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 5058785) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 5158784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 5658784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 5758784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 6258784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 6358785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 6858785) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 6958786) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 7458784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 7558785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 8058785) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 8158785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 8454786) t1( 4073)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off ( 8454797) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4073)(prio= 29)(state=0) time_off ( 8658788) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 8758784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 9258784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 9358784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 9858784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 9958784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (10458784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (10558788) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (11058785) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (11158784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (11658784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (11758785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (12258784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (12358785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (12454787) t1( 4073)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (12454799) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4073)(prio= 29)(state=0) time_off (12858784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (12958785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (13458784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (13558785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (14058784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (14158784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (14658784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (14758784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (15258784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (15358785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (15858784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (15958785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (16454786) t1( 4073)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (16454798) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4073)(prio= 29)(state=0) time_off (16458784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (16558785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (17058784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (17158784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (17658785) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (17758785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (18258784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (18358784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (18858785) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (18958785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (19458784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (19558785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (20058784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (20158787) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (20454787) t1( 4073)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (20454798) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4073)(prio= 29)(state=0) time_off (20658784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (20758785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (21258784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (21358785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (21858785) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (21958785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (22458784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (22558784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (23058784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off (23158784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off (23260904) t1( 4073)(prio= 29)(state= 64)---> t2( 4072)(prio= 29)(state=0) time_off (24454787) t2( 4072)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (24454798) watchdog/0( 7)(prio= 0)(state= 1)---> t2( 4072)(prio= 29)(state=0) time_off (28454786) t2( 4072)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (28454797) watchdog/0( 7)(prio= 0)(state= 1)---> t2( 4072)(prio= 29)(state=0) time_off (32454788) t2( 4072)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (32454801) watchdog/0( 7)(prio= 0)(state= 1)---> t2( 4072)(prio= 29)(state=0) time_off (36454788) t2( 4072)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (36454801) watchdog/0( 7)(prio= 0)(state= 1)---> t2( 4072)(prio= 29)(state=0) task:t2 PID (4072) PRI(29) EXIT time_off (37347534) t2( 4072)(prio= 29)(state= 64)---> kworker/0:2( 2384)(prio= 120)(state=0) --------------------------------------- |
RR测试程序:
只需要对t1.c ,t2.c 的调度策略做修改即可
RR测试结果
time_off ( 8148181) t2( 4729)(prio= 29)(state= 0)---> ms( 4730)(prio= 19)(state=0) time_off ( 8247305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off ( 8346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off ( 8446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off ( 8546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off ( 8646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off ( 8746305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off ( 8846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off ( 8946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off ( 9046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off ( 9146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off ( 9246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off ( 9346306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off ( 9446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off ( 9546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off ( 9646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off ( 9746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off ( 9846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off ( 9946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (10046306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (10146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (10223312) t1( 4730)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (10223329) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4730)(prio= 29)(state=0) time_off (10246303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (10346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (10446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (10546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (10646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (10746305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (10846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (10946306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (11046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (11146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (11246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (11346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (11446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (11546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (11646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (11746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (11846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (11946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (12046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (12146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (12246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (12346309) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (12446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (12546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (12646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (12746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (12846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (12946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (13046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (13146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (13246310) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (13346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (13446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (13546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (13646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (13746303) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (13846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (13946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (14046305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (14146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (14223307) t1( 4730)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (14223324) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4730)(prio= 29)(state=0) time_off (14246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (14346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (14446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (14546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (14646302) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (14746307) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (14846305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (14946306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (15046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (15146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (15246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (15346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (15446305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (15546306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (15646305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (15746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (15846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (15946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (16046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (16146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (16246305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (16346306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (16446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (16546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (16646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (16746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (16846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (16946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (17046306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (17146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (17246305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (17346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (17446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (17546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (17646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (17746305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (17846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (17946303) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (18046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (18146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (18223310) t1( 4730)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (18223326) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4730)(prio= 29)(state=0) time_off (18246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (18346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (18446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (18546306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (18646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (18746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (18846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (18946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (19046307) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (19146305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (19246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (19346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (19446305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (19546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (19646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (19746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (19846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (19946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (20046305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (20146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (20246307) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (20346306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (20446306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (20546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (20646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (20746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (20846309) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (20946305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (21046305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (21146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (21246305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (21346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (21446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (21546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (21646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (21746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (21846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (21946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (22046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (22146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (22223310) t1( 4730)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (22223328) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4730)(prio= 29)(state=0) time_off (22246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (22346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (22446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (22546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (22646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (22746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (22846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (22946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (23046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (23146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (23246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (23346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (23446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (23546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (23646306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (23746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (23846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (23946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (24046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (24146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (24246305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (24346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (24446303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (24546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (24646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (24746306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (24846303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (24946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (25046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (25146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (25246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (25346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (25446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (25546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (25646307) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (25746305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (25846305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (25946305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (26046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (26146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (26223307) t1( 4730)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (26223323) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4730)(prio= 29)(state=0) time_off (26246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (26346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (26446307) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (26546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (26646307) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (26746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (26846305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (26946305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (27046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (27146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (27246303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (27346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (27446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (27546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (27646309) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (27746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (27846309) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (27946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (28046308) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (28146302) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (28246307) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (28346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (28446303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (28546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (28646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (28746305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (28846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (28946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (29046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (29146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (29246303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (29346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (29446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (29546306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (29646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (29746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (29846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (29946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (30046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (30146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (30223306) t1( 4730)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (30223323) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4730)(prio= 29)(state=0) time_off (30246306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (30346304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (30446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (30546306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (30646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (30746305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (30846305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (30946306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (31046305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (31146305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (31246306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (31346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (31446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (31546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (31646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (31746307) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (31846305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (31946305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (32046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (32146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (32246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (32346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (32446306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (32546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (32646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (32746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (32846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (32946305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (33046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (33146307) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (33246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (33346306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (33446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (33546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (33646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (33746305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (33846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (33946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (34046306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (34146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (34223307) t1( 4730)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (34223323) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4730)(prio= 29)(state=0) time_off (34246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (34346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (34446303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (34546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (34646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (34746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (34846301) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (34946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (35046306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (35146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (35246305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (35346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (35446308) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (35546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (35646305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (35746305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (35846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (35946305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (36046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (36146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (36246303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (36346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (36446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (36546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (36646303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (36746307) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (36846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (36946307) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (37046303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (37146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (37246306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (37346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (37446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (37546297) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (37646308) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (37746298) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (37846306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (37946306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (38046303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (38146306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (38223311) t1( 4730)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (38223328) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4730)(prio= 29)(state=0) time_off (38246303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (38346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (38446303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (38546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (38646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (38746305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (38846307) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (38946307) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (39046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (39146305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (39246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (39346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (39446303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (39546304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (39646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (39746305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (39846307) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (39946308) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (40046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (40146307) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (40246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (40346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (40446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (40546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (40646303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (40746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (40846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (40946305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (41046305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (41146305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (41246303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (41346306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (41446301) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (41546306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (41646303) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (41746304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (41846304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (41946306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (42046307) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (42146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (42223307) t1( 4730)(prio= 29)(state= 0)---> watchdog/0( 7)(prio= 0)(state=0) time_off (42223324) watchdog/0( 7)(prio= 0)(state= 1)---> t1( 4730)(prio= 29)(state=0) time_off (42246306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (42346305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (42446304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (42546305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (42646304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) time_off (42746305) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off (42846306) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) task:t2 PID (4729) PRI(29) EXIT time_off (42932701) t2( 4729)(prio= 29)(state= 64)---> t1( 4730)(prio= 29)(state=0) time_off (43125598) t1( 4730)(prio= 29)(state= 64)---> kworker/0:0( 2750)(prio= 120)(state=0) --------------------------------------- |
RR测试结果:
2、输出结果分析
在对输出结果分析之前,首先对输出结果中格式进行说明:
a:输出结果各列参数及其含义分别为:
time_off: 标志
t-time_offset:当前时间
prev_task_name:将要唤出的进程名称
prev_pid:将要唤出的进程号
prev_priotiry: 将要唤出的进程优先级
prev_state:将要唤出的进程状态
next_task_name:将要唤入的进程名称
next_pid:将要唤入的进程id
next_priority:将要唤入的进程优先级
next_state:将要唤入的进程状态
b:关于优先级的说明:
/kernel/sched/core.c prio = MAX_RT_PRIO-1 - p->rt_priority |
/include/linux/sched.h #define MAX_USER_RT_PRIO100 #define MAX_RT_PRIOMAX_USER_RT_PRIO |
所以t1.c,t2.c中设置的70的优先级,是指实时优先级,对应的内核态优先级为29
c:关于进程状态的说明:
/include/linux/sched.h ...... #define TASK_RUNNING0 #define TASK_INTERRUPTIBLE1 #define TASK_UNINTERRUPTIBLE2 #define __TASK_STOPPED4 #define __TASK_TRACED8 ...... |
分析结果一:
...... time_off ( 4458784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 4558785) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) //通过分析上面两行得出t2的调度时间片为:4558785-4458784;约为100ms time_off ( 5058785) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) time_off ( 5158784) t2( 4072)(prio= 29)(state= 0)---> t1( 4073)(prio= 29)(state=0) time_off ( 5658784) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) //通过上面两行得出t1的调度时间片为:5658784-5185784;约为500ms ...... |
分析结果二:
//t1 进程开始时间 time_off ( 2059788) t1( 4073)(prio= 29)(state= 0)---> t2( 4072)(prio= 29)(state=0) //t1进程结束时间 time_off (23260904) t1( 4073)(prio= 29)(state= 64)---> t2( 4072)(prio= 29)(state=0) //t2进程开始时间 time_off ( 1961523) t2( 4072)(prio= 29)(state= 0)---> ms( 4073)(prio= 19)(state=0) //t2进程结束时间 time_off (37347534) t2( 4072)(prio= 29)(state= 64)---> kworker/0:2( 2384)(prio= 120)(state=0) |
从分析结果二中可以看出:
t1进程的执行周期约为:21s
t2进程的执行周期约为:36s
从而可以看出:通过修改权重,可以使得进程的执行周期明显缩短。
分析结果三:
...... time_off ( 8946304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off ( 9046304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) //通过分析上面两行得出t2的调度时间为:100ms time_off ( 9146304) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) time_off ( 9246304) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) //通过分析上面两行得出t1的调度时间为:100ms time_off ( 9346306) t2( 4729)(prio= 29)(state= 0)---> t1( 4730)(prio= 29)(state=0) ...... |
分析结果四
//t2进程开始时间 time_off ( 8148181) t2( 4729)(prio= 29)(state= 0)---> ms( 4730)(prio= 19)(state=0) //t1进程开始时间 time_off ( 8247305) t1( 4730)(prio= 29)(state= 0)---> t2( 4729)(prio= 29)(state=0) //t2进程结束时间 time_off (42932701) t2( 4729)(prio= 29)(state= 64)---> t1( 4730)(prio= 29)(state=0) //t1进程结束时间 time_off (43125598) t1( 4730)(prio= 29)(state= 64)---> kworker/0:0( 2750)(prio= 120)(state=0) |
从分析结果二中可以看出:
t1进程的执行周期约为: 34s
t2进程的执行周期约为: 35s
从而可以看出:两个进程的执行周期大致相同
最终结论:
采用WRR调度策略,对于优先级相同的进程而言,可以使得不同进程每次轮转的时间不同,从而使得目标进程(用户想让优先完成的进程)每次轮转时得到更多的执行时间,从而缩短目标进程的执行周期。用户可以根据实际需求,对进程的时间片权重进行修改,从而获得比较理想的执行周期。
参考文献:
http://blog.chinaunix.net/uid-24774106-id-3379478.html