本发明属于计算机,具体涉及一种任务并行处理方法、装置、电子设备及存储介质。
背景技术:
1、现有技术中,由于多个cpu共同访问同一个变量时会导致cpu之间的竞争,这会降低cpu的效率,于是引入了per-cpu机制,让每个cpu都有自己的私有数据区,来加速多对称处理(symmetric multiprocessing,smp)系统上对操作系统核心数据的操作性能。尽管per-cpu技术克服了多个cpu之间竞态访问数据的问题,但是依然存在下面问题,会导致per-cpu数据的访问有延迟。
2、同一cpu的不同任务或者设备中断程序依然会对该cpu的公共数据产生竞争,任务或者设备中断程序需要使用关调度机制来实现互斥访问,这会影响核心cpu中任务调度的实时性。此外,per-cpu数据可能在中断中访问,为了避免任务或者设备中断程序上下文与中断上下文同时访问per-cpu数据,必要时需要在临界区中执行关中断操作,会导致核心cpu中的中断响应被延迟,影响系统实时性。
3、因此,如何提供一种有效的方案以确保核心cpu中任务的实时性,已成为现有技术中一亟待解决的问题。
技术实现思路
1、本发明的目的是提供一种任务并行处理方法、装置、电子设备及存储介质,用以解决现有技术中存在的上述问题。
2、为了实现上述目的,本发明采用以下技术方案:
3、第一方面,本发明提供了一种任务并行处理方法,应用于多核系统,所述多核系统包括核心cpu和辅助cpu,包括:
4、在任务需要关中断或关调度时,判断所述任务所处的cpu是否为核心cpu;
5、如果所述任务所处的cpu为核心cpu,则将所述任务迁移至辅助cpu。
6、基于上述公开的内容,本发明通过在任务需要关中断或关调度时,判断任务所处的cpu是否为核心cpu;如果任务所处的cpu为核心cpu,则将任务迁移至辅助cpu。如此,通过在触发关中断或关调度之前将核心cpu上会触发关中断或关调度的任务迁移至辅助cpu,从而可避免在核心cpu上触发的关中断或者关调度,对一些重要的任务造成影响,确保系统的实时性。
7、通过上述的设计,本发明可在触发关中断或关调度之前将核心cpu上会触发关中断或关调度的任务迁移至辅助cpu,从而可避免在核心cpu上触发的关中断或者关调度,对一些重要的任务造成影响,确保系统的实时性,便于实际应用和推广。
8、在一个可能的设计中,所述方法还包括:
9、如果核心cpu上当前没有任务,则将辅助cpu上的至少一个任务迁移至核心cpu。
10、在一个可能的设计中,在将辅助cpu上的至少一个任务迁移至核心cpu之后,所述方法还包括:
11、在迁移至核心cpu的任务触发关中断或关调度之前,将迁移至核心cpu的任务或设备中断程序迁移回辅助cpu。
12、在一个可能的设计中,所述方法还包括:
13、判断核心cpu上的任务是否需要访问公共资源;
14、如果核心cpu上的任务需要访问公共资源,则判定核心cpu上的任务需要关中断或关调度;
15、如果核心cpu上的任务不需要访问公共资源,则判定核心cpu上的任务不需要关中断或关调度。
16、在一个可能的设计中,所述将所述任务迁移至辅助cpu,包括:
17、将所述任务的进程描述块从任务队列中取出后添加至辅助cpu的任务队列中。
18、在一个可能的设计中,所述辅助cpu为多个。
19、第二方面,本发明提供了一种任务并行处理装置,应用于多核系统,所述多核系统包括核心cpu和辅助cpu,包括:
20、判断单元,用于在任务需要关中断或关调度时,判断所述任务所处的cpu是否为核心cpu;
21、迁移单元,用于如果所述任务所处的cpu为核心cpu,则将所述任务迁移至辅助cpu。
22、在一个可能的设计中,所述迁移单元还用于如果核心cpu上当前没有任务,则将辅助cpu上的至少一个任务迁移至核心cpu。
23、第三方面,本发明提供了一种电子设备,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如上述第一方面或第一方面任一可能设计所述的任务并行处理方法。
24、第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行第一方面或第一方面任一可能设计所述的任务并行处理方法。
25、第五方面,本发明提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面或第一方面任一可能设计所述的任务并行处理方法。
26、有益效果:
27、本发明提供的任务并行处理方法、装置、电子设备及存储介质,可在触发关中断或关调度之前将核心cpu上会触发关中断或关调度的任务迁移至辅助cpu,从而可避免在核心cpu上触发的关中断或者关调度,对一些重要的任务造成影响,确保系统的实时性,便于实际应用和推广。
1.一种任务并行处理方法,应用于多核系统,所述多核系统包括核心cpu和辅助cpu,其特征在于,包括:
2.根据权利要求1所述的任务并行处理方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的任务并行处理方法,其特征在于,在将辅助cpu上的至少一个任务迁移至核心cpu之后,所述方法还包括:
4.根据权利要求1所述的任务并行处理方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的任务并行处理方法,其特征在于,所述将所述任务迁移至辅助cpu,包括:
6.根据权利要求1所述的任务并行处理方法,其特征在于,所述辅助cpu为多个。
7.一种任务并行处理装置,应用于多核系统,所述多核系统包括核心cpu和辅助cpu,其特征在于,包括:
8.根据权利要求7所述的任务并行处理装置,其特征在于,所述迁移单元还用于如果核心cpu上当前没有任务,则将辅助cpu上的至少一个任务迁移至核心cpu。
9.一种电子设备,其特征在于,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如权利要求1~6任意一项所述的任务并行处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求1~6任意一项所述的任务并行处理方法。
