对于Linux实时性测试,目前我们用了以下方法:
1.写了测试程序,用于测试线程调度时间,主进程和线程的priority都设置为最高,截取如下代码:
struct sched_param sp;
memset(&sp,0,sizeof(struct sched_param));
sp.sched_priority = 99;
sched_setscheduler(getpid(),SCHED_RR,&sp);
/* Attr of thread */
int policy;
pthread_attr_getschedpolicy(&ThreadAttr , &policy);
printf("1:SCHED_FIFO = %d, SCHED_OTHER = %d, SCHED_RR = %d,policy = %d\n",SCHED_FIFO,SCHED_OTHER,SCHED_RR,policy);
pthread_attr_setschedpolicy(&ThreadAttr , SCHED_RR);
pthread_attr_getschedpolicy(&ThreadAttr , &policy);
printf("2:SCHED_FIFO = %d, SCHED_OTHER = %d, SCHED_RR = %d,policy = %d\n",SCHED_FIFO,SCHED_OTHER,SCHED_RR,policy);
其中,说明两点,第一,sched_setscheduler()函数将pid所指定进程的调度策略和