System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 任务提交方法、电子设备及存储介质技术_技高网

任务提交方法、电子设备及存储介质技术

技术编号:40659434 阅读:6 留言:0更新日期:2024-03-18 18:51
本申请提供了一种任务提交方法、电子设备及存储介质。在该方法中,将用户态进程生成的异步任务,直接提交到绑定在某个CPU核心上的内核线程,并通过该内核线程执行该异步任务。该方法解决了基于不绑核工作队列提交任务时无法选择CPU核心的问题,实现了对异步任务的调度优化。

【技术实现步骤摘要】

本申请涉及智能终端,尤其涉及一种任务提交方法、电子设备及存储介质


技术介绍

1、工作队列(workqueue)是linux内核中的一种任务调度机制,可以用于处理异步任务。workqueue机制允许将需要执行的异步任务放入工作队列中,等待系统空闲时进行任务调度和执行。

2、其中,工作队列对应于一个或多个工作线程池(worker-pool),工作线程池中的每个工作线程(或称内核线程)都会不断地从工作队列中获取需要执行的任务,并在不同的cpu(central processing unit,中央处理器)核心上执行任务。

3、然而,在工作队列不绑核的情况下,其所对应的工作线程池中各个工作线程(worker_thread)的优先级是相同的,而且每个工作线程运行在哪个cpu核心上是不可控的,故而可能会导致某些任务调度延迟高的问题。


技术实现思路

1、为了解决上述技术问题,本申请提供一种任务提交方法、电子设备及存储介质。在该方法中,修改了异步任务的提交方式,以此实现对异步任务的调度优化。

2、第一方面,本申请实施例提供一种任务提交方法。该方法应用于电子设备中,包括:

3、电子设备创建目标工作线程,并将目标工作线程绑定到目标cpu核心;电子设备获取目标用户态进程生成的目标异步任务;电子设备将目标异步任务提交至目标工作线程,目标工作线程执行目标异步任务;其中,目标工作线程是在电子设备开机阶段创建并绑定到目标cpu核心上的。

4、其中,目标cpu核心可以是电子设备的任意一个cpu核心,包括但不限于cpu大核、cpu中核、cpu小核。

5、这样,将用户态进程生成的异步任务,直接提交到绑定在某个cpu核心上的内核线程,并通过该内核线程执行该异步任务,解决了基于不绑核工作队列提交任务时无法选择cpu核心的问题,实现了对异步任务的调度优化。

6、根据第一方面,电子设备创建目标工作线程,并将目标工作线程绑定到目标cpu的核心,可以具体为:在电子设备的开机阶段,电子设备创建目标工作线程,并将目标工作线程绑定到目标cpu核心。

7、根据第一方面,或者以上第一方面的任意一种实现方式,电子设备包括多个cpu核心,在多个cpu核心中,第一cpu核心的频率最低。

8、在一种示例中,第一cpu核心为多个cpu核心中的一个cpu小核。

9、根据第一方面,或者以上第一方面的任意一种实现方式,电子设备创建目标工作线程,并将目标工作线程绑定到目标cpu核心,包括:电子设备创建实时工作线程,并将实时工作线程绑定到第一cpu核心上;电子设备将目标异步任务提交至目标工作线程,目标工作线程执行目标异步任务,包括:当目标用户态进程属于前台进程组时,将目标异步任务提交至实时工作线程,实时工作线程执行目标异步任务。

10、这样,针对由前台进程产生的异步任务,将其直接提交至绑定在第一cpu核心(如cpu小核)上的实时线程去执行。由于第一cpu核心相对空闲,实时线程也能更快地获取到第一cpu核心的运行权,进而使得该异步任务能够更早地被执行,避免了任务调度延迟高的问题,进而解决了前台进程卡顿的现象,提升了用户的使用体验。

11、根据第一方面,或者以上第一方面的任意一种实现方式,在多个cpu核心中,还包括至少一个第二cpu核心,至少一个第三cpu核心,以及至少一个第四cpu核心;

12、其中,第二cpu核心和第一cpu核心的频率相同,第二cpu核心的频率小于第三cpu核心的频率,第三cpu核心的频率小于第四cpu核心的频率。

13、在一种示例中,第二cpu核心为多个cpu核心中的cpu小核,第三cpu核心为多个cpu核心中的cpu中核,第四cpu核心为多个cpu核心中的cpu大核。

14、根据第一方面,或者以上第一方面的任意一种实现方式,电子设备创建目标工作线程,并将目标工作线程绑定到目标cpu核心,包括:电子设备还创建多个普通工作线程,并将多个普通工作线程分别绑定到第二cpu核心、第三cpu核心、第四cpu核心上;电子设备将目标异步任务提交至目标工作线程,目标工作线程执行目标异步任务,包括:当目标用户态进程属于非前台进程组时,将目标异步任务提交至绑定到第二cpu核心或第三cpu核心上或第四cpu核心上的一个普通工作线程,一个普通工作线程执行目标异步任务。

15、在本实施例中,针对由非前台进程产生的异步任务,将其直接提交至绑定到第二cpu核心或第三cpu核心上或第四cpu核心(如cpu小核或cpu中核或cpu大核)上的普通线程去执行,解决了基于不绑核工作队列提交任务无法选择工作线程所运行的cpu核心的问题,降低了任务调度的延迟。

16、根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:

17、电子设备根据普通工作线程所绑定的cpu核心类型,对每个普通工作线程的优先级进行设置;其中,绑定到第二cpu核心上的普通工作线程的优先级高于绑定到第三cpu核心上的普通工作线程的优先级,绑定到第三cpu核心上的普通工作线程的优先级高于绑定到第四cpu核心上的普通工作线程的优先级。

18、在本实现方式中,cpu核心的频率越高,绑定到其上的普通工作线程的优先级越低,这样可以使得用于执行异步任务的普通工作线程可以运行在频率较低的cpu核上,也即运行在竞争较低的cpu核上,尽量避免与其它线程竞争资源,以尽快获取到cpu核心的运行权。

19、根据第一方面,或者以上第一方面的任意一种实现方式,电子设备将目标异步任务提交至绑定到第二cpu核心或第三cpu核心上或第四cpu核心上的一个普通工作线程,包括:电子设备根据每个普通工作线程的优先级,在多个普通工作线程中选择一个普通工作线程,并将目标异步任务提交至一个普通工作线程。

20、这样,针对由非前台进程产生的异步任务,可以基于线程优先级来选择执行该异步任务的普通工作线程,以使该异步任务可以尽快被调度执行。

21、根据第一方面,或者以上第一方面的任意一种实现方式,在创建目标工作线程之后,该方法还包括:电子设备为目标工作线程分配线程指针;其中,线程指针,也即下文提及的rcu保护指针,为基于rcu机制保护的指针,且线程指针的值用于指向目标工作线程的地址。

22、由于要将异步任务提交至不同cpu核心上的工作线程来处理,基于rcu机制来实现对各工作线程的线程指针的并发保护,能够解决多用户进程提交异步任务的并发安全问题。

23、根据第一方面,或者以上第一方面的任意一种实现方式,电子设备将目标异步任务提交至目标工作线程,包括:电子设备基于rcu机制获取目标工作线程的线程指针值;电子设备根据目标工作线程的线程指针值,将目标异步任务提交至目标工作线程。

24、根据第一方面,或者以上第一方面的任意一种实现方式,异步任务包括针对文件系统的数据读取任务或数据更新任务。

本文档来自技高网...

【技术保护点】

1.一种任务提交方法,其特征在于,应用于电子设备中,包括:

2.根据权利要求1所述的方法,其特征在于,所述电子设备创建目标工作线程,并将所述目标工作线程绑定到目标CPU核心,包括:

3.根据权利要求1所述的方法,其特征在于,所述电子设备包括多个CPU核心,在所述多个CPU核心中,第一CPU核心的频率最低。

4.根据权利要求3所述的方法,其特征在于,所述电子设备创建目标工作线程,并将所述目标工作线程绑定到目标CPU核心,包括:

5.根据权利要求4所述的方法,其特征在于,在所述多个CPU核心中,还包括至少一个第二CPU核心,至少一个第三CPU核心,以及至少一个第四CPU核心;

6.根据权利要求5所述的方法,其特征在于,所述电子设备创建目标工作线程,并将所述目标工作线程绑定到目标CPU核心,包括:

7.根据权利要求6所述的方法,其特征在于,还包括:

8.根据权利要求7所述的方法,其特征在于,将所述目标异步任务提交至绑定到所述第二CPU核心或所述第三CPU核心上或所述第四CPU核心上的一个普通工作线程,包括:

9.根据权利要求1-8任一项所述的方法,其特征在于,在所述创建目标工作线程之后,还包括:

10.根据权利要求9所述的方法,其特征在于,将所述目标异步任务提交至目标工作线程,包括:

11.根据权利要求1-8任一项所述的方法,其特征在于,所述异步任务包括针对文件系统的数据读取任务或数据更新任务。

12.根据权利要求1所述的方法,其特征在于,所述目标异步任务为Linux内核原生机制中需要被提交至工作队列中的任务,所述工作队列不和CPU核心绑定。

13.一种电子设备,其特征在于,包括:

14.一种计算机可读存储介质,包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-12中任一项所述的任务提交方法。

...

【技术特征摘要】

1.一种任务提交方法,其特征在于,应用于电子设备中,包括:

2.根据权利要求1所述的方法,其特征在于,所述电子设备创建目标工作线程,并将所述目标工作线程绑定到目标cpu核心,包括:

3.根据权利要求1所述的方法,其特征在于,所述电子设备包括多个cpu核心,在所述多个cpu核心中,第一cpu核心的频率最低。

4.根据权利要求3所述的方法,其特征在于,所述电子设备创建目标工作线程,并将所述目标工作线程绑定到目标cpu核心,包括:

5.根据权利要求4所述的方法,其特征在于,在所述多个cpu核心中,还包括至少一个第二cpu核心,至少一个第三cpu核心,以及至少一个第四cpu核心;

6.根据权利要求5所述的方法,其特征在于,所述电子设备创建目标工作线程,并将所述目标工作线程绑定到目标cpu核心,包括:

7.根据权利要求6所述的方法,其特征在于,还包括:

8.根据权利要求7所...

【专利技术属性】
技术研发人员:王梓杰
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1