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

文档序号:9583633阅读:来源:国知局
被挂起时,设备102也可以执行具有比第一线程108的优先级110更低但是比第二线程108的优先级110更高的优先级110的第三线程108。因此,线程调度器112可以在等待第二线程108放弃资源106的保留116时制止执行第一线程108,但是也可以由于第三线程的较高优先级110的原因而使第三线程108的执行按优先级排序优先于第二线程108。因此,第三线程108的操作可以延迟第二线程108的任务完成、其对资源106的保留116的放弃以及第一线程108的继续开始。该相互作用导致实际使第三线程108按优先级排序优先于第一线程108,尽管第一线程具有比第三线程108更高的优先级。
[0021]可以设计许多技术来减少这些和类似的调度问题。然而,许多这样的技术可能在计算上是昂贵的。例如,谨慎的保留跟踪系统可以利用某种复杂逻辑以便履行线程108对于资源106的保留116的任何请求。然而,在谨慎跟踪技术的效率收益相较于所牵涉的计算开支方面可能存在权衡。例如,保持对每一资源106的每一保留116的全局记录也可以牵涉用于更新全局记录的保留进程116 ;例如,为了将资源106的保留116授予线程108,设备102可能首先必须获取全局保留记录的保留以便记录保留116,并且可能必须在保留116被放弃时再次锁定全局保留记录。因此更新全局保留记录强加了计算资源方面的成本,其减小或者甚至超出了这样的保留感知线程调度的效率收益。因此,选择用于使线程108按优先级排序的特定技术可以极大地影响设备102的效率。
[0022]图2呈现了可以使得能够减少或避免低效的线程按优先级排序的用于使线程的执行按优先级排序的示例性技术。在该示例性场景中,三个线程108在设备102上执行:具有第一(相对高)优先级110的第一线程108 ;具有第二 (相对低)优先级110的第二线程108 ;以及具有第三(相对平均)优先级110的第三线程108。在第一时间200处,第二线程108可以获取资源106的保留116,诸如对文件的锁定或者对访问显示器适配器的存储器缓冲器的准许。由于资源106还未被任一其他线程108保留,所以设备102可以将保留116授予第一线程108。在第二时间202处,第一线程108可以请求同一资源106的保留116,并且设备102可以挂起204第一线程108,直到第一线程108放弃资源106的保留116。然而,设备102的任务调度器112还可以被配置成使第三线程108的执行按优先级排序优先于第二线程108并且相关地优先于第一线程108的继续开始,这是由于第三线程108优先于第二线程108的较高优先级110。因此,在第三时间206处,设备102可以检测该场景,并且可以临时提升208第二线程108的优先级110优先于第三线程108的优先级110以便加快第二线程108已经为其保留资源106的任务的完成。在第四时间210处,当第二线程108放弃212资源106的保留116时,设备102可以将资源106的保留116授予第一线程108,并且可以继续开始第一线程108的执行。附加地,设备102可以将第二线程118的优先级110减小到其在第三时间点206处进行提升之前的值。通过以这种方式调整线程108的优先级110,在图2的示例性场景中图示的技术可以减小由于根据本文中呈现的技术保留资源而由线程调度引起的低效。
[0023]C.示例性实施例
图3呈现了本文中呈现的技术的第一示例性实施例,其被图示为使分别具有优先级110和在设备102的处理器104上执行的线程108按优先级排序的示例性方法300。示例性方法300可以被实现为例如存储在设备102的存储器组件(诸如存储器电路、硬盘驱动器盘、固态存储设备或者磁盘或光盘)中的一组指令,并且被组织为使得当由设备102执行(例如在设备102的处理器上)时使得设备102根据本文中呈现的技术进行操作。示例性方法300开始于302并且包含对于各个线程108而言标识304线程108保留的至少一个资源106。示例性方法300还包含在检测到第一线程108等待第二线程108所保留的选定资源106同时第三线程108具有低于第一线程108的优先级110且高于第二线程108的优先级110的优先级110时,提尚第二线程108的优先级110尚于第二线程108的优先级110。不例性方法300还包含根据优先级110调度308线程108在处理器104上的执行。以这种方式,示例性方法300实现根据各线程108各自的优先级110而使线程108按优先级排序和执行线程108,并且还实现根据本文中呈现的技术资源106的保留116,并且如此在310处结束。
[0024]图4呈现了本文中呈现的技术的第二示例性实施例,其被图示为示例性场景400,展示了示例性系统406,该系统被配置成使分别具有用于在具有存储器404和任务调度器112的设备402的处理器104上执行的优先级110的线程108按优先级排序。示例性系统406的各个组件可以被实现为例如存储在设备402的存储器406中且可在设备402的处理器104上执行的一组指令,使得各组件的互操作使得设备402根据本文中呈现的技术进行操作。示例性系统406包括资源跟踪组件408,其被配置成跟踪在设备402上执行的各个线程108对设备402的资源106的保留116。示例性系统406还包括线程按优先级排序组件,其被配置成在检测到由第二线程108保留且由具有高于第二线程108的优先级的优先级110的第一线程108等待的资源106时,并且在进一步检测到被调度用于执行且具有高于第二线程108的优先级110且低于第一线程108的优先级110的优先级110的第三线程108时,提升第二线程108的优先级110高于第三线程108的优先级110。以这种方式,示例性系统406实现将设备402配置成根据本文中呈现的技术由处理器104和任务调度器112使线程108的执行按优先级排序。
[0025]再另一个实施例牵涉计算机可读介质,其包括被配置成应用本文中呈现的技术的处理器可执行指令。这样的计算机可读介质可以包括例如编码一组计算机可读指令的、牵涉有形设备的计算机可读存储介质,所述指令当由设备的处理器执行时使得设备实现本文中呈现的技术,所述有形设备诸如存储器半导体(例如,利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和/或同步动态随机存取存储器(SDRAM)技术的半导体)、硬盘驱动器盘、闪速存储器设备或者磁盘或光盘(诸如⑶-R、DVD-R或软盘)。这样的计算机可读介质还可以包括(作为一类不同于计算机可读存储介质的技术)各种类型的通信介质,诸如可以通过各种物理现象(例如,电磁信号、声波信号或光学信号)并在各种有线场景(例如,经由以太网或光线电缆)和/或无线场景(例如,诸如WiFi的无线局域网(WLAN),诸如蓝牙的个域网(PAN)或蜂窝或无线电网络之类)中传播、并且编码一组计算机可读指令的信号,所述指令当由设备的处理器执行时使得设备实现本文中呈现的技术。
[0026]在图5中图示出可以以这些方式设计的示例性计算机可读介质,其中实现方式500包括其上编码了计算机可读数据504的计算机可读介质502 (例如,⑶-R、DVD-R或硬盘驱动器盘)。该计算机可读数据504进而包括被配置成根据本文中阐述的原理进行操作的一组计算机指令506 ο在一个这样的实施例中,处理器可执行指令506可以被配置成鉴于设备102上的线程108对设备102的资源106的保留116而执行使这样的线程108在设备上的执行按优先级排序的方法508,诸如图3的示例性方法300。在另一个这样的实施例中,处理器可执行指令506可以被配置成实施一组组件,他们一起提供一种鉴于设备102上的线程108对设备102的资源106的保留116而使这样的线程108在设备102的执行按优先级排序的系统,诸如图4的示例性系统406。该计算机可读介质的一些实施例可以包括被配置成存储以这种方式配置的处理器可执行指令的计算机可读存储介质(例如,硬盘驱动器、光盘或闪速存储设备)。本领域普通技术人员可以设计许多这样的计算机可读介质,其被配置成根据本文中呈现的技术进行操作。
[0027]D.变型
本文中讨论的技术可以被设计为在许多方面具有变型,并且一些变型可以相对于这些和其他技术的其他变型呈现附加的优点和/或减少缺点。而且,一些变型可以组合地来实现,并且一些组合可以通过协同合作而展现附加优点和/或减少的缺点。可以将这些变型并入各种实施例(例如,图3的示例性方法300和/或图4的示例性系统400)中以将单独的和/或协同的优点授给这样的实施例。
[0028]Dl.场景
可以在这些技术的实施例之间变化的第一方面涉及其中可以利用这样的技术的场景。
[0029]作为该第一方面的第一变型,可以与许多类型的设备102 (诸如服务器、服务器机群、工作站、膝上型电脑、平板电脑、移动电话、游戏控制台和网络装置)一起利用本文中呈现的技术。这样的设备102还可以提供多种计算组件,诸如有线或无线通信设备;人工输入设备,诸如键盘、鼠标、触摸板、触摸敏感显示器、麦克风和基于手势的输入组件;自动化输入设备,诸如静止或运动相机、全球定位服务(GPS)设备和其他传感器;输出设备,诸如显示器和扬声器;以及通信设备,诸如有线和/或无线网络组件。
[0030]作为该第一方面的第二变型,本文中呈现的技术可以牵涉监视许多类型的资源106的许多类型的保留116。作为第一示例,资源106可以包括例如在一个或多个处理器104上
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1