优化具有多个中央处理器的计算机的启动时间的系统及方法_4

文档序号:8207699阅读:来源:国知局
任务在ITC的一组任务执行后执行。来自DTC 2的一组任务在来自ITC的一组任务和来自DTC I的一组任务都执行后执行。基于DTC 2中一组任务的依赖关系执行来自DTC 2的一组任务。
[0106]在一种实现中,DTC按所述一组任务的优先级的升序和所述对任何其他任务的至少一种依赖关系进行排列。所述任何其他任务是从ITC的一组任务,或DTC的一组任务,或DTC 2的一组任务中选择的至少一个任务。
[0107]在步骤708中,从ITC中选择至少一个任务。基于存储在TDC中的选择信息,即存储在ITC中的选择信息,从ITC中选择任务。然后执行所选择的任务。
[0108]当执行完所选择的任务后,所述系统检查来自ITC的至少一个未执行的任务,其优先级可能低于已执行的任务。可基于所述系统的存储器中的状态位寄存器选择所述未执行的任务。
[0109]可选地,在步骤710中,执行完每个所选的ITC的任务后,更新所述状态位寄存器。可用来标记任务已在目标上完成的状态位掩码也保存在所述状态位寄存器中。
[0110]当任务标记为执行或完成时,在状态位掩码中设置一个比特位。
[0111]在步骤712中,检查ITC中所有任务的执行情况。若任何一个任务未执行,选择并执行该任务。若ITC中的所有任务均已执行,则所述系统可以从DTC I中选择并执行任务。
[0112]在步骤714中,当ITC的所有任务都执行后,选择来自DTC I的至少一个任务。基于存储在TDC中的选择信息,即存储在DTC I中的选择信息,从DTCl中选择任务。然后执行所选择的任务。当执行完所选择的任务后,所述系统检查来自ITC的至少一个未执行的任务,其优先级可能低于已执行的任务。可基于所述系统的存储器中的状态位寄存器选择所述未执行的任务。DTC I的一组任务在ITC的一组任务执行后执行。
[0113]可选地,在步骤716中,执行完每个所选的DTC I的任务后,更新所述状态位寄存器。可用来标记任务已在目标上完成的状态位掩码也保存在所述状态位寄存器中。
[0114]当任务标记为执行或完成时,在状态位掩码中设置一个比特位。
[0115]在步骤718中,检查DTC I中所有任务的执行情况。若任何一个任务未执行,选择并执行该任务。若DTC I中的所有任务均已执行,则所述系统可以从DTC 2中选择并执行任务。
[0116]在步骤720中,当DTC I的所有任务都执行后,选择来自DTC 2的至少一个任务。
[0117]来自DTC 2的任务的选择是基于选择信息和对从DTC I的一组任务中选择的至少一个任务或从DTC 2的一组任务中选择的至少一个任务的依赖关系,其中所述选择信息和依赖关系存储在TDC中,即存储在DTC 2中。然后执行所选择的任务。当执行完所选择的任务后,所述系统检查来自ITC的至少一个未执行的任务,其优先级可能低于已执行的任务。可基于所述系统的存储器中的状态位寄存器选择所述未执行的任务。DTC 2的一组任务在DTC I的一组任务和ITC的一组任务都执行后执行。
[0118]可选地,在步骤722中,执行完每个所选的DTC 2的任务后,更新所述状态位寄存器。可用来标记任务已在目标上完成的状态位掩码也保存在所述状态位寄存器中。
[0119]当任务标记为执行或完成时,在状态位掩码中设置一个比特位。
[0120]在步骤722中,检查DTC 2中所有任务的执行情况。若任何一个任务未执行,选择并执行该任务。
[0121]现参考图8,其示出了本发明实施例中执行用于启动本发明中的计算机系统的任务的流程图。
[0122]在步骤802中,访问存储在所述存储器608中的TDC 610。TDC 610可包括存储在其中的多个任务。
[0123]在步骤804中,选择TDC 610,并对其进行分类。
[0124]在步骤806中,检查来自TDC 610的所有任务对任何其他任务的依赖关系。
[0125]在步骤808中,若某个任务不依赖任何其他任务,将该任务划分到ITC中。
[0126]在步骤810中,若某个任务依赖任何其他任务,将该任务划分到DTC中。
[0127]在步骤812中,选择并执行ITC中的至少一个任务。ITC中的所有任务按独立于任何其他任务的一组任务的优先级的升序进行排列。
[0128]在步骤814中,执行从ITC中选择的至少一个任务。ITC中的所有任务按独立于任何其他任务的一组任务的优先级的升序进行排列和执行。
[0129]在步骤816中,基于任务的执行情况更新所述状态位寄存器。执行完每个所选的ITC的任务后,更新所述状态位寄存器。可用来标记任务已在目标上完成的状态位掩码也保存在所述状态位寄存器中。当任务标记为执行或完成时,在状态位掩码中设置一个比特位。
[0130]在步骤818中,所述系统602可以检查ITC中的所有任务的执行情况。若ITC中的所有任务均已执行,所述系统从DTC I选择任务。若ITC中的任何一个任务未执行,再次执行步骤812至816。
[0131]在步骤819中,检查来自DTC的所有任务,判断所述任务是否依赖ITC。
[0132]在步骤820中,若DTC中的任务依赖ITC中的任何一个任务,将相应的任务划分到DTC I 中。
[0133]在步骤822中,选择并执行DTC I中的至少一个任务。DTC I中的所有任务按独立于任何其他任务的一组任务的优先级的升序进行排列。
[0134]在步骤824中,执行从DTC I中选择的至少一个任务。DTC I中的所有任务按依赖于ITC任务的一组任务的优先级的升序进行排列和执行。
[0135]在步骤826中,基于任务的执行情况更新所述状态位寄存器。执行完每个所选的DTC I的任务后,更新所述状态位寄存器。可用来标记任务已在目标上完成的状态位掩码也保存在所述状态位寄存器中。当任务标记为执行或完成时,在状态位掩码中设置一个比特位。
[0136]在步骤828中,所述系统602可以检查DTC I中所有任务的执行情况。若DTC I中的所有任务均已执行,所述系统从DTC 2选择任务。若DTC I中的任何一个任务未执行,再次执行步骤822至826。
[0137]在步骤830中,若DTC中的任务不依赖ITC中的任何一个任务,将相应的任务划分到DTC 2中。
[0138]在步骤832中,选择并执行DTC 2中的至少一个任务。DTC I中的所有任务按所述一组任务的优先级的升序和对任何其他任务的依赖关系进行排列,其中所述依赖关系可以是对DTC I或DTC 2的任务的依赖关系。
[0139]在步骤834中,执行从DTC 2中选择的至少一个任务。DTC I的所有任务均已执行。
[0140]在步骤836中,基于任务的执行情况更新所述状态位寄存器。执行完每个所选的DTC 2的任务后,更新所述状态位寄存器。可用来标记任务已在目标上完成的状态位掩码也保存在所述状态位寄存器中。当任务标记为执行或完成时,在状态位掩码中设置一个比特位。
[0141]在步骤838中,所述系统602可以检查DTC 2中所有任务的执行情况。若DTC 2中所有任务均已执行,系统退出启动过程并开始执行正常操作。
[0142]若DTC 2中的任何一个任务未执行,再次执行步骤832至836。
[0143]现参考图9,其示出了本发明实施例中本发明的总体处理。在一种实现中,通过以下三个步骤实现在目标或者CPU上优化调度程序:
[0144]1.离线处理TDC,并为所有启动的任务创建调度队列。
[0145]2.在目标上弹出并执行这些任务。
[0146]3.在特定内核上的状态位寄存器中存储各任务的完成情况。
[0147]在本发明的一个实施例中,系统可执行下述步骤来实现调度程序的优化:
[0148]1.离线处理TDC (任务描述图表),创建两组调度图表。
[0149]2.第一组调度图表ITC(独立任务图表)包含不依赖需要执行的任何其他任务的所有任务。这些任务按照优先级排列。这些任务最终可以在目标上并行调度,无需检查它们的优先级或依赖关系。成功执行后,将这些任务的状态设置为完成。
[0150]3.第二组调度图表(依赖任务图表)包含按依赖关系信息的优先级顺序排列的所有剩余任务。这些任务被进一步划分到DTC I和DTC 2。DTC I是依赖ITC任务的任务组。与ITC 一样,DTC I没有任何依赖关系信息,因为它们仅在ITC执行后执行,而此时不存在依赖关系。
[0151]4.DTC 2是依赖ITC、DTC I或DTC 2中任务的任务组。这些任务有依赖关系信息。
[0152]5.在目标上或处理系统中,首先使用独立任务图表,且将其并行执行完毕。这样节省了优先级和依赖关系检查所需的开销。
[0153]6.当ITC的所有任务都执行后,调度程序转移到DTC以进一步执行任务。DTC I将先被执彳丁,因为执彳丁完ITC后,DTC I的依赖关系消失了。
[0154]7.执行完DTC I后,调度程序转移到DTC 2。在这里检查各个任务的依赖关系,并相应地执行各个任务。
[0155]8.这些任务按优先级顺序保存在目标上,可从队列(FIFO)中获取这些任务。在每个可用的CPU/内核上,这些任务被弹出并执行。
[0156]9.在特定内核上的状态位寄存器中存储各任务的完成情况。
[0157]由于TDC的离线处理,所提出的系统为离线内存预算提供了有效的解决方案,其可通过以下实现:
[0158]1.任务组在执行之前是已知的,这些任务的内存需求也是预先可知的。
[0159]2.内存初始化任务能够分阶段进行优化,以在多处理器系统中使用这一信息。
[0160]3.可以更好地预算目标上的内存需求。
[0161]4.离线调度图表有助于基于依赖关系和优先级创建ITC和DTC。DTC能够在不同层面上管理所有任务,从而减少目标上的调度开销。
[0162]5.系统进一步基于ITC和DTC提供内存需求信息。同样地,可以得出离线启动时内存的预算投入。有助于避免在目标上的内存处理,从而避免了相应的开销。
[0163]在一个示例中,通过以下步骤计算任务执行的顺序:
[0164]说明:
[0165]任务数量=N
[0166]现有技术:
[0167]预处理时间+后处理时间=XP (非常数)
[0168]实际任务执行时间=XE(非常数)
[0169]所需的总时间=N (XP+XE)
[0170]调度程序优化后:
[0171]预处理时间+后处理时间=0.1XP (非常数)
[0172]实际任务执行时间=XE (非常数)
[0173]所需的总时间=N (0.1XP+XE)
[0174]例如:N= 50,XP = 0.5s, XE = 3s
[0175]现有技术:50(0.5+3) = 175s
[0176]调度程序优化后:50(0.1x0.5+3) = 152.5s
[0177]改进=22.5s (总体)[12.86% ]
[0178][总体改进百分比取决于N、XP和XE]
[0179]现参考图10,其示出了本发明实施例中(PCT/CN2013/072764)(现有技术)与本发明的总体技术之间的对比。在一个示例中,该图示出了现有技术的总体处理与所提出的优化启动时间的处理之间的对比。
[0180]现参考图11,其示出了本发明实施例中现有技术TDC(PCT/CN2013/072764)与本发明的TDC的分类。在一个示例中,该图示出了现有技术中生成的TDC与本发明中生成的TDC的离线处理。
[0181]现参考图12,其示出了本发明实施例中按照本发明
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1