【正确答案】(1)任务的调度关系描述
①根据实时任务调度的小周期任务优先原则,任务的优先级排列如图1所示。
[*]
图1 任务优先级排列图
②系统最小调度周期不能大于5ms。在5ms时间点到达时,5ms任务可以终止低优先级任务,处理机优先执行5ms的所有任务;当5ms任务完成或被阻塞,可以执行其他低优先级任务:同样,10ms任务可以终止40ms、50ms、1000ms的任务;依次类推,1000ms的任务只能在处理机空闲时被执行。
③同周期任务的优先级可根据任务间的关系采用同等优先级,也可采用不同优先级,但是,同周期最低优先级的任务,其优先级不能低于其他大周期任务的优先级。
(2)可调度性分析
①系统的最大周期为1000ms,其中,5ms周期任务共执行200次、10ms周期任务共执行100次、40ms周期任务共执行25次、50ms周期任务共执行20次,1000ms周期任务共执行1次。
②在1000ms的最大周期内,所有任务共需执行的时间是:T=200×1+100×4+25×8+20×9+1×3=983ms。
③完成所有任务共需时间为983ms,小于最大周期数,因此,系统是可调度的
【答案解析】[解析] 这是一道要求读者根据题目内容完成在操作系统控制下,对本项目算法设计的考虑及完成可调度性分析的综合理解题。
对于“任务的调度关系描述”问题的解答思路如下。
(1)题干的第2段描述了所开发的宇航项目的技术需求。其中,1s和5ms分别被定义为该宇航项目系统的最小时间框架和最大时间框架,并给出了各个周期任务的需求参数。
(2)根据实时任务调度的小周期任务优先原则,任务的优先级排列如图1所示。
(3)在5ms时间点到达时,5ms任务可以终止低优先级任务,处理机优先执行5ms的所有任务;当5ms任务完成或被阻塞,可以执行其他低优先级任务;同理,10ms任务可以终止40ms、50ms或1000ms的任务;依次类推,1000ms的任务只需在处理机空闲时被执行。
(4)同周期任务的优先级可根据任务间的关系采用同等优先级,也可采用不同优先级,但是,同周期最低优先级的任务,其优先级不能低于其他大周期任务的优先级。
对于“系统可调度性分析”问题的解答思路如下。
(1)将该宇航系统的最小时间节拍定义为5ms,即系统最小调度周期不能大于5ms。系统最大工作周期(或称主时间框架)为1000ms。
(2)在每个5ms起点,5ms任务首先运行,占1ms时间,完成后转入处理被终止的任务;如果这个时刻时间到达10ms的起点,则启动2个10ms任务运行,各占2ms时间(共占4ms),完成后转入处理被终止的任务;依次类推,确保在1s周期内所有任务按规定的时间序列执行,如图2所示。
[*]
图2 各周期任务的工作时序示意图
(3)由于系统的最大周期为1000ms,因此5ms周期任务共执行200次,10ms周期任务共执行100次,40ms周期任务共执行25次,50ms周期任务共执行20次,1000ms周期任务共执行1次。
(4)在1000ms的最大周期内,所有任务共需执行时间是:
T=200×1+100×4+25×8+20×9+1×3=983ms
暂不考虑操作系统的时间开销,完成所有任务共需时间为983ms,小于最大周期数(1000ms),因此,该系统是可调度的。