论文部分内容阅读
随着科学的日新月异,人们对计算机的处理能力提出更好、更快、更强的要求与挑战,多处理器技术便是这个挑战的有效突破口。任务调度是这个突破口中最为关键的技术之一。随着科技的进一步发展,多处理技术向着不同处理器对同一个任务有不同的处理速度的异构方向发展,这种异构性也让异构多处理器的任务的调度问题变得更加复杂。调度算法研究中,任务模型大多数采用有向无环图DAG(Directed Acyclic Graph)。任务的调度问题,已被证明是一个NP完全问题。现有的大多数异构多处理器实时任务调度算法采用的方式是首先初始化分簇,然后将簇进行放置,再对任务进行调度。基于复制可扩展实时任务调度算法与异构最早时间优先算法由于在分簇时综合考虑任务执行时间、处理器空闲状态、前趋关系等多个因素从而引起算法时间复杂度过高。针对此种情况,本文研究一种改进的异构多处理器实时任务调度算法HRTSA(Heterogeneous Real-time Task Scheduling Algorithm for multiprocessors)。本文在初始化分簇时提出一种基于前趋约束的最小执行时间分簇策略以降低时间复杂度,为了保证调度成功率,在放置策略和调度策略都进行改进。论文的具体改进工作如下:根据异构多处理器实时任务中同一子任务在不同处理器上执行时间各不相同的特点,本文提出一种基于前趋约束的最小执行时间分簇策略。这种策略将在某一处理器上具有最小执行时间的节点分配至同一处理器上执行,仅考虑节点的执行时间与前趋关系,以降低分簇算法的时间复杂度。当存在个别性能较优的处理器时,采用基于前趋约束的最小执行时间分策略会将大量节点分至较优的处理器上执行。这种情况将引起个别处理器过载,其它处理器空闲的问题。针对此问题,在放置各簇任务至各处理器时,采用负载均衡的放置策略。这种放置方式在保证处理器负载均衡的同时,能有效地提高任务的处理效率。为了减少任务通信时延,提高处理器的利用率,本文对现有的任务调度算法进行了改进,通过采用三种复制策略减少通信时延,以提高任务执行效率;并采用了冗余删除策略,删除不必要的冗余节点,以提高处理器的利用率。为了评估本文的算法的有效性,本文在PC平台上用Visual C++ 6.0实现了本文的算法及对比算法。实验分析表明本文提出的HRTSA算法,采用基于前趋约束的最小执行时间分簇策略有效地降低了时间复杂度,通过多重调度策略与冗余删除策略,在降低算法时间复杂度的同时,保证了任务的调度成功率、加速比。