我编了个程序测试Linux的实时调度能力,用Linux的定时器和信号产生周期实时进程,在信号处理函数中设置进程的属性,包括进程的运行时间exec_time,
然后在内核schedule()中添加:
run_time=now-prev->timestamp;
if((prev->exec_time-runtime)<0)
prev->exec_time=0;
else
prev->exectime-=runtime;
用一个系统调用rt_getexec()读出剩余的运行时间,但是发现读出的时间没变,等于设置值。