一种时钟任务处理方法、装置及设备的制造方法

文档序号:9929438阅读:484来源:国知局
一种时钟任务处理方法、装置及设备的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种时钟任务处理方法、装置及设备。
【背景技术】
[0002]在多核计算机中,通常将多核划分为控制核和数据核两类,控制核用于实现控制、维护、系统管理等功能,而数据核用于运行待处理业务的业务进程,进行业务数据处理。为了实现高速的数据处理,通常让单个业务进程独占单个中央处理器(Central ProcessingUnit,CPU)资源。但是,随着网络数据处理的性能要求越来越高,用户对数据核的单次业务数据处理允许的最高时延也不断下降。然而,在多核计算机运行的操作系统中,每个数据核上的周期性的时钟中断,成为影响数据核的单次处理的时延的主要因素,进而也成为影响操作系统的业务性能及稳定性的主要因素,其中,时钟中断周期通常设置为几毫秒(millisecond,ms)到几十ms之间,目前最常见的为4ms、10ms等。
[0003]传统的,为了满足高速的网络数据业务处理需求,消除操作系统中时钟中断对业务性能的影响,业界可以采用减少中断(tickless)机制,在操作系统中,让指定的数据核进入近似完全无中断N0_HZ_FULL模式,即在该数据核只有一个进程需要运行或没有进程需要运行时,延长时钟中断周期。
[0004]但是,采用这种机制,当数据核正在运行业务进程时,也需要确保在I秒(second,s)内至少有一次时钟中断到来,即时钟中断周期最大为Is,时钟中断并没有完全关闭,若时钟中断到来时,该数据核正在进行业务数据处理,将会导致业务出现严重的延时和抖动。

【发明内容】

