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

文档序号:9929438阅读:来源:国知局
在所述数据包的数目大于第一阈值时,所述操作系统将所述多个控制核中的一个控制核切换为数据核,以便于切换后的数据核运行所述至少一个业务进程;或者添加所述多个数据核中除所述至少一个数据核以外的一个数据核,以便于添加的的数据核运行所述至少一个业务进程;
[0100]在所述数据包的数目小于第二阈值时,所述操作系统将所述至少一个数据核中的一个数据核切换为控制核,其中所述至少一个数据核中数据核的数目大于或等于2;
[0101 ]其中,所述第一阈值大于所述第二阈值。
[0102]通过上述方法,所述操作系统可以根据业务需求以及所述至少一个数据核的负载情况,随时调整运行所述业务进程的数据核和所述多个控制核的数量,提高了所述操作系统的扩展性,提高了核的资源利用率。
[0103]可选的,所述方法还包括:
[0104]所述操作系统对所述多个数据核和所述多个控制核设置刷新标记,所述刷新标记标识所述操作系统切换进程地址空间标识(Address Space Identif ier,ASID)组,以便所述多个数据核或所述多个控制核根据所述刷新标记进行切换中的后备转换缓存(Translat1n lookaside buffer,TLB)刷新。
[0105]传统的,当操作系统创建的进程数达到256的整数倍时,将触发进程的ASID组的切换,所述操作系统会向所述操作系统中的所有核发送处理器之间的中断(Inter-ProcessorInterrupt,IPI)中断,用于通知每个核进行TLB刷新,因此若数据核正在处理业务数据,也会出现业务延时和抖动。
[0106]采用上述方式,当所述操作系统进程ASID组触发切换时,对所述多个数据核和所述多个控制核设置刷新标记。这样,当任意一个数据核或控制核在进行进程切换时,会判断自身是否存在该刷新标记,若存在,则自行进行TLB刷新,其中,所述至少一个数据核中的任意一个数据核在进行TLB刷新时,所述操作系统已经恢复了之前被关闭时钟中断的数据核的时钟中断。这样,就避免了数据核在处理业务数据时,出现IPI中断,进一步减少了业务的抖动,以及降低了业务的延时,提高了所述操作系统的处理效率。
[0107]采用本发明上述实施例中的时钟任务处理方法,多核计算机的操作系统通过多个数据核中的至少一个数据核运行待处理业务的至少一个业务进程,并关闭所述至少一个数据核的时钟中断;再通过多个控制核中的至少一个控制核处理所述至少一个业务进程提交的时钟任务。其中,所述操作系统开始通过所述至少一个数据核运行所述至少一个业务进程和关闭所述至少一个数据核的时钟中断两个步骤之间不存在先后顺序,这样,由于所述操作系统在通过所述至少一个数据核运行所述至少一个业务进程之前或过程中,关闭了所述至少一个数据核的时钟中断,因此,所述至少一个数据核在后续运行所述至少一个业务进程时,不会出现时钟中断,减少了业务的抖动,降低了业务的延时,提高了所述操作系统的处理效率,并且由于所述操作系统通过不会处理业务数据的控制核处理所述至少一个业务进程提交的时钟任务,可以使时钟任务的处理不会出现延迟和阻塞的情况,保证所述操作系统的业务功能正常运行。
[0108]基于以上实施例,本发明还提供了一种时钟任务处理装置,其中,所述装置用于包括多个数据核和多个控制核的物理主机,参阅图5所示,所述装置500中包括:第一处理单元501、控制单元502和第二处理单元503,其中,
[0109]第一处理单元501,用于通过所述多个数据核中的至少一个数据核运行待处理业务的至少一个业务进程;
[0110]控制单元502,用于关闭所述至少一个数据核的时钟中断;如图6所示的一种实现方式中,在所述控制单元502关闭所述至少一个数据核的时钟中断后,所述至少一个数据核中运行所述业务进程,并且屏蔽时钟源事件(时钟中断);
[0111]第二处理单元503,用于通过所述多个控制核中的至少一个控制核处理所述至少一个业务进程提交的至少一个第一时钟任务,所述至少一个第一时钟任务为依赖时钟中断完成的任务,所述至少一个第一时钟任务是关闭所述时钟中断后提交的。
[0112]可选的,所述第二处理单元503,具体用于:
[0113]将所述至少一个业务进程提交的所述至少一个第一时钟任务提交到设定任务队列中,所述至少一个第一时钟任务是所述至少一个数据核在运行所述至少一个业务进程中获得的;
[0114]通过所述至少一个控制核处理所述设定的任务队列中的所述至少一个第一时钟任务。
[0115]可选的,所述装置500还包括:
[0116]第一迀移单元,用于在所述控制单元502关闭所述至少一个数据核的时钟中断之后,将所述至少一个数据核中的至少一个第二时钟任务迀移到设定的任务队列中,其中,所述第二时钟任务与所述第一时钟任务为相同的任务类型;
[0117]所述第二处理单元503,还用于:
[0118]通过所述至少一个控制核处理迀移到所述设定的任务队列中的所述至少一个第二时钟任务。
[0119]在一种实现方式中,所述第一迀移单元可以由图7所示的时钟任务迀移模块来实现,而所述至少一个控制核处理迀移到设定的任务队列中的所述第二时钟任务的功能,由图中的时钟任务处理模块来实现,需要说明的是,所述至少一个控制核中每个控制核内部均设置有一个时钟任务处理模块,图7为了简洁清楚,将所述至少一个控制核中所有控制核的时钟任务处理功能集成到所述时钟任务处理模块,图7仅为示意性的示出将所述至少一个数据核中的第二时钟任务迀移,并通过所述至少一个控制核处理。
[0120]在一种实现方式中,当所述至少一个数据核中的第二时钟任务为延时任务时,如图8所示,所述时钟迀移模块将所述至少一个数据核中的延时任务a和延时任务b,迀移至所述多个控制核中的任务队列中,并通过所述至少一个控制核中的时钟任务处理模块处理各自任务队列中的时钟任务,为了简洁清楚,将所述至少一个控制核中每个控制核的时钟任务处理模块隐去。
[0121]在一种实现方式中,当所述至少一个数据核中的第二时钟任务为R⑶callback任务时,如图9所示,所述时钟迀移模块将所述至少一个数据核中的RCU calIback任务a和RCUcallback任务b,迀移至所述操作系统中公共的孤儿队列,并通过所述至少一个控制核中的时钟任务处理模块处理所述孤儿队列中的时钟任务。
[0122]可选的,所述第一时钟任务为延时任务,所述设定的任务队列为所述至少一个控制核的任务队列;
[0123]所述第二处理单元503,在通过所述至少一个控制核处理所述设定的任务队列中的至少一个第一时钟任务时,具体用于:
[0124]在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,都通过所述至少一个控制核处理所述至少一个控制核的任务队列中与所述时钟中断对应的第一时钟任务。
[0125]可选的,所述第一时钟任务为读拷贝修改锁RCU回调callback任务,所述设定的任务队列为所述装置500中公共的孤儿队列;
[0126]所述第二处理单元503,在通过所述至少一个多个控制核处理所述设定的任务队列中的至少一个第一时钟任务时,具体用于:
[0127]在与所述至少一个第一时钟任务中每个第一时钟任务的时间要求对应的时钟中断内,都在通过所述至少一个控制核处理完所述至少一个控制核内部的R⑶callback任务后,处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务。
[0128]可选的,所述第二处理单元503,在通过所述至少一个控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务时,具体用于:
[0129]根据所述至少一个控制核中的一个控制核上报的状态信息,通过所述控制核处理所述孤儿队列中的与所述时钟中断对应的第一时钟任务,所述状态信息指示与所述时钟中断对应的第一时钟任务的原目标数据核已经历静止状态;
[0130]其中,所述状态信息为所述控制核确定所述原目标数据核在与所述时钟中断的时刻,未处于宽限期的指定读临界区,以及确定所述原目标数据核已经历静止状态的情况下发送的,所述指定读临界区的起始时刻位于所述宽限期的开启时刻之前,且所述指定读临界区的结束时刻位于所述宽限期内或所述宽限期的结束时刻之外。
[0131]可选的,所述装置500还包括检测单元和调整单元,
[0132]所述检测单元,用于检测所述待处理业务的数据包的数目;
[0133]所述调整单元,用于在所述数据包的数目大于第一阈值时,将所述多个控制核中的一个控制核切换为数据核,以便于切换后的数据核运行所述至少一个业务进程,如图10所示;或者添加所述多个数据核中除所述至少一个数据核以外的一个数据核,以便于切换后的数据核运行所述至少一个业务进程;
[0134]在所述数据包的数目小于第二阈值时,将所述至少一个数据核中的一个数据核切换为控制核,如图10所示,其中,所述至少一个数据核中数据核的数目大于或等于2;
[0135]其中,所述第一阈值大于所述第二阈值。
[0136]可选的,所述装置500还包括:
[0137]标记单元,用于对所述多个数据核和所述多个控制核设置刷新标记,所述刷新标记表示所述装置500切换进程地址空间标识ASID组,以便所述多个数据核或所述多个控制核中的至少一个核根据所述刷新标记进行进程切换中的后备转换缓存TLB刷新。如图11所示,所述多个控制核中任一个控制核确定切换进程ASID组,所述标记单元对所述装置500中的每个核设置刷新标记,这样,每个核各自在进程切换中,会检查自身自否存在所述刷新标记,确定存在时,则进行TLB刷新,并在TLB刷新后,删除自身的所述刷新标记。
[0138]可选的,所述装置500还包括:
[0139]第二迀移单元,用于在所述至少一个数据核还运行有其他进程的情况下,在所述第一处理单元501通过所述至少一个数据核运行所述至少一个业务进程,所述控制单元502关闭所述至少一个数据核的时钟中断之前,将所述至少一个数据核中的所述其他进程迀移至所述多个控制核,或将所述至少一个数据核中的其他进程迀移至所述多个数据核中除所述至少一个数据核以外的数据核中。
[0140]采用本发明上述实施例中的时钟任务处理装置,所述装置通过多个数据核中的至少一个数据核运行待处理业务的至少一个业务进程,并关闭所述至少一个数据核的时钟中断;再通过多个控制核中的至少一个控制核处理所述至少一个业务进程提交的时钟任务。其中,所述装置开始通过所述至少一个数据核运行所述至少一个业务进程和关闭所述至少一个数据核的时钟中断两个步骤之间不存在先后顺序,这样,由于
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1