linux 实时调度策略 修改及测试

关于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,&param);
	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,&param);
	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,&param);
	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


你可能感兴趣的:(linux,测试,改进,实时调度策略)