CN112306669A - 一种基于多核系统的任务处理方法及装置 - Google Patents
一种基于多核系统的任务处理方法及装置 Download PDFInfo
- Publication number
- CN112306669A CN112306669A CN201910714824.8A CN201910714824A CN112306669A CN 112306669 A CN112306669 A CN 112306669A CN 201910714824 A CN201910714824 A CN 201910714824A CN 112306669 A CN112306669 A CN 112306669A
- Authority
- CN
- China
- Prior art keywords
- core
- service
- task
- processing
- cpu
- 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
Images
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/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
-
- 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
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
本发明提出了一种基于多核系统的任务处理方法及装置,方法包括:将CPU核划分为业务核集合域和控制核集合域;将业务处理任务绑定到所述业务核集合域中的业务核上,由所述业务核处理所述业务处理任务。根据本发明的基于多核系统的任务处理方法,通过将CPU和划分为业务核集合域和控制核集合域,将业务处理任务绑定到业务核上,由业务核处理业务处理任务,在对称多处理的系统中,能动态平滑的切换为业务逻辑上的非对称多处理状态,使得业务处理任务完全独占业务核运行,不会因为系统抖动而造成瓶颈,而影响业务性能和指标,从而可以充分利用业务核单核CPU处理能力,提升了业务处理性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于多核系统的任务处理方法及装置。
背景技术
随着多核CPU系统的发展,尤其是在嵌入式领域中,系统在完成系统管理和控制等基本功能外,对要求同时完成实时性高、数据量大的业务处理任务的需求越来越高。对于这种处理任务不相同的复杂系统,多核CPU如何相互协调,防止系统抖动和干扰以提升业务处理性能就尤为重要。
发明内容
本发明要解决的技术问题是,如何提高对称多处理系统中的业务处理能力,本发明提供一种基于多核系统的任务处理方法及装置。
根据本发明实施例的基于多核系统的任务处理方法,包括:
将CPU核划分为业务核集合域和控制核集合域;
将业务处理任务绑定到所述业务核集合域中的业务核上,由所述业务核处理所述业务处理任务。
根据本发明实施例的基于多核系统的任务处理方法,通过将CPU和划分为业务核集合域和控制核集合域,将业务处理任务绑定到业务核上,由业务核处理业务处理任务,在对称多处理的系统中,能动态平滑的切换为业务逻辑上的非对称多处理状态,使得业务处理任务完全独占业务核运行,不会因为系统抖动而造成瓶颈,而影响业务性能和指标,从而可以充分利用业务核单核CPU处理能力,提升了业务处理性能。
根据本发明的一些实施例,所述将CPU核划分为业务核集合域和控制核集合域,包括:
使所有CPU核均处于在线状态;
从所有CPU核中选出部分CPU核作为控制核,以形成所述控制核集合域;
将其余CPU核作为业务核,并将所述业务核进行离线后再上线的处理以形成所述业务核集合域。
在本发明的一些实施例中,所述方法还包括:
当所有CPU核均处于在线状态时,将任务分配至所有CPU核进行处理;
所述业务核离线后,将所述业务核中的任务迁移至所述控制核。
根据本发明的一些实施例,所述方法还包括:
在所述业务核再上线之前,打开所述业务核的时钟中断,并发送上线通知给操作系统。
在本发明的一些实施例中,所述方法还包括:
在将业务处理任务绑定到所述业务核集合域中的业务核上之后,关闭所述业务核的时钟中断。
根据本发明的一些实施例,所述方法还包括:
在所述控制核上运行系统调用代理任务;
通过共享内存的方式,使所述业务核根据所述控制核上运行系统调用代理任务的运行结果进行系统调用。
在本发明的一些实施例中,所述通过共享内存队列的方式,使所述业务核根据所述系统调用代理任务进行系统调用,包括:
分配所述共享内存,所述共享内存包括系统调用描述符;
将所述业务核进行系统调用时的系统调用参数信息写到所述描述符中,并将所述描述符状态修改为请求中;
通过所述控制核查找状态为请求中的所述描述符,并基于所述描述符中的系统调用参数信息执行系统调用。
根据本发明实施例的基于多核系统的任务处理装置,包括:
划分模块,用于将CPU核划分为业务核集合域和控制核集合域;
任务处理模块,用于将业务处理任务绑定到所述业务核集合域中的业务核上,由所述业务核处理所述业务处理任务。
根据本发明实施例的基于多核系统的任务处理装置,在对称多处理的系统中,能动态平滑的切换为业务逻辑上的非对称多处理状态,使得业务处理任务完全独占业务核运行,不会因为系统抖动而造成瓶颈,影响业务性能和指标。
根据本发明实施例的电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述所述的基于多核系统的任务处理方法的步骤。
根据本发明实施例的电子装置,通过执行本发明提出的基于多核系统的任务处理方法,在对称多处理的系统中,能动态平滑的切换为业务逻辑上的非对称多处理状态,使得业务处理任务完全独占业务核运行,不会因为系统抖动而造成瓶颈,影响业务性能和指标。
根据本发明实施例的计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的基于多核系统的任务处理方法的步骤。
根据本发明实施例的计算机存储介质,通过执行本发明提出的基于多核系统的任务处理方法,在对称多处理的系统中,能动态平滑的切换为业务逻辑上的非对称多处理状态,使得业务处理任务完全独占业务核运行,从而充分利用了单核CPU处理能力,不会因为系统抖动而造成瓶颈,影响业务性能和指标。
附图说明
图1是现有对称对处理系统和非对称多处理系统对比示意图;
图2是根据本发明实施例的基于多核系统的任务处理装置的结构示意图;
图3是根据本发明实施例的基于多核系统的任务处理方法流程图;
图4是根据本发明实施例的划分为业务核集合域和控制核集合域的方法流程图;
图5是根据本发明实施例的CPU核逻辑状态转换示意图;
图6是本发明实施例的系统调用代理使用共享内存布局示意图;
图7是根据本发明实施例的业务核和控制核进行系统调用代理流程示意图;
图8是根据本发明实施例的通讯设备管理和转发一体化系统流程示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
传统的方法中,对于处理不同任务,具有非对称多处理架构(AMP,AsymmetricMultiProcessing)和基于对称多处理架构(SMP,Symmetrical Multi-Processing)两种解决方案,它们的特点如图1所示。
其中,AMP解决方案中,每个CPU核处理不同任务,甚至单独运行一个系统,CPU核间不会相互影响,但这种系统复杂性高,业务程序开发和移植困难,在处理任务复杂的系统中很少应用。
采用SMP的方法则被广泛的使用,其特点是每个CPU核共享处理,运行操作系统的单一副本。任务在多个CPU核间公平调度,负载均衡。
在对称多处理系统中,为了完成实时性高、数据量大的业务处理任务,相关技术中采用的做法是通过系统优化来减少系统抖动以满足处理性能,其基本工作方法和原理如下文描述:
首先,关闭不必要的系统服务进程,进一步的,把在业务核中运行的普通任务迁移到其它CPU核,进一步的,将所有中断迁移到其它非业务核上,进一步的,把业务处理任务绑定到业务CPU核执行。通过这些操作流程,让在业务CPU核上执行业务处理程序的时间尽可能的不受影响。
上述方式的缺点主要有:因为SMP方案其本质上的对称处理特性,并不能完全解决系统抖动问题,尤其是对于CPU业务核在启动后再动态隔离CPU核进行业务绑定的应用场景中,这些优化方法还无法做到完全隔离,业务处理任务不仅容易受到其所在CPU核之前已经绑定CPU核的任务进程、定时器、中断下半部程序等的影响,而且还会受到不必要的系统时钟中断调度带来的额外开销(传统的动态时钟TICKLESS只能减少),以及系统调用因竞争引起阻塞,业务处理任务无法百分百占用运行业务处理的CPU核,导致业务处理任务无法满足业务处理性能,而且甚至容易因为调度策略和调度优先级的问题,反向阻塞和影响管理和控制功能的正常运行。
如图3所示,根据本发明实施例的基于多核系统的任务处理方法,包括:
S101:将CPU核划分为业务核集合域和控制核集合域;
由此,可以在不同的集合域的CPU核进行不同的任务处理,提高业务处理效率。例如,如图2所示,在对称对处理系统中,控制核集合域中的控制核可以是用于管理控制的CPU核;业务核可以是用于业务处理的CPU核。通过使控制核和业务核处于不同的调度集合中,可以使控制核和业务核相互隔离,互不影响,实现在业务逻辑上的非对称多处理系统。
S102:将业务处理任务绑定到业务核集合域中的业务核上,由业务核处理业务处理任务。
根据本发明实施例的基于多核系统的任务处理方法,通过将CPU和划分为业务核集合域和控制核集合域,将业务处理任务绑定到业务核上,由业务核处理业务处理任务,在对称多处理的系统中,能动态平滑的切换为业务逻辑上的非对称多处理状态,使得业务处理任务完全独占业务核运行,不会因为系统抖动而造成瓶颈,而影响业务性能和指标,从而可以充分利用业务核单核CPU处理能力,提升了业务处理性能。
根据本发明的一些实施例,如图4所示,将CPU核划分为业务核集合域和控制核集合域,包括:
S201:使所有CPU核均处于在线状态;
S202:从所有CPU核中选出部分CPU核作为控制核,以形成控制核集合域;
S203:将其余CPU核作为业务核,并将业务核进行离线后再上线的处理以形成业务核集合域。
需要说明的是,传统上CPU核逻辑状态有CPU_ONLINE和CPU_OFFLINE两种。如图5所示,本发明提出了一种新的CPU核逻辑状态CPU_ONLINE_EXCLUSIVE,利用CPU热插拔技术,业务核可以通过离线再上线的方式从传统状态切换进入第三种逻辑状态CPU_ONLINE_EXCLUSIVE,如图5所示,在引入此新状态后,操作系统把业务核划分为和控制核完全不同的调度集合域,独立调度,避免相互影响,达到业务逻辑上的非对称处理效果。
在进行业务核集合域和控制核集合域划分时,首先可以使所有CPU核均处于在线状态,然后,通过选出部分CPU核作为业务核,通过对其采用先离线后再上线的处理方式形成业务核集合域。
在本发明的一些实施例中,方法还可以包括:
当所有CPU核均处于在线状态时,将任务分配至所有CPU核进行处理。
当业务核离线后,将业务核中的任务迁移至控制核。
根据本发明的一些实施例,方法还包括:在业务核再上线之前,打开业务核的时钟中断,并发送上线通知给操作系统。
需要说明的是,当将运行在业务核的所有程序或服务迁移到控制核后,业务核的运行环境已经清理干净,在业务核再上线之前,可以打开相应业务核的时钟中断,并发送CPU准备业务上线通知给操作系统内核。
在本发明的一些实施例中,方法还包括:在将业务处理任务绑定到业务核集合域中的业务核上之后,关闭业务核的时钟中断。由此,通过关闭业务核上用于调度的时钟中断,可以避免其打断业务处理任务,从而进一步提高业务处理性能。
根据本发明的一些实施例,方法还可以包括:
在控制核上运行系统调用代理任务;
通过共享内存的方式,使业务核根据在控制核上运行系统调用代理任务的运行结果进行系统调用。
需要说明的是,当关闭业务核上的时钟中断后,业务处理任务直接进入系统调用会受到信号量、自旋锁等资源竞争而引起阻塞。因此,业务处理任务应尽量避免使用系统调用,但某些场景仍无法避免,若获取时间,读写文件等。为了解决此问题,如图6和图7所示,本发明提出了一种系统调用代理的方法,预先在控制核上运行系统调用代理任务,在业务核上不直接调用系统调用,而是通过共享内存的方式,通知代理任务间接完成,避免业务核受到系统阻塞以及上下文切换带来的系统性能损耗。
其中,通过共享内存队列的方式,使业务核根据系统调用代理任务进行系统调用,包括:
分配共享内存,共享内存包括系统调用描述符。如图6所示,可以预先分配两块控制核和业务核都能访问的共享内存,其中一块用于表示系统调用描述符集合,每个描述符包含状态、系统调用号、参数、结果等字段,各个描述字符长度相等,在地址空间上连续,以环的方式组织。
将业务核进行系统调用时的系统调用参数信息写到描述符中,并将描述符状态修改为请求中。业务核进行系统调用时,首先获取描述环中写指针位置,合法判断后,如果参数需要大块内存,则先从参数内存池中申请一块内存,将系统调用号和参数或者参数内存地址填写到描述符中,进一步的,将描述符状态修改为请求中,循环等待描述符状态变更为执行完成,取出结果,释放参数内存池。
通过控制核查找状态为请求中的描述符,并基于描述符中的系统调用参数信息执行系统调用。如图7所示,控制核启动系统调用代理任务,并设置为较高优先级,此任务不断轮询描述符环中读指针位置的描述符状态,直到查询到状态变更为请求中,进一步的,首先修改状态为执行中,然后取出系统调用号和参数执行系统调用,解析执行完后,如果参数需要大块内存保存结果,则从参数内存池中申请后并把结果复制到参数内存中,进一步的,修改状态为执行完成。读指针加1,继续取下一个描述符。
结合图4和图5所示,将CPU核划分为控制核和业务核的具体步骤包括:
步骤1:CPU完成初始化后,CPU正常进入CPU_ONLINE逻辑状态,在此状态下,CPU核对所有任务并行对称处理,公平调度,负载均衡;
步骤2:在上述步骤的基础上,发送业务核准备离线通知给操作系统内核,将运行在业务核的所有程序或服务迁移到控制核,具体包括管理控制任务、定时器、工作队列、中断以及中断下半部程序,当完成迁移操作后,业务核的CPU逻辑状态即变迁为CPU_OFFLINE状态。此状态下,业务核处于下电、离线状态。
步骤3:在上述步骤的基础上,业务核的运行环境已经清理干净,进一步的,打开相应业务核的时钟中断,发送CPU准备业务上线通知给操作系统内核,唤醒业务核并将业务核的CPU逻辑状态状态变迁CPU_ONLINE_EXCLUSIVE,在此状态下,业务核处于独立的调度集合域中,进程调度器以和控制核完全不同的方式开始执行,运行队列为空,不执行任何任务,也不执行任何工作队列,定时器等中断下半部程序。
步骤4:在上述步骤的基础上,业务核的时钟中断已打开,其调度器开始运行,此时启动业务处理任务,并把其绑定到相应的业务核中运行。
通过以上步骤,业务核处于CPU_ONLINE_EXCLUSIVE逻辑状态集合中,控制核处于CPU_ONLINE逻辑状态集合中,两者进入不同的调度集合域,控制核中运行普通管理控制、工作队列,定时器、中断以及中断下半部等任务,业务核则单独运行业务处理任务,不同任务在控制核和业务核之间不会进行负载均衡:业务核不会主动拉起控制核任务队列的任务,控制核调度器也不能把任务放入业务核的任务调度队列。
步骤5,可选的,在步骤4的基础上,业务处理任务已经运行,为进一步提高业务处理性能,选择关闭业务核上用于调度的时钟中断,避免其打断业务处理任务。
步骤6:可选的,在步骤4的基础上,预先在控制核上运行系统调用代理任务,在业务核上运行的业务处理任务不直接调用系统调用,而是通过共享内存队列的方式,通知代理任务间接完成,避免业务核受到系统阻塞以及上下文切换带来的系统性能损耗。
根据本发明实施例的基于多核系统的任务处理装置,包括:划分模块和任务处理模块。
具体而言,划分模块可以用于将CPU核划分为业务核集合域和控制核集合域。
由此,可以在不同的集合域的CPU核进行不同的任务处理,提高业务处理效率。例如,如图2所示,在对称对处理系统中,控制核集合域中的控制核可以是用于管理控制的CPU核;业务核可以是用于业务处理的CPU核。通过使控制核和业务核处于不同的调度集合中,可以使控制核和业务核相互隔离,互不影响,实现在业务逻辑上的非对称多处理系统。
任务处理模块用于将业务处理任务绑定到业务核集合域中的业务核上,由业务核处理业务处理任务。
根据本发明实施例的基于多核系统的任务处理装置,在对称多处理的系统中,能动态平滑的切换为业务逻辑上的非对称多处理状态,使得业务处理任务完全独占业务核运行,不会因为系统抖动而造成瓶颈,影响业务性能和指标。
根据本发明的一些实施例,划分模块具体用于:
使所有CPU核均处于在线状态;
从所有CPU核中选出部分CPU核作为控制核,以形成控制核集合域;
将其余CPU核作为业务核,并将业务核进行离线后再上线的处理以形成业务核集合域。
需要说明的是,利用CPU热插拔技术,业务核可以通过离线再上线的方式从传统状态切换进入第三种逻辑状态CPU_ONLINE_EXCLUSIVE,如图5所示,在引入此新状态后,操作系统把业务核划分为和控制核完全不同的调度集合域,独立调度,避免相互影响,达到业务逻辑上的非对称处理效果。
在进行业务核集合域和控制核集合域划分时,首先可以使所有CPU核均处于在线状态,然后,通过选出部分CPU核作为业务核,通过对其采用先离线后再上线的处理方式形成业务核集合域。
在本发明的一些实施例中,任务处理模块还用于:
当所有CPU核均处于在线状态时,将任务分配至所有CPU核进行处理;
业务核离线后,将业务核中的任务迁移至控制核。
根据本发明的一些实施例,装置还包括:控制模块。控制模块用于在业务核再上线之前,打开业务核的时钟中断,并发送上线通知给操作系统。
需要说明的是,当将运行在业务核的所有程序或服务迁移到控制核后,业务核的运行环境已经清理干净,在业务核再上线之前,可以打开相应业务核的时钟中断,并发送CPU准备业务上线通知给操作系统内核。
在本发明的一些实施例中,控制模块还用于:在将业务处理任务绑定到业务核集合域中的业务核上之后,关闭业务核的时钟中断。由此,通过关闭业务核上用于调度的时钟中断,可以避免其打断业务处理任务,从而进一步提高业务处理性能。
根据本发明的一些实施例,装置还可以包括:系统调用代理模块,系统调用代理模块用于在控制核上运行系统调用代理任务;
通过共享内存的方式,使业务核根据在控制核上运行系统调用代理任务的运行结果进行系统调用。
需要说明的是,当关闭业务核上的时钟中断后,业务处理任务直接进入系统调用会受到信号量、自旋锁等资源竞争而引起阻塞。因此,业务处理任务应尽量避免使用系统调用,但某些场景仍无法避免,若获取时间,读写文件等。为了解决此问题,如图6和图7所示,本发明提出了一种系统调用代理的方法,预先在控制核上运行系统调用代理任务,在业务核上不直接调用系统调用,而是通过共享内存的方式,通知代理任务间接完成,避免业务核受到系统阻塞以及上下文切换带来的系统性能损耗。
其中,系统调用代理模块可以具体用于:
分配共享内存,共享内存包括系统调用描述符。如图6所示,可以预先分配两块控制核和业务核都能访问的共享内存,其中一块用于表示系统调用描述符集合,每个描述符包含状态、系统调用号、参数、结果等字段,各个描述字符长度相等,在地址空间上连续,以环的方式组织。
将业务核进行系统调用时的系统调用参数信息写到描述符中,并将描述符状态修改为请求中。业务核进行系统调用时,首先获取描述环中写指针位置,合法判断后,如果参数需要大块内存,则先从参数内存池中申请一块内存,将系统调用号和参数或者参数内存地址填写到描述符中,进一步的,将描述符状态修改为请求中,循环等待描述符状态变更为执行完成,取出结果,释放参数内存池。
通过控制核查找状态为请求中的描述符,并基于描述符中的系统调用参数信息执行系统调用。如图7所示,控制核启动系统调用代理任务,并设置为较高优先级,此任务不断轮询描述符环中读指针位置的描述符状态,直到查询到状态变更为请求中,进一步的,首先修改状态为执行中,然后取出系统调用号和参数执行系统调用,解析执行完后,如果参数需要大块内存保存结果,则从参数内存池中申请后并把结果复制到参数内存中,进一步的,修改状态为执行完成。读指针加1,继续取下一个描述符。
结合图4和图5所示,将CPU核划分为控制核和业务核的具体步骤包括:
步骤1:CPU完成初始化后,CPU正常进入CPU_ONLINE逻辑状态,在此状态下,CPU核对所有任务并行对称处理,公平调度,负载均衡;
步骤2:在上述步骤的基础上,发送业务核准备离线通知给操作系统内核,将运行在业务核的所有程序或服务迁移到控制核,具体包括管理控制任务、定时器、工作队列、中断以及中断下半部程序,当完成迁移操作后,业务核的CPU逻辑状态即变迁为CPU_OFFLINE状态。此状态下,业务核处于下电、离线状态。
步骤3:在上述步骤的基础上,业务核的运行环境已经清理干净,进一步的,打开相应业务核的时钟中断,发送CPU准备业务上线通知给操作系统内核,唤醒业务核并将业务核的CPU逻辑状态状态变迁CPU_ONLINE_EXCLUSIVE,在此状态下,业务核处于独立的调度集合域中,进程调度器以和控制核完全不同的方式开始执行,运行队列为空,不执行任何任务,也不执行任何工作队列,定时器等中断下半部程序。
步骤4:在上述步骤的基础上,业务核的时钟中断已打开,其调度器开始运行,此时启动业务处理任务,并把其绑定到相应的业务核中运行。
通过以上步骤,业务核处于CPU_ONLINE_EXCLUSIVE逻辑状态集合中,控制核处于CPU_ONLINE逻辑状态集合中,两者进入不同的调度集合域,控制核中运行普通管理控制、工作队列,定时器、中断以及中断下半部等任务,业务核则单独运行业务处理任务,不同任务在控制核和业务核之间不会进行负载均衡:业务核不会主动拉起控制核任务队列的任务,控制核调度器也不能把任务放入业务核的任务调度队列。
步骤5,可选的,在步骤4的基础上,业务处理任务已经运行,为进一步提高业务处理性能,选择关闭业务核上用于调度的时钟中断,避免其打断业务处理任务。
步骤6:可选的,在步骤4的基础上,预先在控制核上运行系统调用代理任务,在业务核上运行的业务处理任务不直接调用系统调用,而是通过共享内存队列的方式,通知代理任务间接完成,避免业务核受到系统阻塞以及上下文切换带来的系统性能损耗。
下面以一个具体的实施例详细描述根据本发明实施例引入新CPU核逻辑状态进行业务逻辑上非对称多处理调度的实施方式:
步骤1:新增CPU_ONLINE_EXCLUSIVE集合,该集合使用CPU位图的方式表示处于此逻辑状态下的CPU核,BIT位置代表CPU核索引,为1表示该CPU核处于持逻辑状态下,为0表示不在此逻辑状态。该集合初始状态为空。
步骤2:控制核发送下线通知,对一个或多个业务核进行离线处理,业务核进入CPU_OFFLINE逻辑状态后,操作系统将业务核从CPU_ONLINE集合中剔除,即将表示该集合的CPU位图中表示业务核的BIT从1置为0。
步骤3:控制核发送业务上线通知,在执行唤醒动作前,将一个或多个业务核加入到CPU_ONLINE_EXCLUSIVE集合中,即将表示该集合的CPU位图中表示业务核的BIT从0置为1。
步骤4:业务核被唤醒时,检测代表CPU_ONLINE_EXCLUSIVE集合的CPU位图,发现其BIT为1后,便不再加入CPU_ONLINE集合中。
步骤5:业务核被唤醒后,时钟中断触发任务调度,每次调度程序运行时,检测代表CPU_ONLINE_EXCLUSIVE集合的CPU位图,发现其BIT为1后,进入不同的调度流程。
步骤6:控制核启动业务处理任务并绑定到业务核中时,判断合法条件不再仅仅是CPU_ONLINE,而是CPU_ONLINE和CPU_ONLINE_EXCLUSIVE的并集。
步骤7:业务核调度运行业务处理程序后,关闭时钟中断。
下面以一个具体的实施例详细描述根据本发明实施例的系统调用代理的实施方式:
步骤1:预先分配两块控制核和业务核都能访问的共享内存:如图6所示,其中一块用于表示系统调用描述符集合,每个描述符包含状态、系统调用号、参数、结果等字段,各个描述符长度相等,在地址空间上连续,以环的方式组织。另一块作为参数内存池,用于保存系统调用中大于8个字节的参数(如文件buf)。
步骤2:如图7所示,控制核启动系统调用代理任务,并设置为较高优先级,此任务不断轮询描述符环中读指针位置的描述符状态,直到查询到状态变更为请求中,进一步的,首先修改状态为执行中,然后取出系统调用号和参数执行系统调用,解析执行完后,如果参数需要大块内存保存结果,则从参数内存池中申请后并把结果复制到参数内存中,进一步的,修改状态为执行完成。读指针加1,继续取下一个描述符。
步骤3:业务核进行系统调用时,首先获取描述符环中写指针位置,合法判断后,如果参数需要大块内存,则先从参数内存池中申请一块内存,将系统调用号和参数或者参数内存地址填写到描述符中,进一步的,将描述符状态修改为请求中,循环等待描述符状态变更为执行完成,取出结果,释放参数内存池。
下面以一个具体的实施例详细描述根据本发明实施例的基于多核系统的任务处理方法在通讯设备管理和转发板卡一体化系统中的实施方式:
步骤1:如图8所示,系统上电,CPU完成正常初始化后状态为CPU_ONLINE,所有CPU核共同完成系统版本加载,进程和服务初始化上电。区别于启动时CPU核隔离,CPU核并行执行大幅度提供上电速度。
步骤2:选择划分用于管理的控制核和用于数据报文转发的业务核,进一步的,关闭操作系统中断负载均衡管理任务,进一步的,发送CPU准备离线通知给操作系统内核。
步骤3:在步骤2的基础上,操作系统收到上述通知后将运行在业务核的管理进程,普通业务进程、内核定时器和工作队列、中断以及中断下半部程序,迁移到控制核,当完成迁移操作后,修改业务核的CPU逻辑状态为CPU_OFFLINE状态。
步骤4:在步骤3的基础上,打开业务核时钟中断,修改CPU逻辑状态为CPU_ONLINE_EXCLUSIVE。
步骤5:在步骤4的基础上,启动收发包任务,并绑定到相应的业务核。
步骤6:可选的,在步骤5的基础上,关闭业务核上的时钟中断,减少不必要的系统调度带来的时间消耗,此时数据转发任务完全占用业务核处理时间,充分利用CPU核性能。
步骤7:可选的,在步骤5的基础上,在控制核上运行系统调用代理任务。
下面以一个具体的实施例详细描述根据本发明实施例的在多功能服务器系统的实施方式:
随着SDN和虚拟化的发展,使用服务器架构软件自定义网络控制和计算节点,部署OVS,OpenStack等应用越来越广泛,本发明在该应用系统的实施方式为:
步骤1:在服务器操作系统上打入本发明相关内核补丁。
步骤2:根据服务器CPU核数目的多少以及是否足够业务使用的情况,如果CPU核数目足够,在系统启动阶段即将业务CPU核进行隔离,优选的,启动参数激活补丁,在业务软件运行前也可以充分利用每个CPU核。
步骤3:服务器上电,完成操作系统加载和相关应用服务的启动,可选的,指定CPU核和内存资源启动相应的虚机。
步骤4:可选的,在步骤2的基础上,选择在宿主机或虚机中作为计算或者软转发交互业务的CPU核,同上述实施例相同的步骤3-步骤7,把业务核进行动态隔离,并绑定到业务核中执行。
步骤5:可选的,重复上述步骤,实现业务核的回收和控制核的再利用。
根据本发明实施例的电子装置,电子装置包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上述的方法的步骤。
根据本发明实施例的电子装置,通过执行本发明提出的基于多核系统的任务处理方法,在对称多处理的系统中,能动态平滑的切换为业务逻辑上的非对称多处理状态,使得业务处理任务完全独占业务核运行,不会因为系统抖动而造成瓶颈,影响业务性能和指标。
根据本发明实施例的计算机存储介质,计算机存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的基于多核系统的任务处理方法的步骤。
根据本发明实施例的计算机存储介质,通过执行本发明提出的基于多核系统的任务处理方法,在对称多处理的系统中,能动态平滑的切换为业务逻辑上的非对称多处理状态,使得业务处理任务完全独占业务核运行,从而充分利用了单核CPU处理能力,不会因为系统抖动而造成瓶颈,影响业务性能和指标。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
Claims (10)
1.一种基于多核系统的任务处理方法,其特征在于,包括:
将CPU核划分为业务核集合域和控制核集合域;
将业务处理任务绑定到所述业务核集合域中的业务核上,由所述业务核处理所述业务处理任务。
2.根据权利要求1所述的基于多核系统的任务处理方法,其特征在于,所述将CPU核划分为业务核集合域和控制核集合域,包括:
使所有CPU核均处于在线状态;
从所有CPU核中选出部分CPU核作为控制核,以形成所述控制核集合域;
将其余CPU核作为业务核,并将所述业务核进行离线后再上线的处理以形成所述业务核集合域。
3.根据权利要求2所述的基于多核系统的任务处理方法,其特征在于,所述方法还包括:
当所有CPU核均处于在线状态时,将任务分配至所有CPU核进行处理;
所述业务核离线后,将所述业务核中的任务迁移至所述控制核。
4.根据权利要求2所述的基于多核系统的任务处理方法,其特征在于,所述方法还包括:
在所述业务核再上线之前,打开所述业务核的时钟中断,并发送上线通知给操作系统。
5.根据权利要求4所述的基于多核系统的任务处理方法,其特征在于,所述方法还包括:
在将业务处理任务绑定到所述业务核集合域中的业务核上之后,关闭所述业务核的时钟中断。
6.根据权利要求1所述的基于多核系统的任务处理方法,其特征在于,所述方法还包括:
在所述控制核上运行系统调用代理任务;
通过共享内存的方式,使所述业务核根据在所述控制核上运行所述系统调用代理任务的运行结果进行系统调用。
7.根据权利要求6所述的基于多核系统的任务处理方法,其特征在于,所述通过共享内存队列的方式,使所述业务核根据所述系统调用代理任务进行系统调用,包括:
分配所述共享内存,所述共享内存包括系统调用描述符;
将所述业务核进行系统调用时的系统调用参数信息写到所述描述符中,并将所述描述符状态修改为请求中;
通过所述控制核查找状态为请求中的所述描述符,并基于所述描述符中的系统调用参数信息执行系统调用。
8.一种基于多核系统的任务处理装置,其特征在于,包括:
划分模块,用于将CPU核划分为业务核集合域和控制核集合域;
任务处理模块,用于将业务处理任务绑定到所述业务核集合域中的业务核上,由所述业务核处理所述业务处理任务。
9.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的方法的步骤。
10.一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的基于多核系统的任务处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910714824.8A CN112306669A (zh) | 2019-08-02 | 2019-08-02 | 一种基于多核系统的任务处理方法及装置 |
PCT/CN2020/100834 WO2021022964A1 (zh) | 2019-08-02 | 2020-07-08 | 一种基于多核系统的任务处理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910714824.8A CN112306669A (zh) | 2019-08-02 | 2019-08-02 | 一种基于多核系统的任务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112306669A true CN112306669A (zh) | 2021-02-02 |
Family
ID=74486593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910714824.8A Pending CN112306669A (zh) | 2019-08-02 | 2019-08-02 | 一种基于多核系统的任务处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112306669A (zh) |
WO (1) | WO2021022964A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098430A (zh) * | 2022-06-27 | 2022-09-23 | 西安电子科技大学 | 一种基于amp架构的核间通信优先级调度方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391821B (zh) * | 2021-05-11 | 2023-03-10 | 中国电力科学研究院有限公司 | 一种非对称多处理器嵌入式操作系统 |
CN113778936A (zh) * | 2021-08-17 | 2021-12-10 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 国产嵌入式dsp操作系统的性能优化方法 |
CN113821174B (zh) * | 2021-09-26 | 2024-03-22 | 迈普通信技术股份有限公司 | 存储处理方法、装置、网卡设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662740B (zh) * | 2012-03-29 | 2014-12-10 | 迈普通信技术股份有限公司 | 非对称多核系统及其实现方法 |
KR20140139371A (ko) * | 2013-05-27 | 2014-12-05 | 한국전자통신연구원 | 멀티 코어 시스템 반도체 제어 장치 및 방법 |
CN104899089A (zh) * | 2015-05-25 | 2015-09-09 | 常州北大众志网络计算机有限公司 | 一种面向异构多核体系的任务调度方法 |
CN108958944A (zh) * | 2018-07-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种多核处理系统及其任务分配方法 |
-
2019
- 2019-08-02 CN CN201910714824.8A patent/CN112306669A/zh active Pending
-
2020
- 2020-07-08 WO PCT/CN2020/100834 patent/WO2021022964A1/zh active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098430A (zh) * | 2022-06-27 | 2022-09-23 | 西安电子科技大学 | 一种基于amp架构的核间通信优先级调度方法 |
CN115098430B (zh) * | 2022-06-27 | 2024-03-19 | 西安电子科技大学 | 一种基于amp架构的核间通信优先级调度方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021022964A1 (zh) | 2021-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3754498B1 (en) | Architecture for offload of linked work assignments | |
US10891158B2 (en) | Task scheduling method and apparatus | |
US9864627B2 (en) | Power saving operating system for virtual environment | |
US9996401B2 (en) | Task processing method and virtual machine | |
US9619270B2 (en) | Remote-direct-memory-access-based virtual machine live migration | |
EP3039540B1 (en) | Virtual machine monitor configured to support latency sensitive virtual machines | |
CN112306669A (zh) | 一种基于多核系统的任务处理方法及装置 | |
US9135126B2 (en) | Multi-core re-initialization failure control system | |
JP6294586B2 (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
JP5295228B2 (ja) | 複数のプロセッサを備えるシステム、ならびにその動作方法 | |
CN113939805A (zh) | 一种进程间通信的方法及系统 | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
CN115658277B (zh) | 一种任务调度方法、装置及电子设备和存储介质 | |
CN114168271B (zh) | 一种任务调度方法、电子设备及存储介质 | |
US11237859B2 (en) | Securing virtual machines in computer systems | |
WO2024119988A1 (zh) | 多cpu环境下的进程调度方法、装置、电子设备和介质 | |
EP3770759A1 (en) | Wake-up and scheduling of functions with context hints | |
US20210357339A1 (en) | Efficient management of bus bandwidth for multiple drivers | |
CN116578416B (zh) | 一种基于gpu虚拟化的信号级仿真加速方法 | |
US20130247065A1 (en) | Apparatus and method for executing multi-operating systems | |
CN110333899B (zh) | 数据处理方法、装置和存储介质 | |
US9619277B2 (en) | Computer with plurality of processors sharing process queue, and process dispatch processing method | |
CN114281529A (zh) | 分布式虚拟化的客户操作系统调度优化方法、系统及终端 | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request |
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 |