CN112667369A - 一种线程调度方法、装置、存储介质及电子设备 - Google Patents
一种线程调度方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN112667369A CN112667369A CN202010515083.3A CN202010515083A CN112667369A CN 112667369 A CN112667369 A CN 112667369A CN 202010515083 A CN202010515083 A CN 202010515083A CN 112667369 A CN112667369 A CN 112667369A
- Authority
- CN
- China
- Prior art keywords
- thread
- waveform
- priority
- low
- executed
- 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
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
本发明实施例公开了一种线程调度方法、装置、存储介质及电子设备。所述方法包括:当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级;按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;其中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。通过采用上述技术方案,能够井然有序地进行多线程的有效调用。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种线程调度方法、装置、存储介质及电子设备。
背景技术
通信波形对于实时性的要求一般都比较高,因此在SOC(System on Chip,片上系统)架构处理器上的通信波形通常都是运行在实时操作系统上。然而在SDR(SoftwareDefinition Radio,软件无线电)架构下存在多波形并发的场景,多个波形各自拥有一定数量的线程,这对操作系统如何有效的调度多波形的线程,提出了较高的要求。
相关技术中,对于抢占式线程调度策略,可能存在波形间线程优先级设置不平衡,造成属于某个波形的线程整体处于弱势,从而影响该波形的性能。对于轮转式调度策略,如何保证实时性要求,以及如何平衡不同波形对于处理器资源的需求,也是比较难解决的问题。因此,在SDR架构多波形并发场景下,提供一种有效的线程调度策略变得至关重要。
发明内容
本发明实施例提供一种线程调度方法、装置、存储介质及电子设备,能够有效地进行线程调度。
第一方面,本发明实施例提供了一种线程调度方法,该方法包括:
当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级;
按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;
其中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。
第二方面,本发明实施例还提供了一种线程调度装置,该装置包括:
优先级确定模块,用于当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级;
线程调用模块,用于按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;
其中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的线程调度方法。
第四方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的线程调度方法。
本发明实施例中提供的线程调度方案,当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级;按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;其中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。通过采用上述技术手段,能够井然有序地进行多线程的有效调用。
附图说明
图1为本发明实施例提供的一种线程调度方法的流程示意图;
图2为本发明实施例提供的线程优先级划分示意图;
图3为本发明实施例提供的处于就绪状态的低优先级波形线程组示意图;
图4为本发明实施例提供的另一种线程调度方法的流程示意图;
图5为本发明实施例提供的线程调度示意图;
图6为本发明实施例提供的一种线程调度装置的结构框图;
图7为本发明实施例提供的一种电子设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1为本发明实施例提供的一种线程调度方法的流程示意图,该方法可以由线程调度装置执行,其中该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图1所示,该方法包括:
步骤101、当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级。
在本发明实施例中,线程调度请求可以理解为某个处理器因当前空闲而发出的调度请求,线程调度程序接收该处理器发出的调度请求。当接收到线程调度请求时,获取待执行线程队列中各个待执行线程的优先级,其中,待执行线程队列中的线程可以理解为处于就绪状态的线程。示例性的,当接收到线程调度请求时,遍历待执行线程队列中的处于就绪状态的各个待执行线程,以获取各个待执行线程的优先级。例如,获取各个待执行线程的优先级标识,以确定各个待执行线程的优先级。又示例性的,获取预先存储的线程优先级列表,其中,线程优先级列表中包含有各个线程的优先级,从线程优先级列表中查找处于就绪状态的各个待执行线程的优先级。其中,线程的优先级反映了线程调用的先后顺序,线程的优先级越高,越先被调用,线程的优先级越低,越后被调用。
步骤102、按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。
在本发明实施例中,通过步骤101确定处于就绪状态的各个待执行线程的优先级后,按照优先级由高到低的顺序依次调用各个待执行线程,即优先调用优先级最高的待执行线程,再调用优先级较低的待执行线程,最后调用优先级最低的待执行线程。其中,待执行线程可以包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程。可以理解的是,按照线程创建者的不同,将线程分为系统线程和波形线程,其中,将由系统创建的线程记为系统线程,将由加载的波形创建的线程记为波形线程。然后,进一步的将系统线程划分为高优先级系统线程和低优先级系统线程,将波形线程划分为高优先级波形线程和低优先级波形线程。其中,高优先级系统线程和低优先级系统线程为系统保留线程,可以分别创建在高优先级系统线程区域和低优先级系统线程区域。高优先级波形线程和低优先级波形线程为波形创建线程,可以分别创建在高优先级波形线程区域和低优先级波形线程区域。可以理解的是,将线程区域划分为高优先级系统线程区域、高优先级波形线程区域、低优先级波形线程区域和低优先级系统线程区域,该四个线程区域分别用于存储高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程。可选的,每个波形拥有一个线程组,每个波形创建的所有线程属于该波形线程组,也即同一波形创建的线程属于同一波形线程组,不同波形创建的线程属于不同波形线程组。示例性的,图2为本发明实施例提供的线程优先级划分示意图。如图2所示,高优先级系统线程处于线程区间[0,X)内,高优先级波形线程处于线程区间[X,X+1)内,低优先级波形线程处于线程区间[X+1,Y)内,其中,低优先级波形线程包括波形A线程组和波形B线程组,低优先级系统线程处于线程区间[Y,Z)内。
示例性的,按照优先级由高到低的顺序依次调用各个待执行线程时,当待执行线程为系统线程(高优先级系统线程和低优先级系统线程)时,可直接从对应的线程区域调用系统线程,并进行响应。可选的,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。也即,当待执行线程为高优先级波形线程或低优先级波形线程时,按照预先设定的线程调用策略调用波形线程。示例性的,当待执行线程为波形线程时,可以按照先入先出的方式调用波形线程,也可以按照时间片轮转的方式调用波形线程。又示例性的,对于高优先级波形线程,可按照先进先出的方式调用高优先级波形线程,对于低优先级波形线程,可按照时间片轮转的方式调用低优先级波形线程。需要说明的是,本发明实施例对预先设定的线程调用策略不做限定。
本发明实施例中提供的线程调度方法,当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级;按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;其中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。通过采用上述技术手段,能够井然有序地进行多线程的有效调用。
在一些实施例中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程,包括:当待执行线程为高优先级波形线程时,获取高优先级波形线程队列;按照先入先出的方式依次调用所述高优先级波形线程队列中的各个高优先级波形线程。示例性的,当待执行线程为高优先级波形线程时,获取高优先级波形线程队列,可以理解的是,高优先级波形线程队列中包含有按照先后顺序依次进入的处于就绪状态的高优先级波形线程。按照先入先出的方式依次调用高优先级波形线程队列中的各个高优先级波形线程,可以理解的是,按照进入高优先级波形线程队列的先后顺序依次调用高优先级波形线程,也即先进入高优先级波形线程队列的高优先级波形线程优先被调用,后进入高优先级波形线程队列的高优先级波形线程后被调用。
在一些实施例中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程,包括:当待执行线程为低优先级波形线程时,基于波形加载的先后顺序轮转并依次调用对应的各个低优先级波形线程组;其中,各个低优先级波形线程组内包括至少一个波形线程,每个低优先级波形线程组内的各个波形线程属于被同一波形调用的线程。示例性的,当待执行线程为低优先级波形线程时,基于波形加载的先后顺序轮转并依次调用各个低优先级波形线程组,可以理解的是,基于波形加载的先后顺序依次调用加载的波形对应的低优先级波形线程组,当最后加载的波形对应的低优先级波形线程组调用完后,返回继续调用第一个加载波形对应的波形线程组。
可选的,当待执行线程为低优先级波形线程时,基于波形加载的先后顺序轮转并依次调用对应的各个低优先级波形线程组,包括:当待执行线程为低优先级波形线程时,确定各个波形对应的波形时间片;基于波形加载的先后顺序轮转,并在对应的波形时间片内依次调用对应的各个低优先级波形线程组。当待执行线程为低优先级波形线程时,确定各个波形对应的波形时间片,其中,波形时间片可以理解为调用该波形对应的波形线程组的时间长度。基于波形加载先后顺序轮转,并在对应的波形时间片内依次调用对应的低优先级波形线程组。也即,按照波形时间片以低优先级波形线程组为单位进行轮转,当调用一个低优先级波形线程组时,该低优先级波形线程组对应的时间片耗尽时,切换到调用下一个加载波形对应的低优先级波形线程组。其中,各个波形对应的波形时间片可以基于预先设定的波形时间片分配策略确定。
可选的,确定各个波形对应的波形时间片,包括:确定第一基本时间片和波形个数;将基本时间片与波形个数的比值作为各个波形对应的波形时间片。示例性的,确定第一基本时间片,其中,第一基本时间片可以理解为预先设定的调用一轮低优先级波形线程组所需时间,波形个数可以理解为加载的通信波形的数量。将第一基本时间片与波形个数的比值作为各个波形对应的波形时间片,也即波形时间片=基本时间片/波形个数N。这样设置的好处在于,可以使每个波形对应的波形时间片相同,从而保证各个低优先级波形线程组被调用时能够被平等对待,可以有效平衡波形间的性能需求,保证被加载的各个波形能够正常执行。
可选的,确定各个波形对应的波形时间片,包括:确定第二基本时间片和各个波形对应的波形占用比例;分别将所述第二基本时间片与各个波形对应的预定波形占用比例的乘积作为各个波形对应的波形时间片。其中,第二基本时间片可以理解为预先设定的调用一轮低优先级波形线程组所需时间,波形占用比例反映了波形的宽窄,间接反映了波形的重要程度,其中,波形占用比例越大,表明波形越重要。用户可以根据需要设定各个加载波形的波形占用比例。
可选的,确定各个波形对应的波形占用比例,包括:获取各个波形对应的波形复杂度;根据各个波形对应的波形复杂度计算各个波形对应的波形占用比例。考虑到波形的复杂度不同,为综合保证平衡性,可以设置波形复杂度,依据被加载的多个波形的复杂度,计算出各个加载波形的波形用比例。例如波形A复杂度为X,波形B复杂度为Y,当A、B波形被同时加载时,波形A的波形占用比例为则波形A对应的波形时间片为:
可选的,还可以按照各个波形实际运行情况动态调整各个波形对应的波形时间片。可选的,当检测到波形加载操作或波形卸载操作时,根据所述波形加载操作或波形卸载操作对各个波形对应的波形时间片进行动态调整。
在一些实施例中,在对应的波形时间片内依次调用对应的各个低优先级波形线程组,包括:针对各个低优先级波形线程组,确定所述低优先级波形线程组内各个波形线程的优先级;在波形时间片内按照各个波形线程的优先级由高到低的顺序依次调用所述低优先级波形线程组内的各个波形线程。示例性的,由于低优先级波形线程组内包含波形创建的多个线程,在调用低优先级波形线程组内的多个处于就绪状态的线程时,确定低优先级波形线程内各个波形线程的优先级,在波形时间片内按照各个波形线程的优先级由高到低的顺序依次调用低优先级波形线程组内的各个波形线程。
示例性的,针对低优先级波形线程组,在低优先级波形线程组对应的波形时间片内,低优先级波形线程组内的波形线程的调度按照优先级抢占式的调度策略执行。当线程调度发生时,从当前低优先级波形线程组内查询优先级最高的波形线程调用并执行。如果线程调度时,在当前低优先级波形线程组内所有波形线程都为挂起状态,则主动放弃当前低优先级波形线程组的剩余波形时间片,切换到下一低优先级波形线程组执行。如果调用当前低优先级波形线程组的波形时间片耗尽,则选择下一低优先级波形线程组调度。在进入下一低优先级波形线程组时,查询待执行低优先级波形线程组(下一优先级波形线程组)内优先级最高的波形线程调用并执行。若各波形就绪队列中均没有状态就绪的线程,则可转入低优先级系统线程执行。
可以理解的是,低优先级波形线程组内的波形线程的优先级是个相对值,即仅在本低优先级波形线程组内有效,而对其他低优先级波形线程组没有影响。图3为本发明实施例提供的处于就绪状态的低优先级波形线程组示意图。如图3所示,低优先级波形线程组包括波形A线程组和波形B线程组,其中,波形A线程组中的线程1和线程3处于就绪状态,波形B线程组中的线程2处于就绪状态。如果波形A线程组内的线程1挂起后,虽然波形B线程组内的线程2的优先级高于波形A线程组内的线程3,但是由于波形A的波形时间片仍未耗尽,所以切换到波形A线程组内的线程3调用并执行。若在线程3执行过程中,波形A的波形时间片耗尽,此时切换到波形B线程组内的线程2执行。线程2执行完后,虽然波形B对应的波形时间片未耗尽,但是由于波形B已无其他处于就绪状态的线程,因此可直接切换到波形A线程组内的线程进行调用并执行。
图4为本发明实施例提供的另一种线程调度方法的流程示意图,如图4所示,该方法包括如下步骤:
步骤401、当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级。
步骤402、按照优先级由高到低的顺序依次调用各个待执行线程;其中,待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程。
步骤403、当待执行线程为高优先级波形线程时,获取高优先级波形线程队列。
步骤404、按照先入先出的方式依次调用高优先级波形线程队列中的各个高优先级波形线程。
步骤405、当待执行线程为低优先级波形线程时,确定各个波形对应的波形时间片。
可选的,确定各个波形对应的波形时间片,包括:确定第一基本时间片和波形个数;将基本时间片与波形个数的比值作为各个波形对应的波形时间片。
可选的,确定各个波形对应的波形时间片,包括:确定第二基本时间片和各个波形对应的波形占用比例;分别将所述第二基本时间片与各个波形对应的预定波形占用比例的乘积作为各个波形对应的波形时间片。
可选的,确定各个波形对应的波形占用比例,包括:获取各个波形对应的波形复杂度;根据各个波形对应的波形复杂度计算各个波形对应的波形占用比例。
步骤406、基于波形加载的先后顺序轮转,并在对应的波形时间片内依次调用对应的各个低优先级波形线程组。
步骤407、针对各个低优先级波形线程组,确定低优先级波形线程组内各个波形线程的优先级。
步骤408、在波形时间片内按照各个波形线程的优先级由高到低的顺序依次调用低优先级波形线程组内的各个波形线程。
图5为本发明实施例提供的线程调度示意图。
本发明实施例中提供的线程调度方法,按照“优先级抢占+时间片轮转”的策略进行线程调度,整体上按照优先级高低调用线程,而对于高优先级波形线程按照先入先出的方式进行线程的调用,而对于低优先级波形线程,低优先级波形线程组之间按照时间片轮转的方式进行线程调度,而低优先级波形线程组内部又是按照优先级抢占的方式进行线程调度,在SDR平台多波形并发场景下,消除了多个波形之间的线程优先级设置的影响,保证了通信波形对于处理器资源的需求以及波形线程的实时性需求。
图6为本发明实施例提供的一种线程调度装置的结构框图,该装置可由软件和/或硬件实现,一般集成在电子设备中,可通过执行线程调度方法来进行线程调度。如图6所示,该装置包括:
优先级确定模块601,用于当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级;
线程调用模块602,用于按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;
其中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。
本发明实施例中提供的线程调度方案,当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级;按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;其中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。通过采用上述技术手段,能够井然有序地进行多线程的有效调用。
可选的,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程,包括:
当待执行线程为高优先级波形线程时,获取高优先级波形线程队列;
按照先入先出的方式依次调用所述高优先级波形线程队列中的各个高优先级波形线程。
可选的,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程,包括:
当待执行线程为低优先级波形线程时,基于波形加载的先后顺序轮转并依次调用对应的各个低优先级波形线程组;其中,各个低优先级波形线程组内包括至少一个波形线程,每个低优先级波形线程组内的各个波形线程属于被同一波形调用的线程。
可选的,当待执行线程为低优先级波形线程时,基于波形加载的先后顺序轮转并依次调用对应的各个低优先级波形线程组,包括:
当待执行线程为低优先级波形线程时,确定各个波形对应的波形时间片;
基于波形加载的先后顺序轮转,并在对应的波形时间片内依次调用对应的各个低优先级波形线程组。
可选的,确定各个波形对应的波形时间片,包括:
确定第一基本时间片和波形个数;
将基本时间片与波形个数的比值作为各个波形对应的波形时间片。
可选的,确定各个波形对应的波形时间片,包括:
确定第二基本时间片和各个波形对应的波形占用比例;
分别将所述第二基本时间片与各个波形对应的预定波形占用比例的乘积作为各个波形对应的波形时间片。
可选的,确定各个波形对应的波形占用比例,包括:
获取各个波形对应的波形复杂度;
根据各个波形对应的波形复杂度计算各个波形对应的波形占用比例。
可选的,所述装置还包括:
当检测到波形加载操作或波形卸载操作时,根据所述波形加载操作或波形卸载操作对各个波形对应的波形时间片进行动态调整。
可选的,在对应的波形时间片内依次调用对应的各个低优先级波形线程组,包括:
针对各个低优先级波形线程组,确定所述低优先级波形线程组内各个波形线程的优先级;
在波形时间片内按照各个波形线程的优先级由高到低的顺序依次调用所述低优先级波形线程组内的各个波形线程。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行线程调度方法,该方法包括:
当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级;
按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;
其中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的线程调度操作,还可以执行本发明任意实施例所提供的线程调度方法中的相关操作。
本发明实施例提供了一种电子设备,该电子设备中可集成本发明实施例提供的线程调度装置。图7为本发明实施例提供的一种电子设备的结构框图。电子设备700可以包括:存储器701,处理器702及存储在存储器701上并可在处理器运行的计算机程序,所述处理器702执行所述计算机程序时实现如本发明实施例所述的线程调度方法。
本发明实施例中提供的电子设备,当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级;按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;其中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。通过采用上述技术手段,能够井然有序地进行多线程的有效调用。
上述实施例中提供的线程调度装置、存储介质及电子设备可执行本发明任意实施例所提供的线程调度方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的线程调度方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (12)
1.一种线程调度方法,其特征在于,包括:
当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级;
按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;
其中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。
2.根据权利要求1所述的方法,其特征在于,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程,包括:
当待执行线程为高优先级波形线程时,获取高优先级波形线程队列;
按照先入先出的方式依次调用所述高优先级波形线程队列中的各个高优先级波形线程。
3.根据权利要求1所述的方法,其特征在于,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程,包括:
当待执行线程为低优先级波形线程时,基于波形加载的先后顺序轮转并依次调用对应的各个低优先级波形线程组;其中,各个低优先级波形线程组内包括至少一个波形线程,每个低优先级波形线程组内的各个波形线程属于被同一波形调用的线程。
4.根据权利要求3所述的方法,其特征在于,当待执行线程为低优先级波形线程时,基于波形加载的先后顺序轮转并依次调用对应的各个低优先级波形线程组,包括:
当待执行线程为低优先级波形线程时,确定各个波形对应的波形时间片;
基于波形加载的先后顺序轮转,并在对应的波形时间片内依次调用对应的各个低优先级波形线程组。
5.根据权利要求4所述的方法,其特征在于,确定各个波形对应的波形时间片,包括:
确定第一基本时间片和波形个数;
将基本时间片与波形个数的比值作为各个波形对应的波形时间片。
6.根据权利要求4所述的方法,其特征在于,确定各个波形对应的波形时间片,包括:
确定第二基本时间片和各个波形对应的波形占用比例;
分别将所述第二基本时间片与各个波形对应的预定波形占用比例的乘积作为各个波形对应的波形时间片。
7.根据权利要求6所述的方法,其特征在于,确定各个波形对应的波形占用比例,包括:
获取各个波形对应的波形复杂度;
根据各个波形对应的波形复杂度计算各个波形对应的波形占用比例。
8.根据权利要求4所述的方法,其特征在于,还包括:
当检测到波形加载操作或波形卸载操作时,根据所述波形加载操作或波形卸载操作对各个波形对应的波形时间片进行动态调整。
9.根据权利要求3所述的方法,其特征在于,在对应的波形时间片内依次调用对应的各个低优先级波形线程组,包括:
针对各个低优先级波形线程组,确定所述低优先级波形线程组内各个波形线程的优先级;
在波形时间片内按照各个波形线程的优先级由高到低的顺序依次调用所述低优先级波形线程组内的各个波形线程。
10.一种线程调度装置,其特征在于,包括:
优先级确定模块,用于当接收到线程调度请求时,确定处于就绪状态的各个待执行线程的优先级;
线程调用模块,用于按照优先级由高到低的顺序依次调用各个待执行线程;其中,所述待执行线程包括优先级逐级降低的高优先级系统线程、高优先级波形线程、低优先级波形线程和低优先级系统线程;
其中,当待执行线程为波形线程时,基于预先设定的线程调用策略调用波形线程。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9任一所述的线程调度方法。
12.一种电子设备,其特征在于,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-9任一所述的线程调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010515083.3A CN112667369A (zh) | 2020-06-08 | 2020-06-08 | 一种线程调度方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010515083.3A CN112667369A (zh) | 2020-06-08 | 2020-06-08 | 一种线程调度方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112667369A true CN112667369A (zh) | 2021-04-16 |
Family
ID=75403205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010515083.3A Pending CN112667369A (zh) | 2020-06-08 | 2020-06-08 | 一种线程调度方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667369A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060037020A1 (en) * | 2004-08-12 | 2006-02-16 | International Business Machines Corporation | Scheduling threads in a multiprocessor computer |
US20060130062A1 (en) * | 2004-12-14 | 2006-06-15 | International Business Machines Corporation | Scheduling threads in a multi-threaded computer |
CN1952898A (zh) * | 2005-03-14 | 2007-04-25 | Qnx软件操作系统公司 | 采用进程线程的自适应分区的进程调度程序 |
CN101009642A (zh) * | 2006-12-31 | 2007-08-01 | 华为技术有限公司 | 一种基于任务分组的资源分配方法和装置 |
CN101069161A (zh) * | 2004-12-01 | 2007-11-07 | 索尼计算机娱乐公司 | 调度方法、调度装置和多处理器系统 |
CN101324851A (zh) * | 2007-06-12 | 2008-12-17 | 华为技术有限公司 | 线程调度方法及其装置 |
CN103077086A (zh) * | 2013-01-09 | 2013-05-01 | 苏州亿倍信息技术有限公司 | 一种任务分配控制的方法及系统 |
CN105320571A (zh) * | 2015-11-27 | 2016-02-10 | 浪潮(北京)电子信息产业有限公司 | 一种进程调度方法 |
CN106293918A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种调度进程的方法、系统及计算机 |
CN106708618A (zh) * | 2017-01-20 | 2017-05-24 | 郑州云海信息技术有限公司 | 一种进程调度方法及装置 |
CN111367652A (zh) * | 2020-01-07 | 2020-07-03 | 苏州大学 | 一种嵌入式实时操作系统的任务调度处理系统和方法 |
-
2020
- 2020-06-08 CN CN202010515083.3A patent/CN112667369A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060037020A1 (en) * | 2004-08-12 | 2006-02-16 | International Business Machines Corporation | Scheduling threads in a multiprocessor computer |
CN101069161A (zh) * | 2004-12-01 | 2007-11-07 | 索尼计算机娱乐公司 | 调度方法、调度装置和多处理器系统 |
US20060130062A1 (en) * | 2004-12-14 | 2006-06-15 | International Business Machines Corporation | Scheduling threads in a multi-threaded computer |
CN1952898A (zh) * | 2005-03-14 | 2007-04-25 | Qnx软件操作系统公司 | 采用进程线程的自适应分区的进程调度程序 |
CN101009642A (zh) * | 2006-12-31 | 2007-08-01 | 华为技术有限公司 | 一种基于任务分组的资源分配方法和装置 |
CN101324851A (zh) * | 2007-06-12 | 2008-12-17 | 华为技术有限公司 | 线程调度方法及其装置 |
CN103077086A (zh) * | 2013-01-09 | 2013-05-01 | 苏州亿倍信息技术有限公司 | 一种任务分配控制的方法及系统 |
CN105320571A (zh) * | 2015-11-27 | 2016-02-10 | 浪潮(北京)电子信息产业有限公司 | 一种进程调度方法 |
CN106293918A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种调度进程的方法、系统及计算机 |
CN106708618A (zh) * | 2017-01-20 | 2017-05-24 | 郑州云海信息技术有限公司 | 一种进程调度方法及装置 |
CN111367652A (zh) * | 2020-01-07 | 2020-07-03 | 苏州大学 | 一种嵌入式实时操作系统的任务调度处理系统和方法 |
Non-Patent Citations (4)
Title |
---|
李晨熙 等: "《JavaTM语言入门》", 30 November 2011 * |
熊政 等: "Linux 2.6内核的Fair-Share 调度算法研究", 《湖北工业大学学报》 * |
许晓宁 等: "《Java技术使用教程》", 31 January 2005 * |
钟达: "基于多核并行处理器的SDR手持终端设计与研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ramos-Thuel et al. | On-line scheduling of hard deadline aperiodic tasks in fixed-priority systems | |
Sprunt et al. | Aperiodic task scheduling for hard-real-time systems | |
EP1538497B1 (en) | Distributed real time operating system | |
US7870554B2 (en) | Process scheduler employing ordering function to schedule threads running in multiple adaptive partitions | |
US9424093B2 (en) | Process scheduler employing adaptive partitioning of process threads | |
US7559062B2 (en) | Intelligent scheduler for multi-level exhaustive scheduling | |
US8505012B2 (en) | System and method for scheduling threads requesting immediate CPU resource in the indexed time slot | |
CN110489217A (zh) | 一种任务调度方法及系统 | |
US8239873B2 (en) | Speedy event processing | |
KR101638136B1 (ko) | 멀티 스레드 구조에서 작업 분배 시 스레드 간 락 경쟁을 최소화하는 방법 및 이를 사용한 장치 | |
US20040158831A1 (en) | Process scheduling appratus, process scheduling method, program for process scheduling, and storage medium recording a program for process scheduling | |
US7920282B2 (en) | Job preempt set generation for resource management | |
US7793293B2 (en) | Per processor set scheduling | |
CN115309519A (zh) | 基于时间触发机制的确定性任务调度编排方法、系统和存储介质 | |
US7743383B2 (en) | Adaptive cooperative scheduling | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
CN112579271A (zh) | 用于非实时操作系统的实时任务调度方法、模块、终端和存储介质 | |
Horowitz | A run-time execution model for referential integrity maintenance | |
US20060095910A1 (en) | Parallel traversal of a dynamic list | |
CN112667369A (zh) | 一种线程调度方法、装置、存储介质及电子设备 | |
JP2022550064A (ja) | マルチスレッドマイクロプロセッサにおける共有リソース割り当て | |
Bharathi et al. | Comprehensive Analysis OF CPU Scheduling Algorithms | |
US7793295B2 (en) | Setting bandwidth limiter and adjusting execution cycle of second device using one of the GBL classes selected based on priority of task from first device | |
CN112395054A (zh) | 一种线程调度方法、装置及系统 | |
US7444316B1 (en) | Method for scheduling jobs using distributed utility-based preemption policies |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210416 |
|
RJ01 | Rejection of invention patent application after publication |