CN109716297A - 优化针对高激活率的操作系统计时器 - Google Patents
优化针对高激活率的操作系统计时器 Download PDFInfo
- Publication number
- CN109716297A CN109716297A CN201680089343.7A CN201680089343A CN109716297A CN 109716297 A CN109716297 A CN 109716297A CN 201680089343 A CN201680089343 A CN 201680089343A CN 109716297 A CN109716297 A CN 109716297A
- Authority
- CN
- China
- Prior art keywords
- calling
- rate
- scheduling
- scheduler
- calling rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明揭示一种用于优化任务的调度的系统,所述系统包括处理器,所述处理器用于:监控由所述处理器执行的多个任务的调用率,所述调用率指示所述多个任务的调用频率;确定所述调用率是否超出预定义阈值水平;以及根据所述确定从多个调度机制中选择优选调度机制来调度所述多个任务的所述调用。
Description
技术领域
在本发明涉及优化针对高激活率的操作系统计时器。
背景技术
本发明在其一些实施例中涉及优化操作系统(operating system,OS)执行环境中的调度,并且更确切但非排他地,涉及通过根据在操作系统(operating system,OS)执行环境中执行的多个任务的调用率从多个调度器中选择优选调度器来优化所述OS执行环境中的调度。
在计算环境中,调度是用于分配资源的方法和/或用于执行和完成工作的手段。所述工作可以是调度到处理器、网络链路、专用硬件和/或类似物等硬件资源上的线程、程序、数据流和/或类似物等虚拟计算元素。调度是用于任何硬件平台上的任何软件实施方案的基本构建模块以及计算系统的执行模型的固有部分。调度是使得有可能具有计算机多任务的元素,在所述计算机多任务中多个计算元素共享硬件平台的可用硬件资源并被同时执行。
调度活动可以通过处理硬件上执行的调度器实施为例如独立的软件模块、实施为OS的部分、实施为底层预OS软件模块和/或类似物。调度器还可以被实施为上述任何两种或更多种的组合。
可以使用多种技术中的一种或多种来实施调度器以允许通过可用硬件资源有效计算出多个计算元素。可以实施调度器以实现针对由可用硬件资源执行的多个计算元素的一个或多个计算目标,例如,平衡负载、最大化吞吐量、最小化响应时间、最小化延时、最大化公平性和/或类似物。由于计算目标中的一些可能冲突,例如,吞吐量对比延时,因此可以实施调度器以提供冲突的计算目标之间的最佳折中。可以根据计算系统的特征进一步调适调度器。
发明内容
根据第一方面,提供一种用于优化任务的调度的装置,其包括处理器,所述处理器用于:监控由所述处理器执行的多个任务的调用率,所述调用率指示所述多个任务的调用频率;确定所述调用率是否超出预定义阈值水平;以及根据所述确定从多个调度机制中选择优选调度机制来调度所述多个任务的调用。
在根据第一方面的第一可能实施方案中,针对介于低调用率到高调用率范围内的不同调用率优化调度机制中的每一个。
在同样根据第一方面或根据第一方面的第一实施形式的第二可能实施形式中,在调用率低于预定义阈值水平的情况下,将用于较低调用率的调度机制选择为优选调度机制,且在调用率高于预定义阈值水平的情况下,将用于较高调用率的调度机制选择为优选调度机制。
在同样根据第一方面或根据第一方面的任何前述实施形式的第三可能实施形式中,根据在处理器上执行的操作系统调用任务所需的典型调用时间设定预定义阈值水平。
在同样根据第一方面或根据第一方面的任何前述实施形式的第四可能实施形式中,调度机制中的一个是通过由处理器执行的操作系统提供的基于计时器滴答中断的机制。
在同样根据第一方面或根据第一方面的任何前述实施形式的第五可能实施形式中,利用至少一个优先级结构通过调度器提供另一个调度机制,所述至少一个优先级结构是选自由以下组成的群组的一项:双链表、二进制最小堆结构、平衡堆树和计时器轮。
在同样根据第一方面或根据第一方面的任何前述实施形式的第六可能实施形式中,预定义阈值水平包含迟滞区域,从而避免当调用率在预定义阈值水平附近改变时优选调度机制的间断选择。
在同样根据第一方面或根据第一方面的任何前述实施形式的第七可能实施形式中,当调用率快速超越预定义阈值水平时调度机制并行地操作有限时间。
在同样根据第一方面或根据第一方面的任何前述实施形式的第九可能实施形式中,处理器进一步用于根据处理器上的处理负载而动态地调节预定义阈值水平。
根据第二方面,提供一种调度周期任务的方法,其包括:监控由处理器执行的多个任务的调用的调用率,确定所述调用率是否超出预定义阈值水平;以及根据所述确定从多个调度机制中选择优选调度机制来调度所述多个任务的调用。
在根据第二方面的第一可能实施方案中,针对介于低调用率到高调用率范围内的不同调用率优化调度机制中的每一个。
在同样根据第二方面或根据第二方面的第一实施形式的第二可能实施形式中,在调用率低于预定义阈值水平的情况下,将用于较低调用率的调度机制选择为优选调度机制,且在调用率高于预定义阈值水平的情况下,将用于较高调用率的调度机制选择为优选调度机制。
在同样根据第二方面或根据第二方面的任何前述实施形式的第三可能实施形式中,根据在处理器上执行的操作系统调用任务所需的典型调用时间设定预定义阈值水平。
在同样根据第二方面或根据第二方面的任何前述实施形式的第四可能实施形式中,调度机制中的一个是通过由处理器执行的操作系统提供的基于计时器滴答中断的机制。
在同样根据第二方面或根据第二方面的任何前述实施形式的第五可能实施形式中,利用至少一个优先级结构通过调度器提供另一个调度机制,所述至少一个优先级结构是选自由以下组成的群组的一项:双链表、二进制最小堆结构、平衡堆树和计时器轮。
在同样根据第二方面或根据第二方面的任何前述实施形式的第六可能实施形式中,预定义阈值水平包含迟滞区域,从而避免当调用率在预定义阈值水平附近改变时优选调度机制的间断选择。
在同样根据第二方面或根据第二方面的任何前述实施形式的第七可能实施形式中,当调用率快速超越预定义阈值水平时调度机制并行地操作有限时间。
在同样根据第二方面或根据第二方面的任何前述实施形式的第九可能实施形式中,处理器进一步用于根据处理器上的处理负载而动态地调节预定义阈值水平。
根据本发明的另一个方面,提供一种用于优化任务的调度的系统,其包括处理器,所述处理器用于:监控由所述处理器执行的多个任务的调用率,所述调用率指示所述多个任务的调用频率;确定所述调用率是否超出预定义阈值水平;以及根据所述确定从多个调度机制中选择优选调度机制来调度所述多个任务的调用。
根据本发明的另一个方面,提供一种计算机程序,其上具有计算机可读程序指令以使处理器实施本发明的方面。
附图说明
此处仅通过实例结合附图描述本发明的一些实施例。现在具体结合附图,需要强调的是所示的项目作为实例,为了说明性地讨论本发明的实施例。这样,结合附图的描述使本领域技术人员明白可以如何实践本发明实施例。
在附图中:
图1是根据本发明的一些实施例的在OS执行环境中选择优选调度器的示例性过程的流程图;
图2是根据本发明的一些实施例的用于在OS执行环境中选择优选调度器的示例性系统的示意性图解;
图3是呈现针对示例性任务执行环境对OS计时器和计时器轮调度机制之间的性能比较的图;以及
图4是呈现根据本发明的一些实施例在示例性OS执行环境中从OS计时器和计时器轮调度机制选择优选调度器的示例性迟滞实施方案的图。
具体实施方式
本发明在其一些实施例中涉及优化操作系统(operating system,OS)执行环境中的调度,并且更确切但非排他地,涉及通过根据在操作系统(operating system,OS)执行环境中执行的多个任务的调用率从多个调度器中选择优选调度器来优化所述OS执行环境中的调度。
本发明呈现用于通过根据OS执行环境中执行的多个任务的总调用率来选择优选调度器从而优化所述多个任务的调度的系统和方法。通过不断地监控和分析全部任务的调用事件来确定调用率。OS可以是例如Linux、Windows和/或类似物。可以根据检测到的调用率从多个调度机制动态地选择优选调度器。一个或多个调度机制可以基于例如OS计时器、计时器轮和/或类似物,其中多个调度机制中的每一个调度机制的计算资源消耗、延时、可扩展性和/或类似物等性能对于不同调用率可不同。
在调用率范围内预定义一个或多个阈值水平,使得调用率的范围被拆分成两个或更多个区域。可以针对调用率区域中的每一个界定来自多个调度机制的优选调度器,使得所述优选调度器在对应的调用率区域呈现最佳性能。在运行时期间,将检测到的调用率与预定义阈值水平进行比较以确定所述检测到的调用率存在于哪个调用率区域。接着可选择针对所确定的调用率区域分配为优选调度器的调度机制作为用于OS执行环境的优选调度器。不断地重复所述过程使得可以动态地选择优选调度器以适应检测到的调用率。
可以对预定义阈值水平中的一个或多个分配迟滞区域,以避免当检测到的调用率在预定义阈值水平附近频繁改变的情况下的间断状态。
任选地,可以在运行时期间根据检测到的调用率调节预定义阈值水平。
相比目前现有的调度机制、方法和/或实施方案,调度器选择可以显著改进执行环境的利用。
现有调度机制中的一些可能并非动态地适应OS环境中的任务的调用率变化。因此,现有调度机制可能对一个或多个调用率区域表现良好但对其它调用率区域表现不佳。
例如,基于OS计时器和/或Linux posix计时器等系统调用的调度器通常可以在低调用率时表现良好但是对高调用率呈现低性能(效率)。这归因于基于OS计时器的调度器的性质,其中针对任何任务的每个调用而调用调度器。这呈现随调用率线性地增加并且因此对于高调用率更加显著的开销。基于OS计时器的调度器的可扩展性因此受到限制,因为其使处理平台负担相当大的计算资源消耗。
其它目前现有的调度机制,例如计时器轮调度器,可以在整个调用率范围内表现大体一致。虽然由计时器轮引入的开销可随调用率线性地增加,但所述增加非常缓和(小线性函数系数)。然而,本质上计时器轮消耗恒定量的计算资源而无论其调用的任务的调用率。因而,计时器轮调度器在高调用率呈现非常好的性能。另一方面,甚至对于低调用率以及可能当完全没有调度任务时,计时器轮调度器仍然可消耗相同恒定量的计算资源。
因此,调度器选择器可以通过选择最适合于执行环境中检测到的当前调用率的最佳调度器来显著改进执行环境的利用。
通过检测执行环境中的任务的实际调用率,并且动态地配置执行环境以使用最佳调度器,即使当调用率变化时也能在每个调用率情境使用最佳拟合的调度器。优化执行环境中的任务的调度可以显著减少调度机制所消耗的计算资源,这可以自然地转化为减少成本和/或减少计算时间。
此外,通过使用调度器选择器,可以针对其中检测到低调用率的轻量级以及其中调用率极其高的大负载执行环境的多个执行环境使用相同的调度实施方案。使用相同调度实施方案可以显著减少开发、集成和/或维护用于每个特定执行环境的适当调度器可能需要的软件开发、集成和/或维护成本。
在详细解释本发明的至少一个实施例之前,应理解,本发明在其申请案中不必限于在以下描述中阐述和/或在附图和/或实例中所说明的组件和/或方法的结构以及布置的细节。本发明能够具有其它实施例或以各种方式实践或进行。
本发明可以是装置、系统、方法和/或计算机程序产品。计算机程序产品可以包含计算机可读存储介质,其上具有计算机可读程序指令以使处理器实施本发明的方面。
计算机可读存储介质可以是有形设备,其可以保持和储存供指令执行设备使用的指令。计算机可读存储介质可以是例如但不限于:电子存储设备、磁性存储设备、光学存储设备、电磁存储设备、半导体存储设备或前述各者的任何合适组合。
本文中所描述的计算机可读程序指令可以从计算机可读存储介质下载到相应计算/处理设备,或通过因特网、局域网、广域网和/或无线网络等网络下载到外部计算机或外部存储设备。
计算机可读程序指令可完全执行于用户的计算机上、部分地执行于用户设备(user equipment,UE)等用户的计算机上、执行为独立软件包、部分地执行于用户的计算机上且部分地执行于网络装置等远程计算机上,以及完全执行于远程计算机或服务器上。在后一种场景中,远程计算机可以通过包含局域网(local area network,LAN)或广域网(wide area network,WAN)的任何类型的网络连接到用户的计算机,或者可以(例如,使用因特网服务提供方通过因特网)对外部计算机进行连接。在一些实施例中,包含例如可编程逻辑电路、现场可编程门阵列(field-programmable gate array,FPGA)或可编程逻辑阵列(programmable logic array,PLA)的电子电路可以通过利用计算机可读程序指令的状态信息将电子电路个人化而执行计算机可读程序指令,以便执行本发明的方面。
本文参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或方块图来描述本发明的方面。应理解,可以通过计算机可读程序指令实施流程图说明和/或方块图中的每个方块,以及流程图说明和/或方块图中的方块的组合。
图中的流程图和方块图说明根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方案的架构、功能性和操作。就此而言,流程图或方块图中的每个方块可以表示模块、区段或指令的部分,其包括用于实施指定逻辑功能的一个或多个可执行指令。在一些替代实施方案中,各个方块中提及的功能可以不按图中所提及的次序发生。例如,事实上,连续示出的两个方块可以几乎同时执行,或者有时候,方块可以按照相反的顺序执行,这取决于所涉及的功能。还将注意到,方块图和/或流程图图示中的每个块,以及方块图和/或流程图图示中的块的组合可以通过专用的基于硬件的系统实施,所述系统执行指定功能或动作,或实行专用硬件和计算机指令的组合。
现在参考图1,图1是根据本发明的一些实施例的在OS执行环境中选择优选调度器的示例性过程的流程图。选择Linux、Windows和/或类似物等OS执行环境中的优选调度器的过程100是基于不断地监控和分析所述OS执行环境中执行的多个任务的调用率。可以根据检测到的调用率从多个调度机制动态地选择优选调度器。所述一个或多个调度机制可以基于例如OS计时器、计时器轮和/或类似物。多个调度机制中的每一个调度机制的性能对于不同调用率可不同,其中性能在计算资源消耗、延时、可扩展性和/或类似物方面进行表示。
在调用率范围内预定义一个或多个阈值水平,使得调用率的范围被拆分成两个或更多个区域。可以针对调用率区域中的每一个界定来自多个调度机制的优选调度器,使得所述优选调度器在对应的调用率区域呈现最佳性能。
在运行期,将检测到的调用率与预定义阈值水平进行比较以确定所述检测到的调用率存在于哪个调用率区域。接着可选择针对所确定的调用率区域分配为优选调度器的调度机制作为用于OS执行环境的优选调度器。不断地重复过程100,使得可以动态地选择优选调度器以适应检测到的调用率。
为了避免在检测到的调用率在预定义阈值水平附近频繁改变的情况下的间断状态,可以对预定义阈值水平分配迟滞区域。
还参考图2,图2是根据本发明的一些实施例的用于在OS执行环境中选择优选调度器的示例性系统的示意性图解。示例性系统200包括处理器202,所述处理器托管Windows、Linux、安卓等OS 210和/或具有在OS 210的执行环境中执行的多个任务220。OS 210可以采用调度器选择器240,从而应用检测多个任务220的调用率并且根据检测到的调用率从调度器1 230A和调度器2 230B等多个调度机制230中选择优选调度器的过程100。
调度机制230可以包含例如Linux posix OS计时器、计时器轮调度器和/或如本领域中已知的类似物。虽然系统200呈现为包含两个调度机制230A和230B,但是其不应理解为限制性的,并且额外调度机制可以在系统200中可用,每个调度机制被分配为处理调用率区域中的不同一个或多个。调度机制230可以利用多个结构中的一个或多个,例如,双链表、二进制最小堆结构、平衡堆树和/或类似物。
调度器选择器240、调度器230和任务220是软件模块,各自包括来自一个或多个存储介质的由处理器202执行的多个程序指令。
处理器202可以包括一个或多个处理核心。均质或异质的处理器202可以进一步布置用于并行处理,作为集群和/或作为一个或多个多核心处理器。处理器202还可以包括一个或多个分布式处理节点,例如,处理节点的集群、网络处理节点和/或类似物,每个包括一个或多个处理器和/或处理核心。
如102处所示,过程部分100以调度器选择器240连续地监控任何给定实例处的任务220的调用开始。
如104处所示,调度器选择器240分析调用事件以识别任务220的调用率,即,在每一时间单位,例如每一秒,任务220的调用次数。
如106处所示,调度器选择器240将检测到的(识别的)调用率与一个或多个预定义阈值水平进行比较,从而识别检测到的调用率存在于哪些调用率区域中。
在OS 210所支持的调用率范围内预定义一个或多个阈值水平,使得调用率的范围被拆分成两个或更多个调用率区域。通过测量在多个执行情境期间调度机制230中的每一个的性能以便创建性能记录,例如,表征调度机制230中的每一个的性能的图,可以界定预定义阈值水平。接着可相对于彼此分析调度机制230中的每一个的图,使得两个或更多个调度机制230的图曲线相交之处的一个或多个相交点可以被界定为预定义阈值水平中的一个。
调度机制230中的每一个可以在调用率范围内呈现不同性能,因此针对调用率区域中的每一个预定义来自多个调度机制230的优选调度器。界定优选调度器,使得优选调度器呈现在对应的调用率区域处优于另一调度机制230的最佳性能。
在检测到的调用率超出预定义阈值水平中的一个但未超出更高预定义阈值水平的情况下,调度器选择器240确定检测到的调用率存在于界定在所述两个预定义阈值水平之间的调用率区域中。
如108处所示,调度器选择器240根据检测到的调用率所存在于的调用率区域而从多个调度机制230中选择优选调度器。
预定义阈值水平可以各自分配有迟滞区域,以便避免当检测到的调用率在预定义阈值水平附近快速且频繁改变的情况下由调度器选择器240不断地切换优选调度器而造成的间断状态。
任选地,调度器选择器240可以在运行时期间根据检测到的调用率动态地调节预定义阈值水平中的一个或多个。例如,调度器选择器240可以检测调用率的快速和频繁改变。这可能导致优选调度器的快速切换(即使迟滞区域旨在防止这种情境)并且可能引起并非最佳的调度。在这种情境中,调度器选择器240可以调节对应的预定义阈值水平,即增大或减小阈值水平的值使得检测到的调用率唯一地存在于单个调用率区域内。
在OS 210的执行环境内连续地重复过程100,使得在任何时间都根据检测到的任务220的瞬时调用率调适优选调度器。
在两个调度机制230之间的转换时间期间,系统200可能会遭受一些副效应,例如,任务220的调用精确度不准确和/或转换所涉及的两个调度机制230同时操作。两个调度机制230的同时操作可能导致处理器202的较高利用率,即较高计算资源消耗。然而,转换时间的持续时间短且有限,因此能减少副效应的发生。此外,针对预定义阈值水平采用迟滞区域可以显著减少调度器选择器240在OS 210的执行环境中应用的切换次数。
还参考图3,图3是呈现用于示例性任务执行环境的OS计时器与计时器轮调度机制之间的性能比较的图。图300呈现调度机制230等两个调度机制之间的性能比较。图曲线302呈现利用Linux posix计时器和/或类似物等OS计时器的调度器的性能,而图曲线304呈现计时器轮调度器的性能。Linux posix计时器是纯粹的Linux计时器,而计时器轮调度器通过具有一些改进的开源计时器轮实施。
在针对具有多个用户设备(user equipment,UE)单元的网络系统进行的实验期间测量性能,所述UE单元通过任务220等多个会话服务。
在处理器202计算资源的利用率百分比(CPU占用率%)相对于调用率方面呈现性能。调用率是每秒的任务220等任务的调用次数。使用pidstat(Linux任务的报告统计)功能测量调度机制的效率(性能)。使用在Intel Xeon 2.6GHz处理器的一个核心上执行的调度器对托管于所述Xeon 2.6GHz处理器,例如处理器202上的Linux进行示例性测量。计时器轮调度器被配置为具有10μs的解析度。
从图曲线302明显可见,使用Linux计时器调度任务220对于至多每秒~50,000次调用的低调用率呈现高效调度。然而,由于调用中的每一个触发上下文切换,因此Linux计时器可能不能有效地扩展到高调用率,因为其计算资源消耗随调用率而显著地线性增加。Linux计时器调度的显著开销因此针对高调用率可耗费处理器202的显著计算资源。
如图曲线304所示,使用计时器轮调度器调度任务220在从低调用率到大负载调用率的整个调用率范围内呈现相对一致的性能,因为每一任务调用的开销小到可忽视。由计时器轮调度器引入的开销可随调用率线性地增加,然而,所述开销增加非常缓和,因为其特征在于小线性函数系数。然而,计时器轮调度器消耗相当大的处理器202计算资源(开销),即使对于调度低调用率以及即使当不存在调用的任务220时。这归因于计时器轮调度器架构,其中即使当调度非常少的任务220和/或没有任务220调度时也不断地管理和监控用于任务调用的时隙。开销是与调度器实施方案无关的绝对值,并且可主要取决于计时器轮的解析度。用于实验的解析度是10μs,其相当于每秒100000次系统调用。
还参考图4,图4是呈现示例性OS执行环境中从OS计时器和计时器轮调度机制选择优选调度器的示例性迟滞实施方案的图。应用调度器选择器240等调度器选择器从两个调度机制选择优选调度器,所述两个调度机制例如是调度机制230,例如,如上文呈现的基于OS计时器的调度器和计时器轮调度器。阈值水平402预定义为每秒~50,000次的调用率。预定义阈值水平402是其中调度器选择器240在基于OS计时器的调度器与计时器轮调度器之间切换的调用率值。当采用过程100等过程的调度器选择器240确定检测到的调用率低于预定义阈值水平402时,调度器选择器240将基于OS计时器的调度器选择为优选调度器。当调度器选择器240确定检测到的调用率高于预定义阈值水平402时,调度器选择器240将计时器轮调度器选择为优选调度器。
为了避免当检测到的调用率在预定义阈值水平402附近快速且频繁改变的情况下调度器选择器240的间断操作,预定义阈值水平402应用有迟滞区域404。这意味着调度器选择器240仅在检测到的调用率高于迟滞区域404的上限时切换到计时器轮调度机制230,所述上限例如是每秒60,000次调用。类似地,调度器选择器240仅在检测到的调用率低于迟滞区域404的下限时切换到基于OS计时器的调度器,所述下限例如是每秒40,000次调用。
虽然图300呈现从两个调度机制230进行优选调度器选择,但是可以使用多个调度机制230,其中应用额外阈值水平来创建额外调用率区域,可以向所述额外调用率区域分配额外调度机制230。
在计算环境中应用调度器选择器240可以是简单的并且可不需要对任务220进行操作和/或代码改变。实施方案可以利用由OS 210提供的现有调度应用编程接口(application programming interfaceAPI)来调用系统调用、功能和/或类似物。使用现有API可以使调度机制选择对于任务220完全连续,其可以使用由OS 210提供的相同标准API用于调度。
选择器240可以使用全局变量[$TIMING]来更新选自调度机制230的优选调度器的值,即,所述调度器是目前起作用的。调度器选择器240可以更新额外全局变量[$IR],所述额外全局变量指示调度器选择器240所检测到的当前调用率。调度器选择器240更新变量[$TIMING]和/或[$IR]所需的操作次数可受处理器202的O(1)操作限制。可以如以下伪代码摘录1描述实施更新程序。
伪码摘录1:
若($IR>上限阈值),则$TIMING=调度器1
若($IR<下限阈值),则$TIMING=调度器2
其中上限阈值是迟滞区域404等迟滞区域的上限,且下限阈值是迟滞区域404的下限。因此,调度器1可以是计时器轮调度器且调度器2可以是基于OS计时器的调度器。
为了使调度器1与调度器2之间的转换完全连续,由调度机制230使用的时序机制可以用于在其目前使用替代调度机制的情况下根据[$TIMING]机制变量进行操作。通过例如应用如以下伪代码摘录2中描述的机制,可以在调度机制230中的每一个的调用期间进行应用。
伪代码摘录2:
若通过时序机制!=$TIMING调度任务,则
转换将通过$TIMING调用的任务。
可以使用例如以下伪代码摘录3中呈现的伪代码进行调度器选择器240的实施以及从调度机制中选择优选调度器,从而进一步简化调度器选择器240到OS 210的执行环境的移植和集成。
伪代码摘录3:
对本发明各个实施例的描述只是为了说明的目的,而这些描述并不旨在穷举或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,本领域技术人员可以清楚理解许多修改和变化。相比于市场上可找到的技术,选择此处使用的术语可最好地解释本实施例的原理、实际应用或技术进步,或使本领域其他技术人员理解此处公开的实施例。
预期在从此申请开始的专利成熟化的时间期间,将开发出许多相关的调度实施方案,术语调度实施方案的范围意欲先验地包含全部此类新的技术。
本文所使用的术语“约”是指±10%。
术语“包括”、“包含”、“具有”以及其变化形式表示“包含但不限于”。这个术语包括了术语“由……组成”以及“主要由……组成”。
短语“主要由…组成”意指组成物或方法可以包含额外成分和/或步骤,但前提是所述额外成分和/或步骤不会实质上改变所要求的组成物或方法的基本和新颖特性。
除非上下文中另有明确说明,此处使用的单数形式“一个”和“所述”包括复数含义。例如,术语“化合物”或“至少一个化合物”可以包含多个化合物,包含其混合物。
此处使用的词“示例性的”表示“作为一个例子、示例或说明”。任何“示例性的”实施例并不一定理解为优先于或优越于其他实施例,和/或并不排除其他实施例特点的结合。
此处使用的词语“可选地”表示“在一些实施例中提供且在其他实施例中没有提供”。本发明的任意特定的实施例可以包含多个“可选的”特征,除非这些特征相互矛盾。
在整个本申请案中,本发明的各种实施例可以范围格式呈现。应理解,范围格式的描述仅为了方便和简洁起见,并且不应该被解释为对本发明范围的固定限制。因此,对范围的描述应被认为是已经具体地公开所有可能的子范围以及所述范围内的个别数值。例如,对例如从1到6的范围的描述应被认为是已经具体地公开子范围,例如从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等,以及所述范围内的个别数字,例如1、2、3、4、5和6。不管范围的宽度如何,这都适用。
当此处指出一个数字范围时,表示包含了在指出的这个范围内的任意所列举的数字(分数或整数)。短语“在第一指示数字与第二指示数字之间的范围变化/范围”以及“从第一指示数字到第二指示数字的范围变化/范围”在本文中互换使用并表示包含第一指示数字和第二指示数字以及其间的所有分数和整数数字。
应了解,为简洁起见在单独实施例的上下文中描述的本发明的某些特征还可以组合提供于单个实施例中。相反地,为简洁起见在单个实施例的上下文中描述的本发明的各个特征也可以单独地或以任何合适的子组合或作为本发明的任何合适的其它实施例提供。在各个实施例的上下文中描述的某些特征未视为那些实施例的基本特征,除非没有这些元素所述实施例无效。
此处,本说明书中提及的所有出版物、专利和专利说明书都通过引用全文结合在本说明书中,同样,每个单独的出版物、专利或专利说明书也具体且单独地通过引用结合在此。此外,对本申请的任何参考的引用或识别不应解释为承认此种参考在现有技术中优先于本发明。就使用节标题而言,不应该将节标题理解成必须限制性的。
Claims (11)
1.一种用于优化任务的调度的装置,其特征在于,包括:
处理器,用于:
监控由所述处理器执行的多个任务的调用率,所述调用率指示所述多个任务的调用频率;
确定所述调用率是否超出预定义阈值水平;以及
根据所述确定从多个调度机制中选择优选调度机制来调度所述多个任务的所述调用。
2.根据权利要求1所述的装置,其特征在于,针对介于低调用率到高调用率范围内的不同调用率优化所述调度机制中的每一个。
3.根据前述权利要求中任一项所述的装置,其特征在于,在所述调用率低于所述预定义阈值水平的情况下,将用于较低调用率的调度机制选择为所述优选调度机制,且在所述调用率高于所述预定义阈值水平的情况下,将用于较高调用率的调度机制选择为所述优选调度机制。
4.根据前述权利要求中任一项所述的装置,其特征在于,进一步包括根据在所述处理器上执行的操作系统调用任务所需的典型调用时间来设定所述预定义阈值水平。
5.根据前述权利要求中任一项所述的装置,其特征在于,所述调度机制中的一个是通过由所述处理器执行的操作系统提供的基于计时器滴答中断的机制。
6.根据前述权利要求中任一项所述的装置,其特征在于,利用至少一个优先级结构通过调度器提供另一个调度机制,所述至少一个优先级结构是选自由以下组成的群组的成员:双链表、二进制最小堆结构、平衡堆树和计时器轮。
7.根据前述权利要求中任一项所述的装置,其特征在于,进一步包括:所述预定义阈值水平包含迟滞区域,从而避免当所述调用率在所述预定义阈值水平附近改变时所述优选调度机制的间断选择。
8.根据前述权利要求中任一项所述的装置,其特征在于,进一步包括:当所述调用率快速超越所述预定义阈值水平时所述调度机制在有限时间内并行地操作。
9.根据前述权利要求中任一项所述的装置,其特征在于,所述处理器进一步用于根据所述处理器上的处理负载而动态地调节所述预定义阈值水平。
10.一种调度周期任务的方法,其特征在于,包括:
监控由处理器执行的多个任务的调用的调用率,
确定所述调用率是否超出预定义阈值水平;以及
根据所述确定从多个调度机制中选择优选调度机制来调度所述多个任务的所述调用。
11.一种用于优化任务的调度的系统,其特征在于,包括:
处理器,用于:
监控由所述处理器执行的多个任务的调用率,所述调用率指示所述多个任务的调用频率;
确定所述调用率是否超出预定义阈值水平;以及
根据所述确定从多个调度机制中选择优选调度机制来调度所述多个任务的所述调用。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2016/072015 WO2018050243A1 (en) | 2016-09-16 | 2016-09-16 | Optimize operating system timers for high activation rate |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109716297A true CN109716297A (zh) | 2019-05-03 |
Family
ID=56936428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680089343.7A Pending CN109716297A (zh) | 2016-09-16 | 2016-09-16 | 优化针对高激活率的操作系统计时器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109716297A (zh) |
WO (1) | WO2018050243A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685181A (zh) * | 2020-12-29 | 2021-04-20 | 成都科来网络技术有限公司 | 一种均衡cpu资源的推送任务调度方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11321126B2 (en) | 2020-08-27 | 2022-05-03 | Ricardo Luis Cayssials | Multiprocessor system for facilitating real-time multitasking processing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080270199A1 (en) * | 2007-04-30 | 2008-10-30 | David Michael Chess | Methods and apparatus for management of heterogeneous workloads |
CN103412792A (zh) * | 2013-07-18 | 2013-11-27 | 成都国科海博计算机系统有限公司 | 一种云计算平台环境下的动态任务调度方法及装置 |
CN103677984A (zh) * | 2012-09-20 | 2014-03-26 | 中国科学院计算技术研究所 | 一种物联网计算任务调度系统及其方法 |
WO2015196409A1 (en) * | 2014-06-26 | 2015-12-30 | Intel Corporation | Intelligent gpu scheduling in a virtualization environment |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013014767A1 (ja) * | 2011-07-27 | 2013-01-31 | 富士通株式会社 | データ処理システム、およびスケジューリング方法 |
-
2016
- 2016-09-16 CN CN201680089343.7A patent/CN109716297A/zh active Pending
- 2016-09-16 WO PCT/EP2016/072015 patent/WO2018050243A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080270199A1 (en) * | 2007-04-30 | 2008-10-30 | David Michael Chess | Methods and apparatus for management of heterogeneous workloads |
CN103677984A (zh) * | 2012-09-20 | 2014-03-26 | 中国科学院计算技术研究所 | 一种物联网计算任务调度系统及其方法 |
CN103412792A (zh) * | 2013-07-18 | 2013-11-27 | 成都国科海博计算机系统有限公司 | 一种云计算平台环境下的动态任务调度方法及装置 |
WO2015196409A1 (en) * | 2014-06-26 | 2015-12-30 | Intel Corporation | Intelligent gpu scheduling in a virtualization environment |
Non-Patent Citations (1)
Title |
---|
李立军、庄衍竖、沈东凯: "基于用户使用频率的Linux系统智能化任务调度机制", 《中国科技信息》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685181A (zh) * | 2020-12-29 | 2021-04-20 | 成都科来网络技术有限公司 | 一种均衡cpu资源的推送任务调度方法及系统 |
CN112685181B (zh) * | 2020-12-29 | 2024-06-04 | 科来网络技术股份有限公司 | 一种均衡cpu资源的推送任务调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2018050243A1 (en) | 2018-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Grandl et al. | Altruistic scheduling in {Multi-Resource} clusters | |
Cardellini et al. | On QoS-aware scheduling of data stream applications over fog computing infrastructures | |
Polo et al. | Resource-aware adaptive scheduling for mapreduce clusters | |
Xu et al. | T-storm: Traffic-aware online scheduling in storm | |
US9772879B2 (en) | System and method for isolating I/O execution via compiler and OS support | |
US11113782B2 (en) | Dynamic kernel slicing for VGPU sharing in serverless computing systems | |
Choudhary et al. | A dynamic optimization algorithm for task scheduling in cloud environment | |
CN103069389B (zh) | 混合计算环境中的高吞吐量计算的方法和系统 | |
US20210105228A1 (en) | Intelligent cloud platform to host resource efficient edge network function | |
EP3594809A1 (en) | Control system for microkernel architecture of industrial server and industrial server comprising the same | |
Kurazumi et al. | Dynamic processing slots scheduling for I/O intensive jobs of Hadoop MapReduce | |
CN106557369A (zh) | 一种多线程的管理方法及系统 | |
Ilyushkin et al. | An experimental performance evaluation of autoscalers for complex workflows | |
Liu et al. | A waterfall model to achieve energy efficient tasks mapping for large scale GPU clusters | |
CN103593192A (zh) | 一种基于slurm调度的算法集成与评测平台及方法 | |
Salimi et al. | Advantages, challenges and optimizations of virtual machine scheduling in cloud computing environments | |
Ying et al. | Optimizing energy, locality and priority in a mapreduce cluster | |
CN109716297A (zh) | 优化针对高激活率的操作系统计时器 | |
Lu et al. | InSTechAH: Cost-effectively autoscaling smart computing hadoop cluster in private cloud | |
CN109716298A (zh) | 用于短周期性任务的有效调度器 | |
CN105045667A (zh) | 一种用于虚拟机vCPU调度的资源池管理方法 | |
Teng et al. | Scheduling real-time workflow on MapReduce-based cloud | |
US9195515B1 (en) | Method and system for process load balancing | |
Ji et al. | Improving multi-job MapReduce scheduling in an opportunistic environment | |
Mohammed et al. | SiL: An approach for adjusting applications to heterogeneous systems under perturbations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190503 |
|
WD01 | Invention patent application deemed withdrawn after publication |