CN105718320A - 一种时钟任务处理方法、装置及设备 - Google Patents
一种时钟任务处理方法、装置及设备 Download PDFInfo
- Publication number
- CN105718320A CN105718320A CN201610032714.XA CN201610032714A CN105718320A CN 105718320 A CN105718320 A CN 105718320A CN 201610032714 A CN201610032714 A CN 201610032714A CN 105718320 A CN105718320 A CN 105718320A
- Authority
- CN
- China
- Prior art keywords
- core
- task
- data core
- clock
- data
- 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.)
- Granted
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- 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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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
-
- 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/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本申请公开了一种时钟任务处理方法、装置及设备,用以解决传统的操作系统中的数据核在处理业务数据时,业务的延时或抖动较严重,影响业务的处理效率的问题。该方法为:操作系统在通过至少一个数据核运行业务进程之前或过程中,关闭所述至少一个数据核的时钟中断,并且通过不会处理业务数据的多个控制核中的至少一个控制核处理所述至少一个数据核的时钟任务,这样,所述至少一个数据核在后续运行所述待处理业务的业务进程时,不会出现时钟中断,因此,该方法减少了业务的抖动,降低了业务的延时,提高了所述操作系统处理效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种时钟任务处理方法、装置及设备。
背景技术
在多核计算机中,通常将多核划分为控制核和数据核两类,控制核用于实现控制、维护、系统管理等功能,而数据核用于运行待处理业务的业务进程,进行业务数据处理。为了实现高速的数据处理,通常让单个业务进程独占单个中央处理器(CentralProcessingUnit,CPU)资源。但是,随着网络数据处理的性能要求越来越高,用户对数据核的单次业务数据处理允许的最高时延也不断下降。然而,在多核计算机运行的操作系统中,每个数据核上的周期性的时钟中断,成为影响数据核的单次处理的时延的主要因素,进而也成为影响操作系统的业务性能及稳定性的主要因素,其中,时钟中断周期通常设置为几毫秒(millisecond,ms)到几十ms之间,目前最常见的为4ms、10ms等。
传统的,为了满足高速的网络数据业务处理需求,消除操作系统中时钟中断对业务性能的影响,业界可以采用减少中断(tickless)机制,在操作系统中,让指定的数据核进入近似完全无中断NO_HZ_FULL模式,即在该数据核只有一个进程需要运行或没有进程需要运行时,延长时钟中断周期。
但是,采用这种机制,当数据核正在运行业务进程时,也需要确保在1秒(second,s)内至少有一次时钟中断到来,即时钟中断周期最大为1s,时钟中断并没有完全关闭,若时钟中断到来时,该数据核正在进行业务数据处理,将会导致业务出现严重的延时和抖动。
发明内容
本发明提供一种时钟任务处理方法、装置及系统,用以解决传统的操作系统中的数据核在处理业务数据时,业务的延时或者抖动较严重,影响业务的处理效率的问题。
本发明提供的具体技术方案如下:
一方面,本申请的实施例提供一种时钟任务的处理方法,其中该方法可以用于多核计算机的操作系统,且该操作系统运行于包括多个数据核和多个控制核的物理主机,该方法包括:
所述操作系统在通过所述多个数据核中的至少一个数据核运行待处理业务的业务进程之前或过程中,关闭运行所述业务进程的所述至少一个数据核的时钟中断,这样,所述方法可以保证所述至少一个数据核在后续运行所述业务进程时,不会出现时钟中断,减少了业务的抖动,降低了业务的延时,提高了所述操作系统的处理效率,另外,所述操作系统通过所述多个控制核中的至少一个控制核处理业务进程提交的时钟任务,如所述业务进程提交的至少一个第一时钟任务,可以保证所述操作系统的业务功能正常运行,使时钟任务的处理不会出现延迟和阻塞的情况。
在一个可能的设计中,所述操作系统对所述至少一个数据核进行业务配置,即将所述待处理业务的业务进程与所述至少一个数据核进行绑定,这样,保证所述业务进程仅在所述至少一个数据核上运行,避免所述业务进程发生迁移。
在一个可能的设计中,所述操作系统在通过所述至少一个数据核在运行所述业务进程中,所述业务进程每新提交一个第一时钟任务,所述操作系统将新提交的第一时钟任务提交至设定的任务队列中,所述设定的任务队列根据新提交的第一时钟任务的任务类型不同而不同,例如,当所述第一时钟任务为延时任务时,所述设定的任务队列为所述至少一个控制核的任务队列;当所述第一时钟任务为RCUcallback任务时,所述设定的任务队列为所述操作系统中公共的孤儿队列;所述操作系统通过所述至少一个控制核处理在所述设定的任务队列中的至少一个第一时钟任务。由于运行所述业务进程的所述至少一个数据核的时钟中断已关闭,因此,后续所述业务进程运行过程中新提交的第一时钟任务通过控制核处理,可以保证所述操作系统的业务功能正常运行,使时钟任务的处理不会出现延迟和阻塞的情况。
在一个可能的设计中,所述操作系统通过控制接口接收用户或者其他设备发出的时钟中断控制指令(关闭时钟中断指令),并根据所述关闭时钟中断指令,将所述至少一个数据核的时钟中断关闭;所述操作系统在通过所述至少一个数据核运行完所述至少一个业务进程后,通过所述控制接口,接收所述用户或所述其他设备发出的时钟中断控制指令(恢复时钟中断指令),并根据所述恢复时钟中断指令,将所述至少一个数据核的时钟中断恢复。在一个可能的设计中,在所述至少一个数据核中存在至少一个第二时钟任务的情况下,在所述操作系统在关闭所述至少一个数据核的时钟中断之后,所述操作系统判断所述至少一个第二时钟任务的任务类型,判定与上述第一时钟任务的任务类型相同,还需要将所述至少一个数据核中的所述至少一个第二时钟任务迁移到所述设定的任务队列中,然后也通过所述至少一个控制核处理迁移到所述设定任务队列中的所述至少一个第二时钟任务。这样,所述操作系统即可保证在所述至少一个数据核中存在至少一个第二时钟任务的情况下,所述操作系统依然通过将第二时钟任务迁移的方式处理,使时钟任务的处理不会出现延迟和阻塞的情况。
在一个可能的设计中,所述第一时钟任务为延时任务,所述设定的任务队列为所述至少一个控制核的任务队列,那么,所述操作系统在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时间中断内,通过所述至少一个控制核处理所述至少一个控制核的任务队列中的与所述时钟中断对应的第一时钟任务。
在一个可能的设计中,所述第一时钟任务为RCUcallback任务,所述设定的任务队列为所述操作系统的孤儿队列,那么所述操作系统在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,所述操作系统都在通过所述至少一个控制核处理完所述至少一个控制核内部的RCUcallback任务后,处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务。
在一个可能的设计中,上述提到的所述操作系统通过所述至少一个控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务时,所述操作系统首先接收所述至少一个控制核中的一个控制核上报的状态信息,所述状态信息为与所述时钟中断对应的第一时钟任务的原目标数据核已经历静止状态;所述操作系统根据接收的所述状态信息,通过上报所述状态信息的所述控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务;
其中,所述原目标数据核为,假设在所述至少一个数据核的时钟中断未关闭的情况下,所述第一时钟任务应提交至的数据核;所述状态信息为所述控制核确定所述原目标数据核在所述时钟中断的时刻,未处于宽限期的指定读临界区,以及确定所述原目标数据核已经历静止状态的情况下发送的;所述指定读临界区的起始时刻位于所述宽限期的开启时刻之前,且所述指定读临界区的结束时刻位于所述宽限期内或所述宽限期的结束时刻之外;
宽限期是指所有核当前正执行的RCU读操作的临界部分完成的时间;读临界区表示一个进程正在读取一个公用的资源的时间,而在该时间内,其他进程需要等待,不能读取该公用的资源;所述公共的资源为一次仅允许一个进程使用的共享资源;静止状态为一个核的执行状态,在该核处于静止状态的期间,核上执行的任务不会应用任何被RCU保护的数据,只有该核经历静止状态,之前被RCU保护的数据才能被释放。
在一个可能的设计中,所述操作系统检测所述待处理业务的数据包的数目;并分别比较所述数据包的数目与第一阈值和第二阈值的大小;在所述数据包的数目大于第一阈值时,所述操作系统将所述多个控制核中的一个控制核切换为数据核,以便于切换后的数据核运行所述进程;或者添加所述多个数据核中除所述至少一个数据核以外的一个数据核,以便于添加的数据核运行所述业务进程;
在所述数据包的数目小于第二阈值时,所述操作系统将所述至少一个数据核中的一个数据核切换为控制核,其中,所述至少一个数据核中数据核的数目大于或等于2;
其中,所述第一阈值大于所述第二阈值。
通过上述方式,所述操作系统可以根据业务需求以及所述至少一个数据核的负载情况,随时调整运行所述业务进程的数据核和所述多个控制核的数量,提高了所述操作系统的扩展性,提高了核的资源利用率。
在一个可能的设计中,所述操作系统在确定需要切换进程ASID组,对所述物理主机中的所述多个数据核和所述多个控制核设置刷新标记;所述刷新标记表示所述操作系统切换进程ASID组,以便所述多个数据核和所述多个控制核中的至少一个核根据所述刷新标记进行进程切换过程中的后备转换缓存TLB刷新;后续任意一个数据核或控制核在进行进程切换时,会判断自身是否存在该刷新标记,若存在,则自行进行TLB刷新,其中,所述至少一个数据核中的任意一个数据核在进行TLB刷新时,所述操作系统已经恢复了之前被关闭时钟中断的数据核的时钟中断。这样,就避免了数据核在处理业务数据时,出现IPI中断,进一步减少了业务的抖动,以及降低了业务的延时,提高了所述操作系统的处理效率。
在一个可能的设计中,在所述至少一个数据核还运行有其他进程的情况下,在所述操作系统通过所述至少一个数据核运行所述业务进程,关闭所述至少一个数据核的时钟中断之前,所述操作系统需要将所述至少一个数据核中的所述其他进程迁移至所述多个控制核,或将所述至少一个数据核中的所述其他进程迁移至所述多个数据核中除所述至少一个数据核以外的数据核中。这样,在所述至少一个数据核在运行所述业务进程之前,将所述至少一个数据核中的进程清空,后续直接运行所述待处理业务的业务进程,提高所述至少一个数据核处理所述待处理业务的效率,同时保证了所述操作系统的安全性。
另一方面,本申请的实施例提供一种时钟任务处理装置,所述装置用于包括多个数据核和多个控制核的物理主机,该装置具有实现上述方法设计中的操作系统行为的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。
在一个可能的设计中,所述装置的结构中包括第一处理单元、控制单元和第二处理单元,其中,第一处理单元,用于通过所述多个数据核中的至少一个数据核运行待处理业务的至少一个业务进程;
控制单元,用于关闭所述至少一个数据核的时钟中断;
第二处理单元,用于通过所述多个控制核中的至少一个控制核处理所述至少一个业务进程提交的至少一个第一时钟任务,所述至少一个第一时钟任务为依赖时钟中断完成的任务,所述至少一个第一时钟任务是关闭所述时钟中断后提交的。
又一方面,本申请的实施例提供一种时钟任务处理设备,所述设备包括多核处理器,存储器,时钟源和通信总线,所述多核处理器、时钟源以及存储器通过所述通信总线连接,所述多核处理器包括多个数据核和多个控制核,
所述时钟源用于产生时钟中断,并将时钟中断同步至所述多核处理器中的核,所述多核处理器用于调用所述存储器中的指令,执行上述方法设计中的时钟任务处理方法。
采用本发明提供的时钟任务处理方法,所述操作系统在通过所述多个数据核中的至少一个数据核运行待处理业务的业务进程之前或过程中,关闭运行所述业务进程的所述至少一个数据核的时钟中断,这样,所述方法可以保证所述至少一个数据核在后续运行所述业务进程时,不会出现时钟中断,因此,减少了业务的抖动,降低了业务的延时,提高了所述操作系统的处理效率,另外,所述操作系统通过所述多个控制核中的至少一个控制核处理业务进程提交的时钟任务,如所述业务进程提交的至少一个第一时钟任务,可以保证所述操作系统的业务功能正常运行,使时钟任务的处理不会出现延迟和阻塞的情况。
附图说明
图1为本发明实施例提供的一种多核计算机的结构示意图;
图2为本发明实施例提供的一种时钟任务处理方法的流程图;
图3为本发明实施例提供的一种控制核上报状态信息的时机示意图;
图4为本发明实施例提供的一种业务处理实例流程图;
图5为本发明实施例提供的一种时钟任务处理装置的结构示意图;
图6为本发明实施例提供的一种时钟任务处理装置实例图;
图7为本发明实施例提供的另一种时钟任务处理装置实例图;
图8为本发明实施例提供的再一种时钟任务处理装置实例图;
图9为本发明实施例提供的再一种时钟任务处理装置实例图;
图10为本发明实施例提供的再一种时钟任务处理装置实例图;
图11为本发明实施例提供的再一种时钟任务处理装置实例图;
图12为本发明实施例提供的一种时钟任务处理设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种时钟任务处理方法、装置及设备,用以解决传统的操作系统中的数据核在处理业务数据时,业务的延时或者抖动较严重,影响业务的处理效率的问题。其中,本发明所述方法和装置基于同一发明构思,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
“多个”是指两个或两个以上。
“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本发明实施例中,多核计算机的操作系统通过多个数据核中的至少一个数据核运行待处理业务的至少一个业务进程,并关闭所述至少一个数据核的时钟中断;再通过多个控制核中的至少一个控制核处理所述至少一个业务进程提交的时钟任务。其中,所述操作系统开始通过所述至少一个数据核运行所述至少一个业务进程和关闭所述至少一个数据核的时钟中断两个步骤之间不存在先后顺序,这样,由于所述操作系统在通过所述至少一个数据核运行所述至少一个业务进程之前或过程中,关闭了所述至少一个数据核的时钟中断,因此,所述至少一个数据核在后续运行所述至少一个业务进程时,不会出现时钟中断,减少了业务的抖动,降低了业务的延时,提高了所述操作系统的处理效率,并且由于所述操作系统通过不会处理业务数据的控制核处理所述至少一个业务进程提交的时钟任务,可以使时钟任务的处理不会出现延迟和阻塞的情况,保证所述操作系统的业务功能正常运行。
本发明实施例提供的时钟任务处理方法,适用于多核计算机的操作系统,所述多核计算机的硬件层中包括多个核,所述多核计算机的结构如图1所示,其中,所述多个核可以分为两类,数据核和控制核,所述数据核用于处理待处理业务的业务数据,构成所述多核操作系统的数据面;所述控制核用于实现控制、维护和系统管理等功能,构成所述多核操作系统的控制面。
在有待处理业务需要所述多核计算机的操作系统处理时,所述操作系统通过多个数据核中的至少一个数据核运行该待处理业务的至少一个业务进程,并关闭所述至少一个数据核的时钟中断,然后通过多个控制核中的部分或全部控制核处理所述至少一个业务进程提交的至少一个第一时钟任务,即将所述至少一个第一时钟任务提交到设定的任务队列中,以及将所述至少一个数据核中的至少一个第二时钟任务迁移到所述设定的任务队列中,所述第一时钟任务和所述第二时钟任务可以为延时任务、读拷贝修改锁(Read-CopyUpdate,RCU)回调(callback)任务等依赖时钟中断才能完成的任务。所述设定的任务队列根据时钟任务的任务类型不同而具体设定。
其中,所述数据核和所述控制核的数目可以通过用户配置,或者所述操作系统设置,且在所述操作系统通过所述至少一个数据核运行所述待处理业务的所述至少一个业务进程中,所述操作系统可以检测所述待处理业务的数据包的数目,根据所述数据包的数目,调整数据核和控制核的数目,提高核的资源利用率和所述操作系统的扩展性。
采用所述如图1所示的多核计算机处理业务,由于所述操作系统可以在通过所述至少一个数据核运行所述至少一个业务进程之前或过程中,关闭运行所述至少一个业务进程的数据核的时钟中断,因此,所述至少一个数据核在后续运行所述至少一个业务进程时,不会出现时钟中断,减少了业务的抖动,降低了业务的延时,提高了所述操作系统的处理效率,并且由于所述操作系统通过不会处理业务数据的控制核处理所述至少一个业务进程提交的时钟任务,可以使时钟任务的处理不会出现延迟和阻塞的情况,保证所述操作系统的业务功能正常运行。
参阅图2所示,本发明实施例提供的一种时钟任务处理方法,应用于如图1所示的多核计算机的操作系统,该操作系统运行于包括多个控制核和多个数据核的物理主机。其中,所述多个控制核和所述多个数据核的数目(所述多个数据核和所述多个控制核的比例)可以通过用户设置,或者所述操作系统预设,该方法的处理流程包括:
步骤201:多核计算机的操作系统通过多个数据核中的至少一个数据核运行待运行业务的至少一个业务进程。
所述操作系统可以控制运行所述待运行业务的所述至少一个业务进程的数据核的数目,可选的,可以通过所述多个数据核中的所有数据核来运行所述至少一个业务进程,也可以通过所述多个数据核中的部分数据核来运行所述至少一个业务进程,具体的,运行所述至少一个业务进程的数据核的数目可以通过所述操作系统预估所述业务进程的数据包的数目来确定,以及结合所述多个数据核中每个数据核的空闲资源和负载情况等,设定具体由哪个数据核运行所述至少一个业务进程。
可选的,在所述至少一个数据核还运行有其他进程的情况下,在所述操作系统通过所述至少一个数据核运行所述至少一个业务进程,且关闭所述至少一个数据核的时钟中断之前,所述方法还包括:
所述操作系统将所述至少一个数据核中的所述其他进程迁移至所述多个控制核,或将所述至少一个数据核中的所述其他进程迁移至所述多个数据核中除所述至少一个数据核以外的数据核中。
传统的,每个数据核均可以运行至少一个进程,因此,在所述操作系统确定存在待处理业务的情况下,所述至少一个数据核中可能会有其他进程,例如服务线程、后台线程,以及处理所述操作系统工作的进程等,这些进程中某些进程有可能在所述至少一个数据核的时钟中断关闭后,运行异常,并且所述至少一个数据核同时运行其他进程和待处理业务的业务进程,也降低了所述至少一个数据核的业务处理效率,因此,将所述至少一个数据核中的所有其他进程迁移至所述多个控制核,或所述多个数据核中除所述至少一个数据核以外的数据核中。这样,可以将所述至少一个数据核中的进程清空,直接运行所述待处理业务的至少一个业务进程,提高所述至少一个数据核处理所述待处理业务的效率,同时保证了所述操作系统的安全性。
其中,所述操作系统在将所述至少一个数据核中的所有其他进程迁移至所述控制核,或除所述至少一个数据核以外的数据核中时,可以通过控制分组化(Controlgroup,Cgroup)CPU配置(cpuset)子系统实现,或者通过控制内核参数(isolcpus)实现。
在步骤201中,所述操作系统通过所述至少一个数据核运行所述至少一个业务进程,需要所述操作系统对所述至少一个数据核进行业务配置,即将所述待处理业务的所述至少一个业务进程与所述至少一个数据核进行绑定,这样,所述待处理业务的所述至少一个业务进程仅运行在所述至少一个数据核中,避免所述待处理业务的业务进程发生迁移。
步骤202:所述操作系统关闭所述至少一个数据核的时钟中断。
步骤202与步骤201之间不存在先后顺序,即所述操作系统可以先开始通过所述至少一个数据核运行所述业务进程,并在所述至少一个数据核运行所述至少一个业务进程的过程中,关闭所述至少一个数据核的时钟中断;或者
所述操作系统先关闭所述至少一个数据核的时钟中断,再开始通过所述至少一个数据核运行所述至少一个业务进程。
这样,由于所述操作系统在所述至少一个数据核在运行所述至少一个业务进程之前或过程中,关闭所述至少一个数据核的时钟中断,因此,所述至少一个数据核在后续运行所述至少一个业务进程时,不会出现时钟中断,减少了业务的抖动,降低了业务的延时,提高了所述操作系统的处理效率。由于在第一种场景中,所述至少一个数据核开始运行所述业务进程到关闭时钟中断的过程中,还会出现较少的时钟中断,因此,在第二种场景中,所述操作系统可以最大限度降低业务的时延,以及避免业务的抖动,提高了所述操作系统的业务性能、稳定性以及实时性。
在步骤202中,所述操作系统可以通过控制接口,接收用户或者其他设备发出的时钟中断控制指令(即关闭时钟中断指令),并根据所述关闭时钟中断指令,将所述至少一个数据核的时钟中断关闭;所述操作系统还可以通过自身设置,在所述操作系统通过所述至少一个数据核运行所述至少一个业务进程的之前或过程中(例如在数据核中有其他进程时,将其他进程迁移后),即将所述至少一个数据核的时钟中断关闭;
相应的,所述操作系统在将所述至少一个数据核的时钟中断关闭,并通过所述至少一个数据核运行完所述至少一个业务进程后,所述操作系统也可以通过所述控制接口,接收所述用户或者所述其他设备发出的时钟中断控制指令(即恢复时钟中断指令),并根据所述恢复时钟中断指令,将所述至少一个数据核的时钟中断恢复;所述操作系统还可以通过自身设置,在所述操作系统确定所述待处理业务处理完成后,即将所述至少一个数据核的时钟中断进行恢复。
在所述至少一个数据核的时钟中断关闭后,所述至少一个数据核会屏蔽所有时钟中断(时钟源事件)。
步骤203:所述操作系统通过所述多个控制核中的至少一个控制核处理所述至少一个业务进程提交的至少一个第一时钟任务,所述至少一个第一时钟任务为依赖时钟中断完成的任务,所述至少一个第一时钟任务是关闭所述时钟中断后提交的。
具体的,所述操作系统通过所述至少一个控制核处理所述至少一个业务进程提交的至少一个第一时钟任务,包括:
所述操作系统将所述至少一个业务进程提交的所述至少一个第一时钟任务提交到设定的任务队列中,所述至少一个第一时钟任务是所述至少一个数据核在运行所述至少一个业务进程中获得的;
所述操作系统通过所述至少一个控制核处理所述设定的任务队列中的至少一个第一时钟任务。
其中,其中所述设定的任务队列为除所述至少一个数据核的任务队列以外的其他任务队列,具体可以根据时钟任务的任务类型不同而具体设定。例如,所述第一时钟任务为延时任务,所述设定的任务队列为所述多个控制核的任务队列;所述第一时钟任务为RCUcallback任务,所述设定的任务队列为所述操作系统中公共的孤儿队列。
虽然所述至少一个数据核的时钟中断已经关闭,然而,在所述至少一个数据核在运行所述至少一个业务进程中,每个数据核运行的业务进程依然会不断提交新的时钟任务,在所述操作系统判定新提交的一个时钟任务的原目标数据核已经关闭时钟中断时,那么直接将所述新提交的时钟任务提交到所述设定的任务队列,而不是提交到所述数据核的任务队列中。
可选的,在所述至少一个数据核中存在至少一个第二时钟任务的情况下,在所述操作系统在关闭所述至少一个数据核的时钟中断之后,还包括:
所述操作系统将所述至少一个数据核中的所述至少一个第二时钟任务迁移到所述设定的任务队列中,其中,所述第二时钟任务与所述第一时钟任务为相同的任务类型;
所述操作系统通过所述至少一个控制核处理迁移到所述设定任务队列中的所述至少一个第二时钟任务。
可选的,所述操作系统在将所述至少一个数据核的时钟中断关闭时,所述至少一个数据核中可能由于运行其他进程等导致内部的任务队列中已经有至少一个第二时钟任务等待处理,其中,所述第二时钟任务也可以为延时任务、RCUcallback任务等必须依赖时钟中断完成的任务。由于所述至少一个数据核的时钟中断已经关闭,因此,各自内部任务队列中的第二时钟任务无法通过自身完成,需要通过所述至少一个控制核进行处理,这样,才能使时钟任务的处理不会出现延迟和阻塞的情况,保证所述操作系统的业务功能正常运行。
其中,具体的,所述操作系统将所述至少一个数据核中的第二时钟任务迁移到设定的任务队列中,包括:
所述操作系统遍历所述至少一个数据核的时钟任务队列,若存在第二时钟任务,则将存在的第二时钟任务迁移至设定的任务队列中,例如,若所述至少一个数据核的延时任务队列中存在延时任务,则将该延时任务迁移至所述至少一个控制核的延时任务队列中;若所述至少一个数据核的RCUcallback任务队列中存在RCUcallback任务,则将该RCUcallback任务迁移至所述操作系统中公共的孤儿队列中。
基于以上论述,所述操作系统通过所述至少一个控制核处理所述设定的任务队列中的所述第一时钟任务,以及所述第二时钟任务。所述多个控制核中的所述至少一个控制核不仅处理所述操作系统中的控制、维护、系统管理等进程,还处理自身的以及所述至少一个数据核的时钟任务,在处理自身的以及所述至少一个数据核的时钟任务时,是按照所有时钟任务的时间要求的顺序进行处理的。可选的,所述时钟任务可以为延时任务,和/或,RCUcallback任务等必须依赖时钟中断完成的任务。
在一种情况下,所述第一时钟任务为延时任务,所述设定的任务队列为所述至少一个控制核的任务队列时,所述操作系统通过所述至少一个控制核处理所述设定的任务队列中的至少一个第一时钟任务,包括:
在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,所述操作系统都通过所述至少一个控制核处理所述至少一个控制核的任务队列中的与所述时钟中断对应的第一时钟任务。
在所述至少一个控制核中每个控制核的任务队列中,延时任务是根据延时任务的时间要求排列的,因此任意一个控制核的任务队列中的延时任务会在与其时间要求对应的时钟中断内被该控制核处理。例如,所述延时任务为1分钟后进行系统日志收集。
在另一种情况下,所述第一时钟任务为RCUcallback任务,所述设定的任务队列为所述操作系统中公共的孤儿队列时,所述操作系统通过所述至少一个控制核处理所述设定的任务队列中的至少一个第一时钟任务,包括:
在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,所述操作系统都通过所述至少一个控制核处理完所述至少一个控制核内部的RCUcallback任务后,处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务。
具体的,所述操作系统通过所述至少一个控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务,包括:
所述操作系统根据所述至少一个控制核中的一个控制核上报的状态信息,通过所述控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务,所述状态信息指示与所述时钟中断对应的第一时钟任务的原目标数据核已经历静止状态;
其中,所述状态信息为所述控制核确定所述原目标数据核在所述时钟中断的时刻,未处于宽限期的指定读临界区,以及确定所述原目标数据核已经历静止状态的情况下发送的,所述指定读临界区的起始时刻位于所述宽限期的开启时刻之前,且所述指定读临界区的结束时刻位于所述宽限期内或所述宽限期的结束时刻之外。
其中,宽限期是指所有核当前正执行的RCU读操作的临界部分完成的时间;读临界区表示一个进程正在读取一个公用的资源的时间,而在该时间内,其他进程需要等待,不能读取该公用的资源;所述公共的资源为一次仅允许一个进程使用的共享资源;静止状态为一个核的执行状态,在该核处于静止状态的期间,核上执行的任务不会应用任何被RCU保护的数据,只有该核经历静止状态,之前被RCU保护的数据才能被释放。
所述至少一个控制核在处理所述设定的任务队列中的所述至少一个第二时钟任务的过程与处理所述至少一个第一时钟任务相同,具体不再赘述。其中,所述至少一个控制核在处理所述孤儿队列中的任意一个第二时钟任务之前,也需要向所述操作系统上报状态信息通知所述第二时钟任务的原目标数据核已经历静止状态,具体步骤与上述方式相同,在此不再赘述。
与所述延时任务类似,任意一个RCUcallback任务也会在与其时间要求对应的时钟中断内被控制核处理。例如,所述RCUcallback任务为当所有用户使用数据包A结束时,释放数据包A占用的内存空间。
传统的,操作系统中的数据核或控制核在处理RCUcallback任务之前,需要向所述操作系统上报自身已经历静止状态。在本发明实施例中,由于需要控制核处理数据核的RCUcallback任务,因此,所述控制核在处理所述数据核的RCUcallback任务之前,需要检查并上报所述数据核已经历静止状态。
如图3所示的控制核上报状态信息的时机示意图,所述指定读临界区为图中读临界区1,在所述数据核处理读临界区1时,所述数据核处于静止状态,因此,所述控制核在时钟中断(tick1)时无法上报状态信息,而在所述数据核退出所述读临界区1后的tick2以及tick3时,所述控制核均可以上报状态信息,通知操作系统所述数据核已经历静止状态。
综上所述,在所述操作系统将所述至少一个数据核的时钟中断关闭之前,所述至少一个数据核和所述至少一个控制核各自处理自身的时钟任务;当所述操作系统关闭所述至少一个数据核的时钟中断后,所述操作系统将所述至少一个数据核中的所述至少一个第二时钟任务迁移出所述至少一个数据核的任务队列中,迁移至设定的任务队列中,并且后续所述至少一个数据核在运行所述所述至少一个业务进程中获得的至少一个第一时钟任务也直接提交至所述设定的任务队列中,这样,所述至少一个控制核在与每个第一时钟任务或第二时钟任务的时间要求对应的时钟中断内,处理对应的第一时钟任务或第二时钟任务,而所述至少一个数据核就可以进入高速实时业务处理模式,仅运行所述待处理业务的所述至少一个业务进程。
其中,在本发明实施例中,运行所述至少一个业务进程的所述至少一个数据核中每个数据核与处理该数据核的时钟任务的控制核之间可以设置对应关系,也可以无对应关系;
当运行所述至少一个业务进程的一个数据核与一个控制核之间设置了对应关系时,该数据核的每个时钟任务均由该控制核处理;
当该数据核与控制核之间未设置对应关系时,所述数据核的时钟任务不需要由特定的控制核处理,而具体由哪个控制核处理,可以由任意一项或组合决定:所述操作系统的配置、每个控制核的任务队列中的任务量、每个控制核的负载情况和每个控制核的空闲资源等,对此本发明对此不做限定。例如,如图4所示的业务处理实例流程图中,控制核0处理从数据核0迁移出的第二时钟任务a和新提交的针对数据核0的第一时钟任务c,而控制核1处理从数据核1迁移出的第二时钟任务b和新提交的针对数据核1的第二时钟任务d。
可选的,本发明实施例提供的时钟任务处理方法,还包括:
所述操作系统检测所述待处理业务的数据包的数目;
在所述数据包的数目大于第一阈值时,所述操作系统将所述多个控制核中的一个控制核切换为数据核,以便于切换后的数据核运行所述至少一个业务进程;或者添加所述多个数据核中除所述至少一个数据核以外的一个数据核,以便于添加的的数据核运行所述至少一个业务进程;
在所述数据包的数目小于第二阈值时,所述操作系统将所述至少一个数据核中的一个数据核切换为控制核,其中所述至少一个数据核中数据核的数目大于或等于2;
其中,所述第一阈值大于所述第二阈值。
通过上述方法,所述操作系统可以根据业务需求以及所述至少一个数据核的负载情况,随时调整运行所述业务进程的数据核和所述多个控制核的数量,提高了所述操作系统的扩展性,提高了核的资源利用率。
可选的,所述方法还包括:
所述操作系统对所述多个数据核和所述多个控制核设置刷新标记,所述刷新标记标识所述操作系统切换进程地址空间标识(AddressSpaceIdentifier,ASID)组,以便所述多个数据核或所述多个控制核根据所述刷新标记进行切换中的后备转换缓存(Translationlookasidebuffer,TLB)刷新。
传统的,当操作系统创建的进程数达到256的整数倍时,将触发进程的ASID组的切换,所述操作系统会向所述操作系统中的所有核发送处理器之间的中断(Inter-ProcessorInterrupt,IPI)中断,用于通知每个核进行TLB刷新,因此若数据核正在处理业务数据,也会出现业务延时和抖动。
采用上述方式,当所述操作系统进程ASID组触发切换时,对所述多个数据核和所述多个控制核设置刷新标记。这样,当任意一个数据核或控制核在进行进程切换时,会判断自身是否存在该刷新标记,若存在,则自行进行TLB刷新,其中,所述至少一个数据核中的任意一个数据核在进行TLB刷新时,所述操作系统已经恢复了之前被关闭时钟中断的数据核的时钟中断。这样,就避免了数据核在处理业务数据时,出现IPI中断,进一步减少了业务的抖动,以及降低了业务的延时,提高了所述操作系统的处理效率。
采用本发明上述实施例中的时钟任务处理方法,多核计算机的操作系统通过多个数据核中的至少一个数据核运行待处理业务的至少一个业务进程,并关闭所述至少一个数据核的时钟中断;再通过多个控制核中的至少一个控制核处理所述至少一个业务进程提交的时钟任务。其中,所述操作系统开始通过所述至少一个数据核运行所述至少一个业务进程和关闭所述至少一个数据核的时钟中断两个步骤之间不存在先后顺序,这样,由于所述操作系统在通过所述至少一个数据核运行所述至少一个业务进程之前或过程中,关闭了所述至少一个数据核的时钟中断,因此,所述至少一个数据核在后续运行所述至少一个业务进程时,不会出现时钟中断,减少了业务的抖动,降低了业务的延时,提高了所述操作系统的处理效率,并且由于所述操作系统通过不会处理业务数据的控制核处理所述至少一个业务进程提交的时钟任务,可以使时钟任务的处理不会出现延迟和阻塞的情况,保证所述操作系统的业务功能正常运行。
基于以上实施例,本发明还提供了一种时钟任务处理装置,其中,所述装置用于包括多个数据核和多个控制核的物理主机,参阅图5所示,所述装置500中包括:第一处理单元501、控制单元502和第二处理单元503,其中,
第一处理单元501,用于通过所述多个数据核中的至少一个数据核运行待处理业务的至少一个业务进程;
控制单元502,用于关闭所述至少一个数据核的时钟中断;如图6所示的一种实现方式中,在所述控制单元502关闭所述至少一个数据核的时钟中断后,所述至少一个数据核中运行所述业务进程,并且屏蔽时钟源事件(时钟中断);
第二处理单元503,用于通过所述多个控制核中的至少一个控制核处理所述至少一个业务进程提交的至少一个第一时钟任务,所述至少一个第一时钟任务为依赖时钟中断完成的任务,所述至少一个第一时钟任务是关闭所述时钟中断后提交的。
可选的,所述第二处理单元503,具体用于:
将所述至少一个业务进程提交的所述至少一个第一时钟任务提交到设定任务队列中,所述至少一个第一时钟任务是所述至少一个数据核在运行所述至少一个业务进程中获得的;
通过所述至少一个控制核处理所述设定的任务队列中的所述至少一个第一时钟任务。
可选的,所述装置500还包括:
第一迁移单元,用于在所述控制单元502关闭所述至少一个数据核的时钟中断之后,将所述至少一个数据核中的至少一个第二时钟任务迁移到设定的任务队列中,其中,所述第二时钟任务与所述第一时钟任务为相同的任务类型;
所述第二处理单元503,还用于:
通过所述至少一个控制核处理迁移到所述设定的任务队列中的所述至少一个第二时钟任务。
在一种实现方式中,所述第一迁移单元可以由图7所示的时钟任务迁移模块来实现,而所述至少一个控制核处理迁移到设定的任务队列中的所述第二时钟任务的功能,由图中的时钟任务处理模块来实现,需要说明的是,所述至少一个控制核中每个控制核内部均设置有一个时钟任务处理模块,图7为了简洁清楚,将所述至少一个控制核中所有控制核的时钟任务处理功能集成到所述时钟任务处理模块,图7仅为示意性的示出将所述至少一个数据核中的第二时钟任务迁移,并通过所述至少一个控制核处理。
在一种实现方式中,当所述至少一个数据核中的第二时钟任务为延时任务时,如图8所示,所述时钟迁移模块将所述至少一个数据核中的延时任务a和延时任务b,迁移至所述多个控制核中的任务队列中,并通过所述至少一个控制核中的时钟任务处理模块处理各自任务队列中的时钟任务,为了简洁清楚,将所述至少一个控制核中每个控制核的时钟任务处理模块隐去。
在一种实现方式中,当所述至少一个数据核中的第二时钟任务为RCUcallback任务时,如图9所示,所述时钟迁移模块将所述至少一个数据核中的RCUcallback任务a和RCUcallback任务b,迁移至所述操作系统中公共的孤儿队列,并通过所述至少一个控制核中的时钟任务处理模块处理所述孤儿队列中的时钟任务。
可选的,所述第一时钟任务为延时任务,所述设定的任务队列为所述至少一个控制核的任务队列;
所述第二处理单元503,在通过所述至少一个控制核处理所述设定的任务队列中的至少一个第一时钟任务时,具体用于:
在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,都通过所述至少一个控制核处理所述至少一个控制核的任务队列中与所述时钟中断对应的第一时钟任务。
可选的,所述第一时钟任务为读拷贝修改锁RCU回调callback任务,所述设定的任务队列为所述装置500中公共的孤儿队列;
所述第二处理单元503,在通过所述至少一个多个控制核处理所述设定的任务队列中的至少一个第一时钟任务时,具体用于:
在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,都在通过所述至少一个控制核处理完所述至少一个控制核内部的RCUcallback任务后,处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务。
可选的,所述第二处理单元503,在通过所述至少一个控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务时,具体用于:
根据所述至少一个控制核中的一个控制核上报的状态信息,通过所述控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务,所述状态信息指示与所述时钟中断对应的第一时钟任务的原目标数据核已经历静止状态;
其中,所述状态信息为所述控制核确定所述原目标数据核在与所述时钟中断的时刻,未处于宽限期的指定读临界区,以及确定所述原目标数据核已经历静止状态的情况下发送的,所述指定读临界区的起始时刻位于所述宽限期的开启时刻之前,且所述指定读临界区的结束时刻位于所述宽限期内或所述宽限期的结束时刻之外。
可选的,所述装置500还包括检测单元和调整单元,
所述检测单元,用于检测所述待处理业务的数据包的数目;
所述调整单元,用于在所述数据包的数目大于第一阈值时,将所述多个控制核中的一个控制核切换为数据核,以便于切换后的数据核运行所述至少一个业务进程,如图10所示;或者添加所述多个数据核中除所述至少一个数据核以外的一个数据核,以便于切换后的数据核运行所述至少一个业务进程;
在所述数据包的数目小于第二阈值时,将所述至少一个数据核中的一个数据核切换为控制核,如图10所示,其中,所述至少一个数据核中数据核的数目大于或等于2;
其中,所述第一阈值大于所述第二阈值。
可选的,所述装置500还包括:
标记单元,用于对所述多个数据核和所述多个控制核设置刷新标记,所述刷新标记表示所述装置500切换进程地址空间标识ASID组,以便所述多个数据核或所述多个控制核中的至少一个核根据所述刷新标记进行进程切换中的后备转换缓存TLB刷新。如图11所示,所述多个控制核中任一个控制核确定切换进程ASID组,所述标记单元对所述装置500中的每个核设置刷新标记,这样,每个核各自在进程切换中,会检查自身自否存在所述刷新标记,确定存在时,则进行TLB刷新,并在TLB刷新后,删除自身的所述刷新标记。
可选的,所述装置500还包括:
第二迁移单元,用于在所述至少一个数据核还运行有其他进程的情况下,在所述第一处理单元501通过所述至少一个数据核运行所述至少一个业务进程,所述控制单元502关闭所述至少一个数据核的时钟中断之前,将所述至少一个数据核中的所述其他进程迁移至所述多个控制核,或将所述至少一个数据核中的其他进程迁移至所述多个数据核中除所述至少一个数据核以外的数据核中。
采用本发明上述实施例中的时钟任务处理装置,所述装置通过多个数据核中的至少一个数据核运行待处理业务的至少一个业务进程,并关闭所述至少一个数据核的时钟中断;再通过多个控制核中的至少一个控制核处理所述至少一个业务进程提交的时钟任务。其中,所述装置开始通过所述至少一个数据核运行所述至少一个业务进程和关闭所述至少一个数据核的时钟中断两个步骤之间不存在先后顺序,这样,由于所述装置在通过所述至少一个数据核运行所述至少一个业务进程之前或过程中,关闭了所述至少一个数据核的时钟中断,因此,所述至少一个数据核在后续运行所述至少一个业务进程时,不会出现时钟中断,减少了业务的抖动,降低了业务的延时,提高了所述装置的处理效率,并且由于所述装置通过不会处理业务数据的控制核处理所述至少一个业务进程提交的时钟任务,可以使时钟任务的处理不会出现延迟和阻塞的情况,保证所述装置的业务功能正常运行。
需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,第一处理单元和第二处理单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
基于以上实施例,本发明还提供了一种时钟任务处理设备,参阅图12所示,该设备1200包括:多核处理器1201、通信总线1202、时钟源1203以及存储器1204,所述多核处理器1201中包括多个核,并分为多个数据核12011和多个控制核12012,其中:
所述多核处理器1201、时钟源1203以及所述存储器1204通过所述通信总线1202相互连接;所述通信总线1202可以是外设部件互连标准(peripheralcomponentinterconnect,PCI)通信总线或扩展工业标准结构(extendedindustrystandardarchitecture,EISA)通信总线等。所述通信总线可以分为地址通信总线、数据通信总线、控制通信总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根通信总线或一种类型的通信总线。
所述时钟源1203用于产生时钟中断,并将时钟中断同步至所述多核处理器1201中的每个核,或者同步至所述多个核中的指定的核,该核再将所述时钟中断广播至所述多个核中的其他核,其中,所述指定的核通常为所述多核处理器1201中所述多个核中的首个核,即CPU0。
所述多核处理器1201中的至少一个核,用于实现本发明实施例图2所示的时钟任务处理方法,包括:
通过所述多个数据核12011中的至少一个数据核12011运行待处理业务的至少一个业务进程,
关闭所述至少一个数据核12011的时钟中断;
通过所述多个控制核12012中的至少一个控制核12012处理所述至少一个业务进程提交的至少一个第一时钟任务,所述至少一个第一时钟任务为依赖时钟中断完成的任务,所述至少一个第一时钟任务是关闭所述时钟中断后提交的。
可选的,所述至少一个核通过所述至少一个控制核12012处理所述至少一个业务进程提交的至少一个第一时钟任务,包括:
将所述至少一个业务进程提交的所述至少一个第一时钟任务提交到设定的任务队列中,所述至少一个第一时钟任务是所述至少一个数据核12011在运行所述至少一个业务进程中获得的;
通过所述至少一个控制核12012处理所述设定的任务队列中的至少一个第一时钟任务。
可选的,所述至少一个核在关闭所述至少一个数据核12011的时钟中断之后,还包括:
将所述至少一个数据核12011中的至少一个第二时钟任务迁移到所述设定的任务队列中,其中,所述第二时钟任务与所述第一时钟任务为相同的任务类型;
通过所述至少一个控制核12012处理迁移的到所述设定任务队列中的所述至少一个第二时钟任务。
可选的,所述第一时钟任务为延时任务,所述设定的任务队列为所述至少一个控制核12012的任务队列;
所述所述至少一个核通过所述至少一个控制核12012处理所述设定的任务队列中的至少一个第一时钟任务,包括:
在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,都通过所述至少一个控制核12012处理所述至少一个控制核12012的任务队列中的与所述时钟中断对应的第一时钟任务。
可选的,所述第一时钟任务为读拷贝修改锁RCU回调callback任务,所述设定的任务队列为所述设备中公共的孤儿队列;
所述至少一个核通过所述至少一个控制核12012处理所述设定的任务队列中的至少一个第一时钟任务,包括:
在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,都在通过所述至少一个控制核12012处理完所述至少一个控制核12012内部的RCUcallback任务后,处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务。
可选的,所述至少一个核通过所述至少一个控制核12012处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务,包括:
根据所述至少一个控制核12012中的一个控制核12012上报的状态信息,通过所述控制核12012处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务,所述状态信息指示与所述时钟中断对应的第一时钟任务的原目标数据核12011已经历静止状态;
其中,所述状态信息为所述控制核12012确定所述原目标数据核12011在所述时钟中断的时刻,未处于宽限期的指定读临界区,以及确定所述原目标数据核12011已经历静止状态的情况下发送的,所述指定读临界区的起始时刻位于所述宽限期的开启时刻之前,且所述指定读临界区的结束时刻位于所述宽限期内或所述宽限期的结束时刻之外。
可选的,所述至少一个核还用于:
检测所述待处理业务的数据包的数目;
在所述数据包的数目大于第一阈值时,将所述多个控制核12012中的一个控制核12012切换为数据核12011,以便于切换后的数据核运行所述至少一个业务进程;或者添加所述多个数据核12011中除所述至少一个数据核12011以外的一个数据核12011,以便于添加的数据核运行所述至少一个业务进程;
在所述数据包的数目小于第二阈值时,将所述至少一个数据核12011中的一个数据核12011切换为控制核12012,其中,所述至少一个数据核12011中数据核12011的数目大于或等于2;
其中,所述第一阈值大于所述第二阈值。
可选的,所述至少一个核,还用于:
对所述多个数据核12011和所述多个控制核12012设置刷新标记,所述刷新标记表示所述设备切换进程地址空间标识ASID组,以便所述多个数据核12011或所述多个控制核12012中的至少一个核根据所述刷新标记进行进程切换中的后备转换缓存TLB刷新。
可选的,所述至少一个数据核12011还运行有其他进程的情况下,在所述至少一个核通过所述至少一个数据核12011运行所述至少一个业务进程,关闭所述至少一个数据核12011的时钟中断之前,所述方法还包括:
所述至少一个核将所述至少一个数据核12011中的所述其他进程迁移至所述多个控制核12012,或将所述至少一个数据核12011中的所述其他进程迁移至所述多个数据核12011中除所述至少一个数据核12011以外的数据核12011中。
该设备1200还包括存储器1204,用于存放程序等。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。存储器1204可能包含随机存取存储器(randomaccessmemory,RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。所述至少一个核执行存储器1204所存放的指令,实现如上时钟任务处理方法。
可选的,所述设备1200还包括用户接口,用于接收用户发出的时钟中断控制指令等,如关闭时钟中断指令或恢复时钟中断指令;
可选的,所述设备1200还包括网络接口,用于接收与所述设备1200相连的其他设备发出的时钟中断控制指令等,如关闭时钟中断指令或恢复时钟中断指令
采用本发明实施例提供的设备,所述设备在通过至少一个数据核运行至少一个业务进程之前或过程中,关闭了所述至少一个数据核的时钟中断,因此,所述至少一个数据核在后续运行所述至少一个业务进程时,不会出现时钟中断,所述设备减少了业务的抖动,降低了业务的延时,提高了所述设备的处理效率,并且由于所述设备通过不会处理业务数据的控制核处理所述至少一个业务进程提交的时钟任务,可以使时钟任务的处理不会出现延迟和阻塞的情况,保证所述设备的业务功能正常运行。
综上所述,本发明实施例提供的时钟任务处理方法、装置及设备,多核计算机的操作系统在通过至少一个数据核运行至少一个业务进程之前或过程中,关闭了所述至少一个数据核的时钟中断,因此,所述至少一个数据核在后续运行所述至少一个业务进程时,不会出现时钟中断,所述操作系统减少了业务的抖动,降低了业务的延时,提高了所述操作系统的处理效率,并且由于所述操作系统通过不会处理业务数据的控制核处理所述至少一个业务进程提交的时钟任务,可以使时钟任务的处理不会出现延迟和阻塞的情况,保证所述操作系统的业务功能正常运行。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (19)
1.一种时钟任务处理方法,所述时钟任务处理方法用于多核计算机的操作系统,所述多核计算机的操作系统运行于包括多个数据核和多个控制核的物理主机,其特征在于,包括:
通过所述多个数据核中的至少一个数据核运行待处理业务的至少一个业务进程,
关闭所述至少一个数据核的时钟中断,
通过所述多个控制核中的至少一个控制核处理所述至少一个业务进程提交的至少一个第一时钟任务,所述至少一个第一时钟任务为依赖时钟中断完成的任务,所述至少一个第一时钟任务是关闭所述时钟中断后提交的。
2.如权利要求1所述的方法,其特征在于,所述操作系统通过所述至少一个控制核处理所述至少一个业务进程提交的至少一个第一时钟任务,包括:
所述操作系统将所述至少一个业务进程提交的所述至少一个第一时钟任务提交到设定的任务队列中,所述至少一个第一时钟任务是所述至少一个数据核在运行所述至少一个业务进程中获得的;
所述操作系统通过所述至少一个控制核处理所述设定的任务队列中的至少一个第一时钟任务。
3.如权利要求2所述的方法,其特征在于,所述操作系统在关闭所述至少一个数据核的时钟中断之后,还包括:
所述操作系统将所述至少一个数据核中的至少一个第二时钟任务迁移到所述设定的任务队列中,其中,所述第二时钟任务与所述第一时钟任务为相同的任务类型;
通过所述至少一个控制核处理迁移到所述设定任务队列中的所述至少一个第二时钟任务。
4.如权利要求2或3所述的方法,其特征在于,所述第一时钟任务为延时任务,所述设定的任务队列为所述至少一个控制核的任务队列;
所述操作系统通过所述至少一个控制核处理所述设定的任务队列中的至少一个第一时钟任务,包括:
在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,所述操作系统都通过所述至少一个控制核处理所述至少一个控制核的任务队列中的与所述时钟中断对应的第一时钟任务。
5.如权利要求2或3所述的方法,其特征在于,所述第一时钟任务为读拷贝修改锁RCU回调callback任务,所述设定的任务队列为所述操作系统中公共的孤儿队列;
所述操作系统通过所述至少一个控制核处理所述设定的任务队列中的至少一个第一时钟任务,包括:
在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,所述操作系统都在通过所述至少一个控制核处理完所述至少一个控制核内部的RCUcallback任务后,处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务。
6.如权利要求5所述的方法,其特征在于,所述操作系统通过所述至少一个控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务,包括:
所述操作系统根据所述至少一个控制核中的一个控制核上报的状态信息,通过所述控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务,所述状态信息指示与所述时钟中断对应的第一时钟任务的原目标数据核已经历静止状态;
其中,所述状态信息为所述控制核确定所述原目标数据核在所述时钟中断的时刻,未处于宽限期的指定读临界区,以及确定所述原目标数据核已经历静止状态的情况下发送的,所述指定读临界区的起始时刻位于所述宽限期的开启时刻之前,且所述指定读临界区的结束时刻位于所述宽限期内或所述宽限期的结束时刻之外。
7.如权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
所述操作系统检测所述待处理业务的数据包的数目;
在所述数据包的数目大于第一阈值时,所述操作系统将所述多个控制核中的一个控制核切换为数据核,以便于切换后的数据核运行所述至少一个业务进程;或者添加所述多个数据核中除所述至少一个数据核以外的一个数据核,以便于添加的数据核运行所述至少一个业务进程;
在所述数据包的数目小于第二阈值时,所述操作系统将所述至少一个数据核中的一个数据核切换为控制核,其中,所述至少一个数据核中数据核的数目大于或等于2;
其中,所述第一阈值大于所述第二阈值。
8.如权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
所述操作系统对所述多个数据核和所述多个控制核设置刷新标记,所述刷新标记表示所述操作系统切换进程地址空间标识ASID组,以便所述多个数据核和所述多个控制核中的至少一个核根据所述刷新标记进行进程切换过程中的后备转换缓存TLB刷新。
9.如权利要求1-8任一项所述的方法,其特征在于,在所述至少一个数据核还运行有其他进程的情况下,在所述操作系统通过所述至少一个数据核运行所述至少一个业务进程,关闭所述至少一个数据核的时钟中断之前,所述方法还包括:
所述操作系统将所述至少一个数据核中的所述其他进程迁移至所述多个控制核,或将所述至少一个数据核中的所述其他进程迁移至所述多个数据核中除所述至少一个数据核以外的数据核中。
10.一种时钟任务处理装置,所述装置用于包括多个数据核和多个控制核的物理主机,其特征在于,包括:
第一处理单元,用于通过所述多个数据核中的至少一个数据核运行待处理业务的至少一个业务进程;
控制单元,用于关闭所述至少一个数据核的时钟中断;
第二处理单元,用于通过所述多个控制核中的至少一个控制核处理所述至少一个业务进程提交的至少一个第一时钟任务,所述至少一个第一时钟任务为依赖时钟中断完成的任务,所述至少一个第一时钟任务是关闭所述时钟中断后提交的。
11.如权利要求10所述的装置,其特征在于,所述第二处理单元,具体用于:
将所述至少一个业务进程提交的所述至少一个第一时钟任务提交到设定任务队列中,所述至少一个第一时钟任务是所述至少一个数据核在运行所述至少一个业务进程中获得的;
通过所述至少一个控制核处理所述设定的任务队列中的至少一个第一时钟任务。
12.如权利要求11所述的装置,其特征在于,所述装置还包括:
第一迁移单元,用于在所述控制单元关闭所述至少一个数据核的时钟中断之后,将所述至少一个数据核中的至少一个第二时钟任务迁移到设定的任务队列中,其中,所述第二时钟任务与所述第一时钟任务为相同的任务类型;
所述第二处理单元,还用于:
通过所述至少一个控制核处理迁移到所述设定的任务队列中的所述至少一个第二时钟任务。
13.如权利要求11或12所述的装置,其特征在于,所述第一时钟任务为延时任务,所述设定的任务队列为所述至少一个控制核的任务队列;
所述第二处理单元,在通过所述至少一个控制核处理所述设定的任务队列中的至少一个第一时钟任务时,具体用于:
在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,都通过所述至少一个控制核处理所述至少一个控制核的任务队列中与所述时钟中断对应的第一时钟任务。
14.如权利要求11或12所述的装置,其特征在于,所述第一时钟任务为读拷贝修改锁RCU回调callback任务,所述设定的任务队列为所述装置中公共的孤儿队列;
所述第二处理单元,在通过所述至少一个控制核处理所述设定的任务队列中的至少一个第一时钟任务时,具体用于:
在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,都在通过所述至少一个控制核处理完所述至少一个控制核内部的RCUcallback任务后,处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务。
15.如权利要求14所述的装置,其特征在于,所述第二处理单元,在通过所述至少一个控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务时,具体用于:
根据所述至少一个控制核中的一个控制核上报的状态信息,通过所述控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务,所述状态信息指示与所述时钟中断对应的第一时钟任务的原目标数据核已经历静止状态;
其中,所述状态信息为所述控制核确定所述原目标数据核在与所述时钟中断的时刻,未处于宽限期的指定读临界区,以及确定所述原目标数据核已经历静止状态的情况下发送的,所述指定读临界区的起始时刻位于所述宽限期的开启时刻之前,且所述指定读临界区的结束时刻位于所述宽限期内或所述宽限期的结束时刻之外。
16.如权利要求10-15任一项所述的装置,其特征在于,所述装置还包括检测单元和调整单元,
所述检测单元,用于检测所述待处理业务的数据包的数目;
所述调整单元,用于在所述数据包的数目大于第一阈值时,将所述多个控制核中的一个控制核切换为数据核,以便于切换后的数据核运行所述至少一个业务进程;或者添加所述多个数据核中除所述至少一个数据核以外的一个数据核,以便于添加的数据核运行所述至少一个业务进程;
在所述数据包的数目小于第二阈值时,将所述至少一个数据核中的一个数据核切换为控制核,其中,所述至少一个数据核中数据核的数目大于或等于2;
其中,所述第一阈值大于所述第二阈值。
17.如权利要求10-16任一项所述的装置,其特征在于,所述装置还包括:
标记单元,用于对所述多个数据核和所述多个控制核设置刷新标记,所述刷新标记表示所述装置切换进程地址空间标识ASID组,以便所述多个数据核或所述多个控制核中的至少一个核根据所述刷新标记进行进程切换中的后备转换缓存TLB刷新。
18.如权利要求10-17任一项所述的装置,其特征在于,所述装置还包括:
第二迁移单元,用于在所述至少一个数据核还运行有其他进程的情况下,在所述第一处理单元通过所述至少一个数据核运行所述至少一个业务进程,所述控制单元关闭所述至少一个数据核的时钟中断之前,将所述至少一个数据核中的所述其他进程迁移至所述多个控制核,或将所述至少一个数据核中的其他进程迁移至所述多个数据核中除所述至少一个数据核以外的数据核中。
19.一种时钟任务处理设备,所述设备包括多核处理器,存储器,时钟源和通信总线,所述多核处理器、时钟源以及存储器通过所述通信总线连接,所述多核处理器包括多个数据核和多个控制核,
所述时钟源用于产生时钟中断,并将时钟中断同步至所述多核处理器中的核,所述多核处理器用于调用所述存储器中的指令,执行如权利要求1-9任一项的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610032714.XA CN105718320B (zh) | 2016-01-18 | 2016-01-18 | 一种时钟任务处理方法、装置及设备 |
PCT/CN2016/091058 WO2017124717A1 (zh) | 2016-01-18 | 2016-07-22 | 一种时钟任务处理方法、装置及设备 |
EP16885977.5A EP3306474A4 (en) | 2016-01-18 | 2016-07-22 | Clock task processing method, apparatus and device |
US15/901,291 US10891171B2 (en) | 2016-01-18 | 2018-02-21 | Method, apparatus and device for transitioning between data and control core and migrating clock task from data core to control core |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610032714.XA CN105718320B (zh) | 2016-01-18 | 2016-01-18 | 一种时钟任务处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718320A true CN105718320A (zh) | 2016-06-29 |
CN105718320B CN105718320B (zh) | 2020-11-06 |
Family
ID=56147619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610032714.XA Active CN105718320B (zh) | 2016-01-18 | 2016-01-18 | 一种时钟任务处理方法、装置及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10891171B2 (zh) |
EP (1) | EP3306474A4 (zh) |
CN (1) | CN105718320B (zh) |
WO (1) | WO2017124717A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017124717A1 (zh) * | 2016-01-18 | 2017-07-27 | 华为技术有限公司 | 一种时钟任务处理方法、装置及设备 |
CN110333899A (zh) * | 2019-06-27 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置和存储介质 |
CN112147931A (zh) * | 2020-09-22 | 2020-12-29 | 哲库科技(北京)有限公司 | 一种信号处理器的控制方法、装置、设备以及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11099602B2 (en) * | 2019-04-30 | 2021-08-24 | International Business Machines Corporation | Fault-tolerant clock gating |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060150185A1 (en) * | 2004-12-20 | 2006-07-06 | Mckenney Paul E | Hard real-time response |
CN101246438A (zh) * | 2008-03-07 | 2008-08-20 | 中兴通讯股份有限公司 | 一种对称多处理系统中进程与中断的处理方法及装置 |
CN102375761A (zh) * | 2010-08-06 | 2012-03-14 | 中兴通讯股份有限公司 | 业务管理方法和装置、以及设备 |
CN102662740A (zh) * | 2012-03-29 | 2012-09-12 | 迈普通信技术股份有限公司 | 非对称多核系统及其实现方法 |
US8327187B1 (en) * | 2009-09-21 | 2012-12-04 | Tilera Corporation | Low-overhead operating systems |
EP2637096A1 (en) * | 2012-03-07 | 2013-09-11 | Alcatel Lucent | A system for schedule and executing best-effort, real-time and high-performance computing (HPC) processes |
US20140006820A1 (en) * | 2012-06-30 | 2014-01-02 | International Business Machines Corporation | Energy Efficient Implementation Of Read-Copy Update For Light Workloads Running On Systems With Many Processors |
US20140380084A1 (en) * | 2013-06-20 | 2014-12-25 | International Business Machines Corporation | Detecting Full-System Idle State In Adaptive-Tick Kernels |
CN105183668A (zh) * | 2015-09-21 | 2015-12-23 | 华为技术有限公司 | 缓存刷新方法及装置 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218704A (en) * | 1989-10-30 | 1993-06-08 | Texas Instruments | Real-time power conservation for portable computers |
KR100369768B1 (ko) * | 2000-12-09 | 2003-03-03 | 엘지전자 주식회사 | 휴대용 컴퓨터에서의 버스 클럭 주파수 제어장치 |
DE60223177T2 (de) * | 2002-01-24 | 2008-07-31 | Fujitsu Ltd., Kawasaki | Computer zur dynamischen bestimmung der unterbrechungsverzögerung |
JP2003296680A (ja) * | 2002-03-29 | 2003-10-17 | Hitachi Ltd | データ処理装置 |
US7418585B2 (en) * | 2003-08-28 | 2008-08-26 | Mips Technologies, Inc. | Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts |
US20060064529A1 (en) * | 2004-09-23 | 2006-03-23 | International Business Machines Corporation | Method and system for controlling peripheral adapter interrupt frequency by transferring processor load information to the peripheral adapter |
US7827551B2 (en) * | 2005-09-21 | 2010-11-02 | Intel Corporation | Real-time threading service for partitioned multiprocessor systems |
US7627705B2 (en) * | 2005-12-30 | 2009-12-01 | Stmicroelectronics Pvt. Ltd. | Method and apparatus for handling interrupts in embedded systems |
US7617408B2 (en) * | 2006-02-13 | 2009-11-10 | Schweitzer Engineering Labortories, Inc. | System and method for providing accurate time generation in a computing device of a power system |
US9459890B2 (en) * | 2008-07-10 | 2016-10-04 | Mentor Graphics Corporation | Controlling real time during embedded system development |
US8438404B2 (en) * | 2008-09-30 | 2013-05-07 | International Business Machines Corporation | Main processing element for delegating virtualized control threads controlling clock speed and power consumption to groups of sub-processing elements in a system such that a group of sub-processing elements can be designated as pseudo main processing element |
FR2937439B1 (fr) * | 2008-10-17 | 2012-04-20 | Commissariat Energie Atomique | Procede d'execution deterministe et de synchronisation d'un systeme de traitement de l'information comportant plusieurs coeurs de traitement executant des taches systemes. |
US9098335B2 (en) * | 2009-12-23 | 2015-08-04 | Citrix Systems, Inc. | Systems and methods for managing spillover limits in a multi-core system |
US8412832B2 (en) * | 2009-12-23 | 2013-04-02 | Citrix Systems, Inc. | Systems and methods for GSLB MEP connection management across multiple core appliances |
US8861434B2 (en) * | 2010-11-29 | 2014-10-14 | Alcatel Lucent | Method and system for improved multi-cell support on a single modem board |
US8504753B2 (en) * | 2011-02-14 | 2013-08-06 | Qnx Software Systems Limited | Suspendable interrupts for processor idle management |
CN102081555B (zh) | 2011-02-24 | 2013-02-27 | 华为技术有限公司 | 调整时钟中断周期的方法和装置 |
US8381011B2 (en) | 2011-02-24 | 2013-02-19 | Huawei Technologies Co., Ltd. | Adjusting period of clock interruption that triggers processing of processes in run queue at plural threshold depth levels |
US8732371B2 (en) * | 2011-08-25 | 2014-05-20 | Facebook, Inc. | Managing overhead associated with service requests via software generated interrupts |
WO2013101139A1 (en) | 2011-12-30 | 2013-07-04 | Intel Corporation | Providing an asymmetric multicore processor system transparently to an operating system |
EP2831728B1 (en) * | 2012-03-29 | 2018-09-26 | Intel Corporation | Architecture and method for managing interrupts in a virtualized environment |
US9223383B2 (en) * | 2012-12-21 | 2015-12-29 | Advanced Micro Devices, Inc. | Guardband reduction for multi-core data processor |
CN104969190B (zh) * | 2013-03-13 | 2018-05-15 | 英特尔公司 | 多核心二进制转换任务处理 |
US9377836B2 (en) * | 2013-07-26 | 2016-06-28 | Intel Corporation | Restricting clock signal delivery based on activity in a processor |
US9658902B2 (en) * | 2013-08-22 | 2017-05-23 | Globalfoundries Inc. | Adaptive clock throttling for event processing |
US9507404B2 (en) * | 2013-08-28 | 2016-11-29 | Via Technologies, Inc. | Single core wakeup multi-core synchronization mechanism |
CN104679583B (zh) | 2013-11-28 | 2019-02-05 | 华为技术有限公司 | 一种动态调整时钟中断的方法及装置 |
US9794139B2 (en) * | 2014-03-07 | 2017-10-17 | International Business Machines Corporation | Allocating operators of a streaming application to virtual machines based on monitored performance |
US9891964B2 (en) * | 2014-11-19 | 2018-02-13 | International Business Machines Corporation | Network traffic processing |
KR102476357B1 (ko) * | 2015-08-06 | 2022-12-09 | 삼성전자주식회사 | 클럭 관리 유닛과 이를 적용하는 집적 회로 및 시스템 온 칩 및 그 동작 방법 |
CN105718320B (zh) * | 2016-01-18 | 2020-11-06 | 华为技术有限公司 | 一种时钟任务处理方法、装置及设备 |
-
2016
- 2016-01-18 CN CN201610032714.XA patent/CN105718320B/zh active Active
- 2016-07-22 WO PCT/CN2016/091058 patent/WO2017124717A1/zh active Application Filing
- 2016-07-22 EP EP16885977.5A patent/EP3306474A4/en active Pending
-
2018
- 2018-02-21 US US15/901,291 patent/US10891171B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060150185A1 (en) * | 2004-12-20 | 2006-07-06 | Mckenney Paul E | Hard real-time response |
CN101246438A (zh) * | 2008-03-07 | 2008-08-20 | 中兴通讯股份有限公司 | 一种对称多处理系统中进程与中断的处理方法及装置 |
US8327187B1 (en) * | 2009-09-21 | 2012-12-04 | Tilera Corporation | Low-overhead operating systems |
CN102375761A (zh) * | 2010-08-06 | 2012-03-14 | 中兴通讯股份有限公司 | 业务管理方法和装置、以及设备 |
EP2637096A1 (en) * | 2012-03-07 | 2013-09-11 | Alcatel Lucent | A system for schedule and executing best-effort, real-time and high-performance computing (HPC) processes |
CN102662740A (zh) * | 2012-03-29 | 2012-09-12 | 迈普通信技术股份有限公司 | 非对称多核系统及其实现方法 |
US20140006820A1 (en) * | 2012-06-30 | 2014-01-02 | International Business Machines Corporation | Energy Efficient Implementation Of Read-Copy Update For Light Workloads Running On Systems With Many Processors |
US20140380084A1 (en) * | 2013-06-20 | 2014-12-25 | International Business Machines Corporation | Detecting Full-System Idle State In Adaptive-Tick Kernels |
CN105183668A (zh) * | 2015-09-21 | 2015-12-23 | 华为技术有限公司 | 缓存刷新方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017124717A1 (zh) * | 2016-01-18 | 2017-07-27 | 华为技术有限公司 | 一种时钟任务处理方法、装置及设备 |
US10891171B2 (en) | 2016-01-18 | 2021-01-12 | Huawei Technologies Co., Ltd. | Method, apparatus and device for transitioning between data and control core and migrating clock task from data core to control core |
CN110333899A (zh) * | 2019-06-27 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置和存储介质 |
CN112147931A (zh) * | 2020-09-22 | 2020-12-29 | 哲库科技(北京)有限公司 | 一种信号处理器的控制方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3306474A1 (en) | 2018-04-11 |
US10891171B2 (en) | 2021-01-12 |
CN105718320B (zh) | 2020-11-06 |
EP3306474A4 (en) | 2018-08-15 |
US20180181447A1 (en) | 2018-06-28 |
WO2017124717A1 (zh) | 2017-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552272B2 (en) | Maintaining high availability during N-node failover | |
US9727372B2 (en) | Scheduling computer jobs for execution | |
EP3252608B1 (en) | Node system, server device, scaling control method, and program | |
WO2017128961A1 (zh) | 一种分布式系统中的训练模型的方法及设备 | |
EP3073373B1 (en) | Method for interruption affinity binding of virtual network interface card, and computer device | |
US8453151B2 (en) | Method and system for coordinating hypervisor scheduling | |
US11625258B2 (en) | Method, apparatus and system for real-time virtual network function orchestration | |
JP7101127B2 (ja) | 産業用サーバのマイクロカーネルアーキテクチャの制御システム及び産業用サーバ | |
US10459661B2 (en) | Stream identifier based storage system for managing an array of SSDs | |
CN105718320A (zh) | 一种时钟任务处理方法、装置及设备 | |
US8301805B2 (en) | Managing I/O request in a storage system | |
CN103744728A (zh) | 一种基于动态ple技术的虚拟机协同调度方法 | |
US9928092B1 (en) | Resource management in a virtual machine cluster | |
CN103678163A (zh) | 数据流的切换方法、装置及系统 | |
CN110096332A (zh) | 一种面向基站任务的迁移方法和系统 | |
Satpathy et al. | A service sustainable live migration strategy for multiple virtual machines in cloud data centers | |
US9436505B2 (en) | Power management for host with devices assigned to virtual machines | |
WO2022252986A1 (zh) | 中断调度方法、电子设备及存储介质 | |
WO2023160359A1 (zh) | 资源调度方法以及装置 | |
Nguyen et al. | An improvement of resource allocation for migration process in cloud environment | |
JP2015041199A (ja) | 情報処理装置 | |
Ying et al. | On energyaware allocation and execution for batch and interactive mapreduce | |
US10904090B2 (en) | Virtual machine placement based on network communication patterns with other virtual machines | |
CN111147278A (zh) | 计算机指令执行方法的装置 | |
CN115269139A (zh) | 基于可信区域的双操作系统混合实时任务调度方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |