高效的优先级感知线程调度的制作方法_3

文档序号:9583633阅读:来源:国知局
的执行时间;请求的或检测到的线程108对于特定处理器104或处理器核的亲和性;易失性存储器电路(诸如系统RAM)或非易失性存储设备(诸如硬盘驱动器)中的存储器分配;通信总线或网络连接中的带宽分配;和/或到设备102的一个或多个硬件或软件组件的访问。作为第二示例,资源106的保留116可以包括例如对资源106的容量的一部分的保留分配(例如,保留存储器块或网络带宽份额);对资源106的排他访问;和/或诸如通过信号量(semaphore)参与对资源106的有限份额的访问。作为第三示例,资源106可以包括第一线程108在执行后续处理之前正在等待完成的由第二线程108执行的特定任务或操作。
[0031]作为该第一方面的第三变型,可以以各种方式标识和指派各个线程108的优先级110。作为第一示例,优先级I1可以包括相对数值分数,其中第一线程108的较高优先级分数表示比第二线程108的较低优先级分数更高的优先级110。作为第二示例,优先级110可以具有语义重要性,诸如线程108的角色的标识(例如,内核线程108可以被指派第一优先级110 ;设备驱动程序线程108可以被指派第二优先级110 ;并且用户线程108可以被指派第三优先级110)和/或线程108执行的任务的重要性(例如,执行时间敏感任务的线程108可以请求和接收比执行时间不敏感任务的线程108相对更高的优先级110)。作为第三示例,设备102可以基于角色或活动而选择线程108的优先级110 (例如,在监视设备102的性能的同时调整线程108的优先级110)。可替换地,优先级110可以由线程108指定和/或由设备102的用户选择。
[0032]作为该第一方面的第四变型,根据本文中呈现的技术调整的线程108的优先级110可由设备102以许多方式使用。作为第一示例,设备102可以鉴于在设备102上执行的线程108的优先级110而为所述线程108选取线程调度114。作为第二示例,设备102可以基于线程108的优先级110来授予保留116 (例如,如果两个线程108并发地请求资源106的保留116,则设备102可以将该保留116首先授予具有较高优先级110的线程108)。作为第三示例,设备102可以根据优先级110管理所分配的线程108的资源(例如,如果存储器短缺提示一个或多个线程108的延期或终止,则可以选择具有较低优先级110的线程108在具有较高优先级HO的线程108之前延期或终止)。这些和其他场景可以适合于本文中呈现的技术的实现方式。
[0033]D2.跟5?示保留可以在这些技术的实施例之间变化的第二方面涉及对资源106及其保留116的跟踪。
[0034]作为该第二方面的第一变型,可以以专门(ad hoc)方式检测资源106的保留116,例如通过检查和/或查询线程108以确定每个线程108持有的保留116,或者通过监视线程108与资源106的交互。
[0035]作为该第二方面的第二变型,设备102可以包括其中记录线程108对资源106的保留116的保留记录。附加地,可以生成保留记录作为促进查找保留116和/或相关线程108的数据结构。二叉树的树林对于该角色而言可以是可行的,因为可以在检测到包括保留记录的二叉树中的不平衡时使每个二叉树重新平衡(特别是在二叉树遵从一致的查找时间和/或快速重新平衡的情况下,诸如分割红/黑树)。在一个实施例中,第一二叉树标识具有对于特定资源106的保留116的线程108,并且第二二叉树标识正在等待对于资源106的保留116的线程108。作为第二示例,可以将已经保留或者正在等待对于相应资源106的保留的一组线程108存储在诸如链表之类的数据结构中,这可以比利用递归来核查保留116的图的技术在保留机制方面呈现更高的查找效率和一致性,所述技术可以在牵涉复杂的、相互关联的引用图的场景中消耗相当一部分调用堆栈。
[0036]在牵涉保留记录的变型中,在保留记录中记录保留116的方式可以显著影响设备102的性能。例如,谨慎且综合的记录进程可以牵涉在将保留116授予线程108时迅速在保留记录中记录每个保留116。然而,谨慎且综合的记录在若干方面可以是低效的。作为第一示例,用于在集中式保留记录中记录每一线程交互的机制可以在更新保留记录方面具有并发性的极大困难(例如,具有很多执行线程108的设备102;具有高度并发执行的线程108的设备102,诸如具有大量处理和/或处理核的设备102 ;以及其中保留116被频繁请求和释放的计算环境)。访问保留记录的并发性可以消耗相当数量的计算资源(包括在请求、接收和/或放弃保留116时的复杂性和延迟),并且有时可以产生附加的处理瓶颈,所述瓶颈减小或超出保留跟踪机制的潜在效率收益。作为第二示例,谨慎且综合的记录可以导致对于不可能呈现产出较高效率或性能的调整机会的许多保留Il6的计算工作。这样的场景的示例包括仅一个线程108对资源106的保留116 ;在短时间段内、诸如同一处理周期内对保留116的获取和放弃;对于在没有具有可以先占较低优先级108的优先级的其他线程108的情况下由该较低优先级线程108持有且被较高优先级线程108等待的资源106的保留116,其中资源冲突可简单地通过允许较低优先级线程108运行以完成并放弃保留来解决。
[0037]鉴于这些观察,该第二方面的一组第二变型牵涉涉及保留记录的使用的保留记录技术。不是提供对于保留116的谨慎、全面文档记录,设备102可以保守地利用保留记录来聚焦于有可能提供导致较高效率的调整机会的保留116。
[0038]作为该第二方面的该第二变型的第一示例,对保留116的记录可以发生在资源106的实际保留116之外以便减小保留116的持续时间;例如,可以在向第二线程108提供保留116之前执行将授予的保留116记录在保留记录中,和/或可以在保留116已经被放弃之后执行对授予的保留116的放弃。
[0039]作为该第二方面的该第二变型的第二示例,可以仅针对其中选定资源106已经和/或很快有可能被第二线程108请求(并且可选地,更特别地是检测到后续请求是从具有比第二线程108更高的优先级的第一线程108接收的)的场景利用保留记录。
[0040]作为该第二方面的该第二变型的第三示例,可以将其中较低优先级线程108保留未被较高优先级线程108等待的选定资源106的事件记录在线程108拥有的内部保留记录中,并且可以仅在检测到较高优先级线程108正在等待该选定资源106时将其传输给集中式保留记录。
[0041]作为该第二方面的该第二变型的第四示例,可以使第二线程108对保留116的记录延期直到该线程108的运行周期结束为止,例如,当设备102将要执行离开第二线程108的上下文切换时。该延期可以减小对于保留116的记录,其中这些保留被迅速地获取和放弃以致于较高优先级线程不太可能被较低优先级线程108进行的保留116显著延迟。使用这些和其他技术,设备102可以保守地访问保留记录,例如,避免记录不可能提供导致较高效率的优先级调整机会的保留116,以便减少在记录时牵涉的计算资源。本领域技术人员可以在本文中呈现的技术的实施例中设计用于高效地跟踪资源106的保留116的许多技术。
[0042]D3.优先级提升
可以在这些技术的实施例之间变化的第三方面涉及提升线程108的优先级110以便减轻牵涉资源106的保留116的资源冲突。
[0043]作为该第三方面的第一变型,可以针对潜在地使得能够实现较高效率的场景而保留一个或多个线程108的优先级110的提升。例如,当检测到较低优先级线程108具有较高优先级线程108所等待的资源106的保留116时,可以确定仅在第三线程108被调度执行会延迟第二线程108的完成(和结果得到的对资源116放弃以及较高优先级线程108的继续开始)时优先级提升才可导致更高效率;并且附加地,第三线程108具有比第二较低优先级线程108更高的优先级且比第一较高优先级线程108更低的优先级110。
[0044]作为该第三方面的第二变型,可以在上下文切换期间执行一个或多个线程108的优先级110的提升。例如,在上下文切换离开第一线程108时(并且在一个实施例中,在上下文切换离开被阻止且在等待资源106的保留116的第一线程108时),设备102可以标识由第一线程108等待的资源106、和具有对于选定资源106的保留116的一个或多个第二线程108 ;以及具有高于第一线程108的优先级110且低于第二线程108的优先级110的优先级110的至少一个第三线程108。离开第一线程108的上下文切换可以呈现用于执行该扩展评估和提升第二线程108的优先级110 (例如因为由于阻止对于选定资源106的保留116的请求而引起的第一线程108的中断需要第一线程108的操作延迟)的便利机会,并且执行该评估可以提供计算评估方面的小的增加,作为通过提升优先级110而潜在地极大加快第二线程108以及效率方面的潜在地极大收益的交换。附加地,优先级110的提升可以反映第一线程108在各种时间处的优先级110 ;例如,第二线程108的优先级110的提升可以反映第一线程108的优先级110,即使第一线程108的优先级108改变。例如,如果第二线程108的优先级110在第一时间处提升到第二线程108的优先级110,并且随后第一线程108的优先级110稍后被增加(例如,如果第一线程108包括诸如垃圾收集器之类的存储器回收进程,并且设备102稍后遇到存储器的极大短缺),则可以进一步
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1