[0005]本发明提供一种时钟任务处理方法、装置及系统,用以解决传统的操作系统中的数据核在处理业务数据时,业务的延时或者抖动较严重,影响业务的处理效率的问题。
[0006]本发明提供的具体技术方案如下:
[0007]—方面,本申请的实施例提供一种时钟任务的处理方法,其中该方法可以用于多核计算机的操作系统,且该操作系统运行于包括多个数据核和多个控制核的物理主机,该方法包括:
[0008]所述操作系统在通过所述多个数据核中的至少一个数据核运行待处理业务的业务进程之前或过程中,关闭运行所述业务进程的所述至少一个数据核的时钟中断,这样,所述方法可以保证所述至少一个数据核在后续运行所述业务进程时,不会出现时钟中断,减少了业务的抖动,降低了业务的延时,提高了所述操作系统的处理效率,另外,所述操作系统通过所述多个控制核中的至少一个控制核处理业务进程提交的时钟任务,如所述业务进程提交的至少一个第一时钟任务,可以保证所述操作系统的业务功能正常运行,使时钟任务的处理不会出现延迟和阻塞的情况。
[0009]在一个可能的设计中,所述操作系统对所述至少一个数据核进行业务配置,即将所述待处理业务的业务进程与所述至少一个数据核进行绑定,这样,保证所述业务进程仅在所述至少一个数据核上运行,避免所述业务进程发生迀移。
[0010]在一个可能的设计中,所述操作系统在通过所述至少一个数据核在运行所述业务进程中,所述业务进程每新提交一个第一时钟任务,所述操作系统将新提交的第一时钟任务提交至设定的任务队列中,所述设定的任务队列根据新提交的第一时钟任务的任务类型不同而不同,例如,当所述第一时钟任务为延时任务时,所述设定的任务队列为所述至少一个控制核的任务队列;当所述第一时钟任务为RCU callback任务时,所述设定的任务队列为所述操作系统中公共的孤儿队列;所述操作系统通过所述至少一个控制核处理在所述设定的任务队列中的至少一个第一时钟任务。由于运行所述业务进程的所述至少一个数据核的时钟中断已关闭,因此,后续所述业务进程运行过程中新提交的第一时钟任务通过控制核处理,可以保证所述操作系统的业务功能正常运行,使时钟任务的处理不会出现延迟和阻塞的情况。
[0011]在一个可能的设计中,所述操作系统通过控制接口接收用户或者其他设备发出的时钟中断控制指令(关闭时钟中断指令),并根据所述关闭时钟中断指令,将所述至少一个数据核的时钟中断关闭;所述操作系统在通过所述至少一个数据核运行完所述至少一个业务进程后,通过所述控制接口,接收所述用户或所述其他设备发出的时钟中断控制指令(恢复时钟中断指令),并根据所述恢复时钟中断指令,将所述至少一个数据核的时钟中断恢复。在一个可能的设计中,在所述至少一个数据核中存在至少一个第二时钟任务的情况下,在所述操作系统在关闭所述至少一个数据核的时钟中断之后,所述操作系统判断所述至少一个第二时钟任务的任务类型,判定与上述第一时钟任务的任务类型相同,还需要将所述至少一个数据核中的所述至少一个第二时钟任务迀移到所述设定的任务队列中,然后也通过所述至少一个控制核处理迀移到所述设定任务队列中的所述至少一个第二时钟任务。这样,所述操作系统即可保证在所述至少一个数据核中存在至少一个第二时钟任务的情况下,所述操作系统依然通过将第二时钟任务迀移的方式处理,使时钟任务的处理不会出现延迟和阻塞的情况。
[0012]在一个可能的设计中,所述第一时钟任务为延时任务,所述设定的任务队列为所述至少一个控制核的任务队列,那么,所述操作系统在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时间中断内,通过所述至少一个控制核处理所述至少一个控制核的任务队列中的与所述时钟中断对应的第一时钟任务。
[0013]在一个可能的设计中,所述第一时钟任务为RCUcallback任务,所述设定的任务队列为所述操作系统的孤儿队列,那么所述操作系统在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,所述操作系统都在通过所述至少一个控制核处理完所述至少一个控制核内部的RCU callback任务后,处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务。
[0014]在一个可能的设计中,上述提到的所述操作系统通过所述至少一个控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务时,所述操作系统首先接收所述至少一个控制核中的一个控制核上报的状态信息,所述状态信息为与所述时钟中断对应的第一时钟任务的原目标数据核已经历静止状态;所述操作系统根据接收的所述状态信息,通过上报所述状态信息的所述控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务;
[0015]其中,所述原目标数据核为,假设在所述至少一个数据核的时钟中断未关闭的情况下,所述第一时钟任务应提交至的数据核;所述状态信息为所述控制核确定所述原目标数据核在所述时钟中断的时刻,未处于宽限期的指定读临界区,以及确定所述原目标数据核已经历静止状态的情况下发送的;所述指定读临界区的起始时刻位于所述宽限期的开启时刻之前,且所述指定读临界区的结束时刻位于所述宽限期内或所述宽限期的结束时刻之外;
[0016]宽限期是指所有核当前正执行的RCU读操作的临界部分完成的时间;读临界区表示一个进程正在读取一个公用的资源的时间,而在该时间内,其他进程需要等待,不能读取该公用的资源;所述公共的资源为一次仅允许一个进程使用的共享资源;静止状态为一个核的执行状态,在该核处于静止状态的期间,核上执行的任务不会应用任何被RCU保护的数据,只有该核经历静止状态,之前被RCU保护的数据才能被释放。
[0017]在一个可能的设计中,所述操作系统检测所述待处理业务的数据包的数目;并分别比较所述数据包的数目与第一阈值和第二阈值的大小;在所述数据包的数目大于第一阈值时,所述操作系统将所述多个控制核中的一个控制核切换为数据核,以便于切换后的数据核运行所述进程;或者添加所述多个数据核中除所述至少一个数据核以外的一个数据核,以便于添加的数据核运行所述业务进程;
[0018]在所述数据包的数目小于第二阈值时,所述操作系统将所述至少一个数据核中的一个数据核切换为控制核,其中,所述至少一个数据核中数据核的数目大于或等于2;
[0019]其中,所述第一阈值大于所述第二阈值。
[0020]通过上述方式,所述操作系统可以根据业务需求以及所述至少一个数据核的负载情况,随时调整运行所述业务进程的数据核和所述多个控制核的数量,提高了所述操作系统的扩展性,提高了核的资源利用率。
[0021]在一个可能的设计中,所述操作系统在确定需要切换进程ASID组,对所述物理主机中的所述多个数据核和所述多个控制核设置刷新标记;所述刷新标记表示所述操作系统切换进程ASID组,以便所述多个数据核和所述多个控制核中的至少一个核根据所述刷新标记进行进程切换过程中的后备转换缓存TLB刷新;后续任意一个数据核或控制核在进行进程切换时,会判断自身是否存在该刷新标记,若存在,则自行进行TLB刷新,其中,所述至少一个数据核中的任意一个数据核在进行TLB刷新时,所述操作系统已经恢复了之前被关闭时钟中断的数据核的时钟中断。这样,就避免了数据核在处理业务数据时,出现IPI中断,进一步减少了业务的抖动,以及降低了业务的延时,提高了所述操作系统的处理效率。
[0022]在一个可能的设计中,在所述至少一个数据核还运行有其他进程的情况下,在所述操作系统通过所述至少一个数据核运行所述业务进程,关闭所述至少一个数据核的时钟中断之前,所述操作系统需要将所述至少一个数据核中的所述其他进程迀移至所述多个控制核,或将所述至少一个数据核中的所述其他进程迀移至所述多个数据核中除所述至少一个数据核以外的数据核中。这样,在所述至少一个数据核在运行所述业务进程之前,将所述至少一个数据核中的进程清空,后续直接运行所述待处理业务的业务进程,提高所述至少一个数据核处理所述待处理业务的效率,同时保证了所述操作系统的安全性。
[0023]另一方面,本申请的实施例提供一种时钟任务处理装置,所述装置用于包括多个数据核和多个控制核的物理主机,该装置具有实现上述方法设计中的操作系统行为的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。
[0024]在一个可能的设计中,所述装置的结构中包括第一处理单元、控制单元和第二处理单元,其中,第一处理单元,用于通过所述多个数据核中的至少一个数据核运行待处理业务的至少一个业务进程;
[0025]控制单元,用于关闭所述至少一个数据核的时钟中断;
[0026]第二处理单元,用于通过所述多个控制核中的至少一个控制核处理所述至少一个业务进程提交的至少一个第一时钟任务,所述至少一个第一时钟任务为依赖时钟中断完成的任务,所述至少一个第一时钟任务是关闭所述时钟中断后提交的。
[0027]又一方面,本申请的实施例提供一种
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1