论文部分内容阅读
随着半导体技术的发展,多核处理器技术发展迅速,在嵌入式设备中的应用也越来越广。近年来出现了众多采用多核处理器的嵌入式智能设备,面向该类设备的多核操作系统任务调度算法有很高的研究价值。嵌入式智能设备上的任务具有实时性和相互依赖性这两个特点,传统的独立连续任务模型不再适用于嵌入式智能设备的任务调度,人们提出使用DAG(Direct Acyclic Graph,有向无环图)模型来表示该类具有相互依赖性的任务,但是目前DAG任务调度算法多停留在理论研究阶段且性能有待进一步提高,所以对可以在嵌入式智能设备上使用且性能优异的DAG任务调度算法的研究很有必要。本文提出了一种适用于同构嵌入式智能设备且性能更优的DAG任务调度算法。DAG任务调度算法中的拉伸算法调度成功率高,易于在传统操作系统中扩展,但也存在一些不足:其一,在为各个子任务划分时间段时提前了子任务截止时间,其二,在分配松弛时间时仅考虑了任务负载,其三,划分出的独立任务没有合并,出现大量可避免的上下文切换和核间迁移,影响算法在嵌入式设备上的性能。本文针对以上不足,提出了一种改进的拉伸算法,该算法提高了调度成功率,且降低了上下文切换和核间迁移次数。随后对提出的算法进行了可调度性分析,在限制条件下,该算法的容量增值界在[2-1/M,4-2/M)范围内。本文也在仿真环境下,对提出的算法同其它DAG调度算法进行了对比实验,验证了该算法在性能上的提高。本文为了验证提出的算法在真实嵌入式智能设备中的性能,首先在本课题组研发的AntOS操作系统内核中实现了改进拉伸调度算法。然后又在AntOS上实现了行人检测应用,并使用混合分析法预测出应用中各个任务的最坏执行时长。最后通过在不同利用率下,与拉伸算法的调度成功率比较,验证了本文提出的改进拉伸算法在嵌入式智能设备中良好的性能。