针对软实时系统中的一类同时具有依赖性与周期性的任务,提出一种基于单行树矩阵(MST)的动态因子均衡调度算法SMD(schedule on matrix of the single tree and dynamic load factor)。该算法通过对MST矩阵的特性进行分析,将任务划分为若干并行集,再综合考虑已执行时间、任务间的依赖关系及任务最早截止时间几个要素,以动态因子的形式对任务进行实时调度。最后,还以证明的形式给出了可充分调动的任务集的充分条件,并以此为基础随机生成了测试任务集,进行了对比实验。实验表明,与文献中现有经典算法相比,新算法使处理器利用率提升近15%,任务丢失率降低2%。
针对分区调度算法在实时多处理器系统中处理器利用率不高的现象,提出一种基于利用率和负载均衡的分区调度算法BUWBPA(Based on Utilization and Workload Balance Partition Algorithm)。该算法在满足任务实时性要求的基础上,以寻求高利用率和负载均衡为目标进行任务分配,将任务分配分成两个阶段:第一个阶段以高利用率为原则,选择任务集内利用率最高的任务先分配;第二个阶段以负载均衡为原则,根据处理器数选择利用率总和等于1或接近于1的任务进行分配,并且在此阶段对于未达到充分利用的处理器,选取可能调度的零星任务,对任务进行再次重新分配,以达到负载均衡和系统最大利用率。实验证明,该算法在实现最大利用率的前提下能很好地达到负载均衡。
在多核嵌入式平台下,针对具有约束关系的实时周期任务,提出一种基于任务关键因子和截止时间的调度算法BVDS(Based on Value and Deadline Scheduling)。该算法以有效利用处理器为原则,根据每个处理器的实际运行情况,为有可能在截止时间前完成的任务分配处理器资源。算法实现分为两个阶段:第一阶段根据任务的到达时间、关键因子以及执行时间构建等待任务链表;第二阶段,在执行过程中,充分考虑不同任务的执行时间以及任务之间的约束关系进行优先级分配。实验结果表明,该算法在牺牲少量处理器利用率的前提下,有效地降低了任务的死限丢失率。