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

文档序号:9583633阅读:378来源:国知局
高效的优先级感知线程调度的制作方法
【专利说明】
【背景技术】
[0001]在计算领域内,许多场景牵涉在处理器上执行的一组线程,其中各个线程共享一组计算资源。例如,可以在该组线程之间共享处理器可用的时间,并且可以在正尽力发送或接收数据的线程之间划分网络容量。一些资源可以由线程保留;例如,线程可以锁定文件或一段存储器以便在敏感操作期间限制其他线程的访问,诸如以减小其他线程的非意图覆写的方式写入数据。然而,在第一线程请求访问已经由第二线程保留的资源的情况下可能出现困难。在这样的场景中,计算环境可以阻止第一线程的执行直到第二线程放弃保留资源为止。
[0002]附加地,在这样的场景中,各个线程可以包括促进计算资源的共享的优先级。这样的优先级可以用来例如确定处理器要向较高优先级线程分配比较低优先级线程更高且更早的处理时间份额,和/或要分配对于访问诸如网络容量或通信总线的使用之类的资源的请求以在进行分配以满足较低优先级线程的任务之前满足较高优先级线程的任务。

【发明内容】

[0003]提供本
【发明内容】
来以简化形式介绍下面在【具体实施方式】中进一步描述的概念的选择。本
【发明内容】
不意图标识要求保护的主题的关键因素或必要特征,其也不意图用来限制要求保护的主题的范围。
[0004]在线程调度和资源保留中可能发生的特定问题牵涉具有相对高的优先级的第一线程和具有较低优先级的第二线程,其中第二线程获得对于第一线程也请求的资源的保留。在这样的场景中,经常阻止第一较高优先级线程直到第二较低优先级线程放弃资源保留为止,并且然后将资源保留授予较高优先级线程。为了减小较高优先级线程对于资源的等待时段,期望加快处理第二线程。在许多这样的场景中,这种事件序列是可接受的,因为阻止第一线程使得第二线程能够畅通地执行,从而向第二线程分配较大的计算资源份额直到其任务完成为止。然而,在其他场景中,第二线程可以具有不仅比第一线程,而且还比同样在计算环境内执行的第三线程更低的优先级。由于线程的相对优先级,计算环境可以使第三线程的执行按优先级排序先于第二线程的执行。然而,如果第三线程也具有比第一线程更低的优先级,则按优先级排序可能导致在第一线程正在等待的资源的保留期间第三线程消耗比第二线程更大的资源份额,导致第三线程优先于第一线程的实际而不正确的按优先级排序。
[0005]本文中给出的是鉴于这样的线程的资源保留而调度线程以在设备的处理器上执行的技术。根据这些技术,对于各个线程而言,设备可以标识线程所保留的至少一个资源。在检测到第一线程正在等待第二线程所保留的选定资源并且还检测到第三线程具有低于第一线程的优先级且高于第二线程的优先级的优先级时,设备可以提升第二线程的优先级高于第三线程,并且然后根据各自的线程优先级调度线程的执行。该调度可以根据本文中呈现的技术来减小正在等待访问较低优先级线程(所述较低优先级线程进而被调度为处于比同样具有比被阻止的较高优先级线程更低的优先级的其他线程更低的优先级)在使用中的资源的较高优先级线程的发生率。
[0006]为了达到前述和相关目的,以下描述和附图阐述某些说明性方面和实现方式。这些只不过指示可以采用一个或多个方面的各种方式中的几个。根据以下【具体实施方式】本公开的其他方面、优点和新颖特征在结合附图考虑时将变得清楚明白。
【附图说明】
[0007]图1是示例性场景的图示,展示了在处理器上执行的线程的调度和计算环境内的资源保留。
[0008]图2是根据本文中呈现的技术的示例性场景的图示,展示了在处理器上执行的线程的调度和计算环境内的资源保留。
[0009]图3是根据本文中呈现的技术按优先级排序用于在设备的处理器上执行的线程的示例性方法的图示。
[0010]图4是图示出根据本文中呈现的技术用于按优先级排序线程以在设备的处理器上执行的示例性系统的组件框图。
[0011]图5是包括被配置成体现本文中阐述的规定中的一个或多个的处理器可执行指令的示例性计算机可读介质的图示。
[0012]图6是根据本文中呈现的技术的另一个示例性场景的图示,展示了调度线程以在处理器上执行和保留计算环境内的资源。
[0013]图7图示了示例计算环境,其中可以实现本文中阐述的规定中的一个或多个。
【具体实施方式】
[0014]现在参考图描述要求保护的主题,在图中相同的参考数字用来自始至终指代相同的元件。在以下描述中,出于解释的目的,阐述众多特定细节以便提供对要求保护的主题的透彻理解。然而明显的是可以在没有这些特定细节的情况下实践要求保护的主题。在其他情况下,以框图形式示出结构和设备以便便于描述要求保护的主题。
[0015]A.导言
图1呈现了示例性场景100的图示,展示了包括处理器104和可以在执行于处理器104上的一组线程108之间共享的一组资源106 (诸如显示器和存储设备)的设备102。线程108可以由不同类型的进程拥有,所述进程诸如提供诸如存储器管理和安全性监视之类的低级服务的内核进程、诸如显示器驱动程序之类的管理对设备的访问的设备进程,以及代表用户执行任务的用户进程。
[0016]在这样的场景中,有可能并发地执行一个或多个线程108 (例如,设备102可以包括多于一个处理器104,和/或各个处理器可以包括多个核)。附加地,期望使第一线程108能够具有优先于第二线程108的优先级。例如,在并发地执行提供诸如编辑文本文档之类的用户任务的第一进程和完成诸如将媒体流送到媒体设备之类的时间敏感任务的内核进程的同时,期望将处理器时间、存储器和其他计算资源从用户进程转移到内核进程,因为流送媒体时的短暂处理延迟可以比文本编辑用户接口中的短暂处理延迟更为显著或更成问题。
[0017]为了使得能够实现资源共享,设备102可以向每个线程108指派优先级110,指示线程108相对于可以同样正在设备102上执行的其他线程108消耗资源的优先级。可以将优先级110指派为例如数值分数或者指派为线程108相对于其他线程108的优先级排名的顺序标识符。线程调度器112然后可以生成指示对于各个时间块而言哪一个线程108由处理器104执行的线程调度114,其中具有较高优先级110的线程108被分配比其他线程108更大的在处理器104上的时间份额。当分配给一个线程108的在处理器104上的时间块结束时,处理器104可以执行上下文切换(例如,存储前一个线程108使用的寄存器值和线程108的调用堆栈、选择第二线程108,以及在前一个处理器时间块结束时将用于第二线程108的值和调用堆栈载入寄存器中)。以这种方式,线程调度器112可以使得线程108能够以使较高优先级线程108按优先级排序优先于较低优先级线程108并且不使得任何线程108 “饥饿”(例如,为甚至最低优先级线程108分配至少在处理器104上的少量时间份额)的方式共享处理器104。
[0018]附加地,在图1的示例性场景100中,设备102的资源106(可选地包括处理器104)可以服从线程108请求的一个或多个保留116.作为第一示例,线程108可以请求对存储在存储设备中的特定文件的锁定,使得线程108可以在向该文件写入时排他地访问资源106,以便限制其他线程108覆写同一文件并引起数据丢失。作为第二示例,线程108可以请求通信总线的排他使用或网络带宽份额,以便完成具有严厉约束的操作,诸如通过网络实现的IP语音(VoIP)会话,其中不足资源可用性可以导致会话服务质量(QoS)的显著降低。因此,当一个或多个线程108请求对于资源106的保留116时,设备102可以记录保留116并且仅根据保留116来授权访问资源106。如果第二线程108请求访问由于其他线程108的一个或多个保留116的原因而不可用的资源106,则设备102可以临时挂起或阻止第二线程108的执行直到其他线程108中的一个或多个放弃其对资源106的保留116为止。检测到的放弃可以使得能够履行针对第二线程108的保留116,所述第二线程108被接触挂起并且被准许用资源106的保留116继续执行。
[0019]在这样的场景中,资源106的保留可以导致与根据优先级10对线程108进行严格的按优先级排序产生变化。例如,第一线程108和第二线程108可以在设备102上执行,其中第一线程108具有比第二线程108更高的优先级110,并且设备102可以按顺序调度第一线程108的执行比第二线程108的执行更经常地发生。然而,第二线程108可以获取资源106的第一保留116,并且第一线程108可以随后请求同一资源106的第二保留116。而且,中断第二线程108的操作也许是不可能的;例如,许多这样的保留牵涉原子操作,如果被中断会导致数据丢失或损坏。替代地,设备102可以挂起或阻止第一线程108直到第二线程108已经完成其对资源106的访问并且放弃其对资源106的保留116为止。
[0020]B.所呈现的技术
在许多情况下,调度第二线程108的执行优先于较高优先级线程108有时可以是合期望和可接受的。例如,如果准许较低优先级线程108以相对畅通的方式利用所保留的资源,则较低优先级线程108可以快速地完成其操作,并且较高优先级线程108的延迟可以忽略不计。然而,在一些情况下,这样的线程108调度可以导致设备102的资源106的低效利用和线程108执行中的可避免延迟。例如,当第二线程108正在利用资源106并且第一线程108
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1