CN103488536B - Method for scheduling task, device and operating system - Google Patents
Method for scheduling task, device and operating system Download PDFInfo
- Publication number
- CN103488536B CN103488536B CN201310454952.6A CN201310454952A CN103488536B CN 103488536 B CN103488536 B CN 103488536B CN 201310454952 A CN201310454952 A CN 201310454952A CN 103488536 B CN103488536 B CN 103488536B
- Authority
- CN
- China
- Prior art keywords
- task
- subtask
- index list
- task scheduling
- scheduling
- 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.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种任务调度方法、装置及操作系统,本发明方法,包括:根据任务中包括的所有子任务,注册生成任务调度索引列表;确定用户程序调度所述任务时需要调度执行的子任务;根据所述用户程序调度所述任务时需要调度执行的子任务,更新所述任务调度索引列表以使所述任务调度索引列表只包括所述用户程序调度所述任务时需要调度执行的子任务;调度执行更新后的任务调度索引列表中的各子任务以完成所述用户程序调度所述任务。本发明实施例,通过确定用户程序调度任务需要调度执行的子任务以及更新任务调度索引列表,以实现任务动态调度,不再调度执行无需执行的子任务,以实现减少无用开销,降低CPU负载和系统功耗的目的。
Embodiments of the present invention provide a task scheduling method, device, and operating system. The method of the present invention includes: registering and generating a task scheduling index list according to all subtasks included in the task; Subtasks: according to the subtasks that need to be scheduled for execution when the user program schedules the task, update the task scheduling index list so that the task scheduling index list only includes the subtasks that need to be scheduled for execution when the user program schedules the task Subtasks: scheduling and executing each subtask in the updated task scheduling index list to complete the task scheduled by the user program. In the embodiment of the present invention, by determining the subtasks that need to be scheduled and executed by the user program scheduling task and updating the task scheduling index list, dynamic scheduling of tasks is realized, and subtasks that do not need to be executed are no longer scheduled and executed, so as to reduce useless overhead, reduce CPU load and system power consumption purposes.
Description
技术领域technical field
本发明实施例涉及计算机操作系统技术,尤其涉及一种任务调度方法、装置及操作系统。The embodiment of the present invention relates to computer operating system technology, and in particular to a task scheduling method, device and operating system.
背景技术Background technique
在电子设备领域,功耗是一个非常重要的指标,而处理器CPU负载的高低,直接会影响整个系统的功耗。对于一款产品,为了提升竞争力,会对硬件资源,如CPU频率、总线频率、双倍速率同步动态随机存储器DDR频率等做一些限制,因此在有限的CPU资源中如何降低CPU关键指标,比如平均负载以及峰值负载,是降低产品功耗的重要技术手段。In the field of electronic equipment, power consumption is a very important indicator, and the CPU load of the processor will directly affect the power consumption of the entire system. For a product, in order to enhance competitiveness, some restrictions will be imposed on hardware resources, such as CPU frequency, bus frequency, double-rate synchronous dynamic random access memory DDR frequency, etc. Therefore, how to reduce key CPU indicators in limited CPU resources, such as Average load and peak load are important technical means to reduce product power consumption.
现有技术中,CPU处理任务是串行调度的,即任务程序编译好以后,任务调度执行的顺序是静态的,固定不变的。比如,图1为现有技术中的任务调度顺序示意图,如图1所示,一个中断处理任务中包含多个子任务FUN_1、FUN_2、FUN_3、FUN_4...FUN_X,当调用中断处理任务时,则需要顺序执行所有的子任务。In the prior art, CPU processing tasks are scheduled serially, that is, after the task program is compiled, the sequence of task scheduling execution is static and fixed. For example, FIG. 1 is a schematic diagram of task scheduling sequence in the prior art. As shown in FIG. 1 , an interrupt processing task includes multiple subtasks FUN_1, FUN_2, FUN_3, FUN_4...FUN_X, when the interrupt processing task is called, then All subtasks need to be executed sequentially.
而在用户程序调用某个任务时,并不是所有的子任务都是需要执行调用的,比如图1中的子任务FUN_1、FUN_3和FUN_4。但由于现有的任务调度是静态顺序执行的,因此在调度任务过程中,即使存在不需要执行的子任务也需要调度执行如压栈、退栈以及条件判决等操作,从而导致调度存在无用调度开销,增加了CPU负载和系统功耗。When a user program calls a certain task, not all subtasks need to be called, such as the subtasks FUN_1, FUN_3 and FUN_4 in FIG. 1 . However, because the existing task scheduling is executed in a static order, even if there are subtasks that do not need to be executed, operations such as stack pushing, unstacking, and conditional judgment need to be scheduled in the process of scheduling tasks, resulting in useless scheduling. overhead, increasing CPU load and system power consumption.
发明内容Contents of the invention
本发明实施例提供一种任务调度方法、装置及操作系统,以实现用户程序调用某个任务时绕过任务中不需要调度执行的子任务,从而降低CPU负载和系统功耗的目的。Embodiments of the present invention provide a task scheduling method, device, and operating system to achieve the purpose of bypassing subtasks in the task that do not need to be scheduled for execution when a user program calls a certain task, thereby reducing CPU load and system power consumption.
第一方面,本发明实施例提供一种任务调度方法,包括:In a first aspect, an embodiment of the present invention provides a task scheduling method, including:
根据任务中包括的所有子任务,注册生成任务调度索引列表,所述任务调度索引列表至少包括各子任务的索引以及各子任务对应的函数入口地址指针;According to all subtasks included in the task, register and generate a task scheduling index list, the task scheduling index list at least includes the index of each subtask and the function entry address pointer corresponding to each subtask;
确定用户程序调度所述任务时需要调度执行的子任务;Determine the subtasks that need to be scheduled for execution when the user program schedules the task;
根据所述用户程序调度所述任务时需要调度执行的子任务,更新所述任务调度索引列表以使所述任务调度索引列表只包括所述用户程序调度所述任务时需要调度执行的子任务;According to the subtasks that need to be scheduled for execution when the user program schedules the task, update the task scheduling index list so that the task scheduling index list only includes the subtasks that need to be scheduled for execution when the user program schedules the task;
调度执行更新后的任务调度索引列表中的各子任务以完成所述用户程序调度所述任务。Scheduling and executing each subtask in the updated task scheduling index list to complete the scheduling of the task by the user program.
在第一方面第一种可能的实现方式中,所述调度执行更新后的任务调度索引列表中的各子任务以完成所述用户程序调度所述任务,包括:In a first possible implementation manner of the first aspect, the scheduling executes each subtask in the updated task scheduling index list to complete the user program scheduling the task, including:
根据所述更新后的任务调度索引列表中的各子任务的索引从第一个子任务开始顺序跳转到各子任务对应的函数入口指针地址处执行各子任务代码程序,若执行的函数入口指针地址为空,则退出所述任务调度。According to the index of each subtask in the task scheduling index list after the update, jump to the function entry pointer address corresponding to each subtask in sequence from the first subtask to execute each subtask code program, if the executed function entry If the pointer address is empty, exit the task scheduling.
结合第一方面或第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述根据任务中包括的所有子任务,注册生成任务调度索引列表,包括:With reference to the first aspect or the first possible implementation of the first aspect, in the second possible implementation of the first aspect, the registration and generation of the task scheduling index list according to all subtasks included in the task includes:
根据所述任务中包括的各子任务的执行顺序,生成所述任务调度索引列表中的各子任务的索引号,以使各子任务的执行顺序与各子任务的索引号顺序保持一致;According to the execution order of each subtask included in the task, generate the index number of each subtask in the task scheduling index list, so that the execution order of each subtask is consistent with the order of the index number of each subtask;
依据所述各子任务的索引号顺序注册生成任务调度索引列表。A task scheduling index list is generated according to the sequence registration of the index numbers of the subtasks.
结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述根据所述用户程序调度所述任务时需要调度执行的子任务,更新所述任务调度索引列表以使所述任务调度索引列表只包括所述用户程序调度所述任务时需要调度执行的子任务,包括:With reference to the second possible implementation of the first aspect, in the third possible implementation of the first aspect, the subtasks that need to be scheduled for execution when scheduling the task according to the user program are updated to update the task scheduling index list so that the task scheduling index list only includes subtasks that need to be scheduled for execution when the user program schedules the task, including:
若所述任务调度索引列表中存在所述用户程序调度所述任务时不需要调度执行的子任务,则将所述子任务从所述任务调度索引列表中删除,并对其余的全部子任务基于各子任务的索引号进行重新顺序排序;或,If there are subtasks in the task scheduling index list that do not need to be scheduled for execution when the user program schedules the task, then delete the subtasks from the task scheduling index list, and perform all remaining subtasks based on The index numbers of the subtasks are reordered; or,
若所述任务调度索引列表中不存在所述用户程序调度所述任务时需要调度执行的子任务,则将所述子任务注册增加到所述任务调度索引列表中,并对全部的子任务基于各子任务的索引号进行重新顺序排序。If there is no subtask that needs to be scheduled for execution when the user program schedules the task in the task scheduling index list, add the subtask registration to the task scheduling index list, and base all subtasks on the basis of The index numbers of each subtask are reordered.
结合第一方面、第一方面第一种至第三种可能的实现方式,在第一方面第四种可能的实现方式中,所述各子任务的索引为所述各子任务的对应的函数入口地址。In combination with the first aspect and the first to third possible implementations of the first aspect, in the fourth possible implementation of the first aspect, the index of each subtask is the corresponding function of each subtask Entry address.
结合第一方面、第一方面第一种至第四种可能的实现方式,在第一方面第五种可能的实现方式中,所述任务为系统中周期性执行的任务。With reference to the first aspect and the first to fourth possible implementation manners of the first aspect, in a fifth possible implementation manner of the first aspect, the task is a task executed periodically in the system.
第二方面,本发明实施例提供一种任务调度装置,包括:In a second aspect, an embodiment of the present invention provides a task scheduling device, including:
注册生成模块,用于根据任务中包括的所有子任务,注册生成任务调度索引列表,所述任务调度索引列表至少包括各子任务的索引以及各子任务对应的函数入口地址指针;The registration generation module is used to register and generate a task scheduling index list according to all subtasks included in the task, and the task scheduling index list includes at least the index of each subtask and the function entry address pointer corresponding to each subtask;
确定子任务模块,用于确定用户程序调度所述任务时需要调度执行的子任务;A determining subtask module, configured to determine the subtasks that need to be scheduled for execution when the user program schedules the task;
更新任务调度索引列表模块,用于根据所述用户程序调度所述任务时需要调度执行的子任务,更新所述任务调度索引列表以使所述任务调度索引列表只包括所述用户程序调度所述任务时需要调度执行的子任务;An update task scheduling index list module, configured to schedule subtasks that need to be executed when scheduling the task according to the user program, and update the task scheduling index list so that the task scheduling index list only includes the subtasks scheduled by the user program. Subtasks that need to be scheduled for execution during the task;
调度执行模块,用于调度执行更新后的任务调度索引列表中的各子任务以完成所述用户程序调度所述任务。The scheduling execution module is configured to schedule and execute each subtask in the updated task scheduling index list to complete the task scheduled by the user program.
在第二方面第一种可能的实现方式中,所述调度执行模块,具体用于:In the first possible implementation manner of the second aspect, the scheduling execution module is specifically configured to:
根据所述更新后的任务调度索引列表中的各子任务的索引从第一个子任务开始顺序跳转到各子任务对应的函数入口指针地址处执行各子任务代码程序,若执行的函数入口指针地址为空,则退出所述任务调度。According to the index of each subtask in the task scheduling index list after the update, jump to the function entry pointer address corresponding to each subtask in sequence from the first subtask to execute each subtask code program, if the executed function entry If the pointer address is empty, exit the task scheduling.
结合第二方面或第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述注册生成模块,包括:With reference to the second aspect or the first possible implementation manner of the second aspect, in the second possible implementation manner of the second aspect, the registration generation module includes:
生成索引单元,用于根据所述任务中包括的各子任务的执行顺序,生成所述任务调度索引列表中的各子任务的索引号,以使各子任务的执行顺序与各子任务的索引号顺序保持一致;An index generation unit, configured to generate the index number of each subtask in the task scheduling index list according to the execution order of each subtask included in the task, so that the execution order of each subtask is consistent with the index number of each subtask The order of numbers remains the same;
生成任务调度索引列表单元,用于依据所述各子任务的索引号顺序注册生成任务调度索引列表。A task scheduling index list generation unit is configured to register and generate a task scheduling index list according to the order of the index numbers of the subtasks.
结合第二方面第二种可能的实现方式,在第二方面第三种可能的实现方式中,所述更新任务调度索引列表模块,具体用于:With reference to the second possible implementation of the second aspect, in the third possible implementation of the second aspect, the module for updating the task scheduling index list is specifically used for:
若所述任务调度索引列表中存在所述用户程序调度所述任务时不需要调度执行的子任务,则将所述子任务从所述任务调度索引列表中删除,并对其余的全部子任务基于各子任务的索引号进行重新顺序排序;或,If there are subtasks in the task scheduling index list that do not need to be scheduled for execution when the user program schedules the task, then delete the subtasks from the task scheduling index list, and perform all remaining subtasks based on The index numbers of the subtasks are reordered; or,
若所述任务调度索引列表中不存在所述用户程序调度所述任务时需要调度执行的子任务,则将所述子任务注册增加到所述任务调度索引列表中,并对全部的子任务基于各子任务的索引号进行重新顺序排序。If there is no subtask that needs to be scheduled for execution when the user program schedules the task in the task scheduling index list, add the subtask registration to the task scheduling index list, and base all subtasks on the basis of The index numbers of each subtask are reordered.
结合第二方面、第二方面第一种至第三种可能的实现方式,在第二方面第四种可能的实现方式中,所述各子任务的索引为所述各子任务的对应的函数入口地址。In combination with the second aspect and the first to third possible implementations of the second aspect, in the fourth possible implementation of the second aspect, the index of each subtask is the corresponding function of each subtask Entry address.
结合第二方面、第二方面第一种至第四种可能的实现方式,在第二方面第五种可能的实现方式中,所述任务为系统中周期性执行的任务。With reference to the second aspect and the first to fourth possible implementation manners of the second aspect, in a fifth possible implementation manner of the second aspect, the task is a task periodically executed in the system.
第三方面,本发明实施例提供一种操作系统,包括第二方面、第二方面第一种至第五种任意可能的实现方式中的一种任务调度装置。In a third aspect, an embodiment of the present invention provides an operating system, including the second aspect, and a task scheduling device in any possible implementation manners from the first to the fifth aspects of the second aspect.
本发明实施例通过确定用户程序调度任务需要调度执行的子任务以及更新任务调度索引列表,以实现任务动态调度,无需执行的子任务不调度执行,以实现减少无用开销,降低CPU负载和系统功耗的目的。The embodiment of the present invention realizes task dynamic scheduling by determining the subtasks that need to be scheduled and executed by the user program scheduling task and updating the task scheduling index list. consumption purpose.
附图说明Description of drawings
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings that need to be used in the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description These are some embodiments of the present invention. For those skilled in the art, other drawings can also be obtained according to these drawings without any creative effort.
图1为现有技术中的任务调度顺序示意图;FIG. 1 is a schematic diagram of a task scheduling sequence in the prior art;
图2为本发明一种任务调度方法实施例一的流程图;FIG. 2 is a flow chart of Embodiment 1 of a task scheduling method of the present invention;
图3为图2中注册生成的任务调度索引列表示意图;FIG. 3 is a schematic diagram of a task scheduling index list generated by registration in FIG. 2;
图4为图2中更新的任务调度索引列表示意图;FIG. 4 is a schematic diagram of an updated task scheduling index list in FIG. 2;
图5为本发明一种任务调度方法实施例二的流程图;FIG. 5 is a flowchart of Embodiment 2 of a task scheduling method of the present invention;
图6为本发明一种任务调度装置实施例一的结构图;FIG. 6 is a structural diagram of Embodiment 1 of a task scheduling device according to the present invention;
图7为本发明一种任务调度装置实施例二的结构图;7 is a structural diagram of Embodiment 2 of a task scheduling device according to the present invention;
图8为本发明一种操作系统实施例一的架构图;FIG. 8 is a structure diagram of Embodiment 1 of an operating system of the present invention;
图9为图8的软件调度架构图。FIG. 9 is a software scheduling architecture diagram of FIG. 8 .
具体实施方式detailed description
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。In order to make the purpose, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments It is a part of embodiments of the present invention, but not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by persons of ordinary skill in the art without creative efforts fall within the protection scope of the present invention.
实施例1Example 1
图2为本发明一种任务调度方法实施例一的流程图,本方法的执行主体是任务调度装置,该装置可以置于操作系统中,如Linux,Windows,Solaris和VxWorks等。如图2所示,该方法具体包括:FIG. 2 is a flow chart of Embodiment 1 of a task scheduling method of the present invention. The execution subject of this method is a task scheduling device, which can be placed in an operating system, such as Linux, Windows, Solaris, and VxWorks. As shown in Figure 2, the method specifically includes:
步骤201、根据任务中包括的所有子任务,注册生成任务调度索引列表,所述任务调度索引列表至少包括各子任务的索引以及各子任务对应的函数入口地址指针;Step 201, register and generate a task scheduling index list according to all subtasks included in the task, and the task scheduling index list includes at least the index of each subtask and the function entry address pointer corresponding to each subtask;
本步骤中,子任务为任务函数中的子函数。任务调度索引表存放在内存中,实现时可以统一申请空间并维护,也可以各具体业务模块来维护。In this step, the subtask is a subfunction in the task function. The task scheduling index table is stored in the memory, and the space can be uniformly applied for and maintained during implementation, or can be maintained by each specific business module.
图3为图2中注册生成的任务调度索引列表示意图,如图3所示,若任务中包括多个子任务FUN_1、FUN_2、FUN_3、FUN_4...FUN_X,则注册生成的任务调度索引列表中包括以上述子任务的索引(比如1,2,3...X)和对应的函数入口地址指针(比如FunPtr_1,FunPtr_2,FunPtr_3,FunPtr_4...FunPtr_X)。Figure 3 is a schematic diagram of the task scheduling index list generated by registration in Figure 2. As shown in Figure 3, if the task includes multiple subtasks FUN_1, FUN_2, FUN_3, FUN_4...FUN_X, the task scheduling index list generated by registration includes Take the index of the above subtask (such as 1, 2, 3...X) and the corresponding function entry address pointer (such as FunPtr_1, FunPtr_2, FunPtr_3, FunPtr_4...FunPtr_X).
步骤202、确定用户程序调度所述任务时需要调度执行的子任务;Step 202, determining the subtasks that need to be scheduled for execution when the user program schedules the task;
比如确定某个用户程序在调用图3中的任务时,只需要调用其中的FUN_1和FUN_X两个子任务。For example, when it is determined that a certain user program calls the task in Figure 3, it only needs to call the two subtasks FUN_1 and FUN_X.
步骤203、根据所述用户程序调度所述任务时需要调度执行的子任务,更新所述任务调度索引列表以使所述任务调度索引列表只包括所述用户程序调度所述任务时需要调度执行的子任务;Step 203: According to the subtasks that need to be scheduled for execution when the user program schedules the task, update the task scheduling index list so that the task scheduling index list only includes the subtasks that need to be scheduled for execution when the user program schedules the task Subtasks;
本步骤中,在注册生成的任务调度索引列表的基础上,基于步骤202确定的用户程序调度所述任务时需要调度执行的子任务,对任务调度索引列表进行更新。比如,图4为图2中更新的任务调度索引列表示意图,如图4所示,在某用户程序调用任务时,只需要调用FUN_1和FUN_X两个子任务,因此,将注册生成的任务调度索引列表进行更新,只保留FUN_1和FUN_X两个子任务的相关信息。In this step, on the basis of registering the generated task scheduling index list, the task scheduling index list is updated based on the subtasks determined in step 202 that need to be scheduled for execution when the user program schedules the task. For example, Figure 4 is a schematic diagram of the updated task scheduling index list in Figure 2. As shown in Figure 4, when a user program calls a task, only two subtasks, FUN_1 and FUN_X, need to be called, so the generated task scheduling index list will be registered To update, only keep the relevant information of the two subtasks FUN_1 and FUN_X.
步骤204、调度执行更新后的任务调度索引列表中的各子任务以完成所述用户程序调度所述任务。Step 204, schedule and execute each subtask in the updated task scheduling index list to complete the task scheduled by the user program.
相对于现有技术中,某个用户程序调度某个任务时,需要调度此任务的全部子任务,本发明实施例通过确定用户程序调度任务需要调度执行的子任务以及更新任务调度索引列表,直接按照更新后的任务调度索引列表的顺序执行所需的子任务,无需查询就能直接执行所需的子任务。从而实现任务动态调度,无需执行的子任务不调度执行,以实现减少无用调度产生的开销,降低CPU负载和系统功耗的目的。Compared with the prior art, when a user program schedules a certain task, all subtasks of the task need to be scheduled. The embodiment of the present invention directly The required subtasks are executed in the order of the updated task scheduling index list, and the required subtasks can be directly executed without query. In this way, dynamic scheduling of tasks is realized, and subtasks that do not need to be executed are not scheduled for execution, so as to achieve the purpose of reducing the overhead caused by useless scheduling, reducing CPU load and system power consumption.
优先地,在上述实施例的基础上,所述任务为系统中周期性执行的任务。对于每个周期性任务,都会有独立的任务入口(如中断入口函数、消息处理函数等)。以WCDMA系统为例,一般都会有协议层、物理层以及底层空口等模块。对于物理层模块而言,需要频繁处理周期性任务:如2ms子帧任务、测量、搜索、译码等任务。Preferably, on the basis of the above embodiments, the task is a task executed periodically in the system. For each periodic task, there will be an independent task entry (such as interrupt entry function, message processing function, etc.). Taking the WCDMA system as an example, there are generally modules such as the protocol layer, the physical layer, and the underlying air interface. For the physical layer module, periodic tasks need to be processed frequently: tasks such as 2ms subframe tasks, measurement, search, and decoding.
周期性执行的任务需要频繁调用,系统资源占用最大,如果采用本实施例的技术方案,将会有效地降低CPU负载和系统功耗,因此,调用周期越频繁的任务,本实施例的技术方案带来的技术效果会越大。Periodically executed tasks need to be called frequently and occupy the largest system resources. If the technical solution of this embodiment is adopted, the CPU load and system power consumption will be effectively reduced. Therefore, the more frequent tasks are called, the technical solution of this embodiment The greater the technical effect will be.
实施例2Example 2
图5为本发明一种任务调度方法实施例二的流程图,如图5所示,具体包括:Fig. 5 is a flow chart of Embodiment 2 of a task scheduling method of the present invention, as shown in Fig. 5 , specifically including:
步骤501、根据所述任务中包括的各子任务的执行顺序,生成所述任务调度索引列表中的各子任务的索引号,以使各子任务的执行顺序与各子任务的索引号顺序保持一致;Step 501, according to the execution order of each subtask included in the task, generate the index number of each subtask in the task scheduling index list, so that the execution order of each subtask and the order of the index number of each subtask are maintained consistent;
根据所述任务中包括的各子任务的执行顺序生成任务调度索引列表中的各子任务的索引号,以保证执行顺序和静态编译好时的任务的相对顺序保持一致,因此在执行时不会因为顺序不一致导致破坏软件逻辑的一致性。Generate the index number of each subtask in the task scheduling index list according to the execution order of each subtask included in the task, so as to ensure that the execution order is consistent with the relative order of the tasks when statically compiled, so there will be no problem during execution Because the order is inconsistent, the consistency of the software logic is broken.
步骤502、依据所述各子任务的索引号顺序注册生成任务调度索引列表,所述任务调度索引列表至少包括各子任务的索引以及各子任务对应的函数入口地址指针;Step 502: Register and generate a task scheduling index list according to the index numbers of the subtasks in sequence, and the task scheduling index list includes at least the index of each subtask and the function entry address pointer corresponding to each subtask;
步骤503、确定用户程序调度所述任务时需要调度执行的子任务;Step 503, determining the subtasks that need to be scheduled for execution when the user program schedules the task;
步骤504、若所述任务调度索引列表中存在所述用户程序调度所述任务时不需要调度执行的子任务,则将所述子任务从所述任务调度索引列表中删除,并对其余的全部子任务基于各子任务的索引号进行重新顺序排序;Step 504: If there are subtasks in the task scheduling index list that do not need to be scheduled for execution when the user program schedules the task, delete the subtasks from the task scheduling index list, and Subtasks are reordered based on the index number of each subtask;
以宽带码分多址(wideband CDMA,简称WCDMA)系统中的2ms子帧任务为例,可以设置下面的删除函数:Taking the 2ms subframe task in the wideband code division multiple access (wideband CDMA, WCDMA for short) system as an example, the following deletion function can be set:
void DEMO_Del_Wcdma2msTask(int SubFrameIndex,void*pFun);void DEMO_Del_Wcdma2msTask(int SubFrameIndex, void *pFun);
功能描述:删除2ms周期性任务Function description: delete 2ms periodic tasks
参数说明:int SubFrameIndex-----子帧索引:0~4Parameter description: int SubFrameIndex-----subframe index: 0~4
void*pFun-----任务入口(函数指针)void*pFun-----task entry (function pointer)
实现细节:1、找到对应2ms子帧“任务调度索引表”;Implementation details: 1. Find the "task scheduling index table" corresponding to the 2ms subframe;
2、删除子任务,把函数指针从“任务调度索引表”删除;2. Delete the subtask and delete the function pointer from the "task scheduling index table";
3、后续任务逐个提前,结尾处置NULL(空指针)。3. Subsequent tasks are advanced one by one, and NULL (null pointer) is processed at the end.
可选地,本步骤中,若所述任务调度索引列表中不存在所述用户程序调度所述任务时需要调度执行的子任务,则将所述子任务注册增加到所述任务调度索引列表中,并对全部的子任务基于各子任务的索引号进行重新顺序排序。以WCDMA系统中的2ms子帧任务为例,可以设置下面的添加函数:Optionally, in this step, if there is no subtask that needs to be scheduled for execution when the user program schedules the task in the task scheduling index list, add the subtask registration to the task scheduling index list , and reorder all the subtasks based on the index number of each subtask. Taking the 2ms subframe task in the WCDMA system as an example, the following addition function can be set:
void DEMO_Add_Wcdma2msTask(int SubFrameIndex,void*pFun);void DEMO_Add_Wcdma2msTask(int SubFrameIndex, void *pFun);
功能描述:添加2ms周期性任务Function description: Add 2ms periodic tasks
参数说明:int SubFrameIndex-----子帧索引:0~4Parameter description: int SubFrameIndex-----subframe index: 0~4
void*pFun-----任务入口(函数指针)void*pFun-----task entry (function pointer)
实现细节:1、找到对应2ms子帧“任务调度索引表”;Implementation details: 1. Find the "task scheduling index table" corresponding to the 2ms subframe;
2、添加子任务,把函数指针添加到“任务调度索引表”;2. Add subtasks and add function pointers to the "task scheduling index table";
3、对任务按照静态编译顺序排序。3. Sort the tasks according to the static compilation order.
优选地,所述各子任务的索引也可以直接使用所述各子任务的对应的函数入口地址,因为软件编译后,每个函数入口都有一个唯一的入口指针,并且各任务入口指针不会重复,既满足了排序需求,同时也满足了用函数入口指针做索引的需求。Preferably, the index of each subtask can also directly use the corresponding function entry address of each subtask, because after the software is compiled, each function entry has a unique entry pointer, and each task entry pointer will not Repetition not only satisfies the sorting requirement, but also satisfies the requirement of using the function entry pointer as an index.
步骤505、根据所述更新后的任务调度索引列表中的各子任务的索引从第一个子任务开始顺序跳转到各子任务对应的函数入口指针地址处执行各子任务代码程序;Step 505, according to the index of each subtask in the updated task scheduling index list, jump sequentially from the first subtask to the function entry pointer address corresponding to each subtask to execute each subtask code program;
步骤506、执行的函数入口指针地址为空;Step 506, the executed function entry pointer address is empty;
判断顺序执行的各子任务对应的函数入口指针地址是否为空,若为空,则说明用户程序执行时调用的子任务已经执行完毕,执行步骤507;若地址不为空,则继续执行步骤505。Determine whether the function entry pointer address corresponding to each subtask executed in sequence is empty, if it is empty, it means that the subtask called when the user program is executed has been executed, and step 507 is executed; if the address is not empty, then step 505 is continued .
步骤507、退出所述任务调度。Step 507, exit the task scheduling.
本实施例,通过确定用户程序调用时需要调度执行的子函数,并通过添加和删除任务调度索引列表中的子任务,实现任务动态调度,可增加、删除任务。且无需调用的无用子任务开销,降低CPU负载,减少了对产品硬件的需求,同时也减少了系统功耗。In this embodiment, by determining the sub-functions that need to be scheduled for execution when the user program is called, and by adding and deleting sub-tasks in the task scheduling index list, dynamic scheduling of tasks is realized, and tasks can be added and deleted. And there is no need to call useless subtask overhead, reduce CPU load, reduce the demand for product hardware, and also reduce system power consumption.
实施例3Example 3
图6为本发明一种任务调度装置实施例一的结构图,如图6所示,该装置60包括:FIG. 6 is a structural diagram of Embodiment 1 of a task scheduling device according to the present invention. As shown in FIG. 6, the device 60 includes:
注册生成模块61,用于根据任务中包括的所有子任务,注册生成任务调度索引列表,所述任务调度索引列表至少包括各子任务的索引以及各子任务对应的函数入口地址指针;The registration generation module 61 is configured to register and generate a task scheduling index list according to all subtasks included in the task, and the task scheduling index list includes at least the index of each subtask and the function entry address pointer corresponding to each subtask;
确定子任务模块62,用于确定用户程序调度所述任务时需要调度执行的子任务;Determine the subtask module 62, configured to determine the subtasks that need to be scheduled for execution when the user program schedules the task;
更新任务调度索引列表模块63,用于根据所述用户程序调度所述任务时需要调度执行的子任务,更新所述任务调度索引列表以使所述任务调度索引列表只包括所述用户程序调度所述任务时需要调度执行的子任务;The update task scheduling index list module 63 is configured to update the task scheduling index list so that the task scheduling index list only includes the subtasks scheduled for execution by the user program when scheduling the task. Subtasks that need to be scheduled for execution when describing tasks;
调度执行模块64,用于调度执行更新后的任务调度索引列表中的各子任务以完成所述用户程序调度所述任务。The scheduling execution module 64 is configured to schedule and execute each subtask in the updated task scheduling index list to complete the task scheduled by the user program.
本实施例的装置,用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。The device of this embodiment is used to implement the technical solution of the method embodiment shown in FIG. 2 , and its implementation principle and technical effect are similar, and details are not repeated here.
实施例4Example 4
图7为本发明一种任务调度装置实施例二的结构图,如图7所示,该装置70在上一实施例的基础上,进一步地,所述调度执行模块64,具体用于:FIG. 7 is a structural diagram of Embodiment 2 of a task scheduling device according to the present invention. As shown in FIG. 7 , the device 70 is based on the previous embodiment, and further, the scheduling execution module 64 is specifically used for:
根据所述更新后的任务调度索引列表中的各子任务的索引从第一个子任务开始顺序跳转到各子任务对应的函数入口指针地址处执行各子任务代码程序,若执行的函数入口指针地址为空,则退出所述任务调度。According to the index of each subtask in the task scheduling index list after the update, jump to the function entry pointer address corresponding to each subtask in sequence from the first subtask to execute each subtask code program, if the executed function entry If the pointer address is empty, exit the task scheduling.
所述注册生成模块61,包括:The registration generating module 61 includes:
生成索引单元71,用于根据所述任务中包括的各子任务的执行顺序,生成所述任务调度索引列表中的各子任务的索引号,以使各子任务的执行顺序与各子任务的索引号顺序保持一致;The generating index unit 71 is used to generate the index number of each subtask in the task scheduling index list according to the execution order of each subtask included in the task, so that the execution order of each subtask is consistent with the execution order of each subtask The order of index numbers remains the same;
生成任务调度索引列表单元72,用于依据所述各子任务的索引号顺序注册生成任务调度索引列表。The generating task scheduling index list unit 72 is configured to register and generate the task scheduling index list according to the order of the index numbers of the subtasks.
具体地,所述更新任务调度索引列表模块63,具体用于:Specifically, the update task scheduling index list module 63 is specifically used for:
若所述任务调度索引列表中存在所述用户程序调度所述任务时不需要调度执行的子任务,则将所述子任务从所述任务调度索引列表中删除,并对其余的全部子任务基于各子任务的索引号进行重新顺序排序;或,If there are subtasks in the task scheduling index list that do not need to be scheduled for execution when the user program schedules the task, then delete the subtasks from the task scheduling index list, and perform all remaining subtasks based on The index numbers of the subtasks are reordered; or,
若所述任务调度索引列表中不存在所述用户程序调度所述任务时需要调度执行的子任务,则将所述子任务注册增加到所述任务调度索引列表中,并对全部的子任务基于各子任务的索引号进行重新顺序排序。If there is no subtask that needs to be scheduled for execution when the user program schedules the task in the task scheduling index list, add the subtask registration to the task scheduling index list, and base all subtasks on the basis of The index numbers of each subtask are reordered.
进一步地,所述各子任务的索引为所述各子任务的对应的函数入口地址。Further, the index of each subtask is the corresponding function entry address of each subtask.
优选地,所述任务为系统中周期性执行的任务。Preferably, the task is a task executed periodically in the system.
本实施例的装置,用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。The device of this embodiment is used to implement the technical solution of the method embodiment shown in FIG. 5 , and its implementation principles and technical effects are similar, and details are not repeated here.
实施例5Example 5
图8为本发明一种操作系统实施例一的架构图,如图8所示,该操作系统包括任务调度装置80。FIG. 8 is a structure diagram of Embodiment 1 of an operating system according to the present invention. As shown in FIG. 8 , the operating system includes a task scheduling device 80 .
本实施例中,操作系统可以为Linux,Windows,Solaris和VxWorks等。In this embodiment, the operating system may be Linux, Windows, Solaris, VxWorks and the like.
本实施例中的任务调度装置80可以采用图6或7中任一个实施例所示的任务调度装置结构,其对应的可执行图2或5中任一实施例所述的方法。The task scheduling device 80 in this embodiment can adopt the structure of the task scheduling device shown in any one of the embodiments in FIG. 6 or 7 , and can correspondingly execute the method described in any one of the embodiments in FIG. 2 or 5 .
图9为图8的软件调度架构图,如图9所示,具体解释说明如下:Figure 9 is a software scheduling architecture diagram of Figure 8, as shown in Figure 9, the specific explanation is as follows:
CPU内核:软件指令执行的主体;CPU core: the main body of software instruction execution;
双倍速率同步动态随机存储器(Double Data Rate,简称DDR):软件代码存贮介质;类似的存贮介质可以扩展到同步动态随机存储器(Synchronous Dynamic RandomAccess Memory,简称SDRAM)、只读内存(Read-Only Memory,简称ROM)等;Double Rate Synchronous Dynamic Random Access Memory (Double Data Rate, referred to as DDR): software code storage medium; similar storage media can be extended to Synchronous Dynamic Random Access Memory (Synchronous Dynamic Random Access Memory, referred to as SDRAM), read-only memory (Read- Only Memory, referred to as ROM), etc.;
高级高性能总线(Advanced High Performance Bus,简称AHB)/高级可扩展接口(Advanced eXtensible Interface,简称AXI)BUS:系统总线,用于链接各个模块保持同步并完成数据交互;Advanced High Performance Bus (AHB for short)/Advanced eXtensible Interface (AXI for short) BUS: system bus, used to link various modules to maintain synchronization and complete data interaction;
其他模块:系统运行需要的其他模块;Other modules: other modules required for system operation;
push:系统压栈,保存系统上下文;push: The system pushes the stack to save the system context;
pop:系统退栈,恢复系统上下文;pop: The system unstacks and restores the system context;
CPU运行时,需要通过AHB/AXI BUS,从DDR获取指令(比如push,pop等);指令的条数决定了CPU执行时间的长短;本发明实施例,CPU无需完整运行DDR中的所有子任务,只需要运行需要调度执行的子任务(比如图9中的task0、task1、task2和task3),执行完所需的子任务就可以中途退出,减少了CPU的无用开销。When the CPU is running, it needs to obtain instructions (such as push, pop, etc.) from the DDR through the AHB/AXI BUS; the number of instructions determines the length of CPU execution time; in the embodiment of the present invention, the CPU does not need to completely run all subtasks in the DDR , you only need to run the subtasks that need to be scheduled for execution (such as task0, task1, task2, and task3 in Figure 9), and you can exit halfway after executing the required subtasks, reducing the useless overhead of the CPU.
上述实施例的操作系统可以用于多种应用场景,尤其是涉及很多周期性执行的任务,比如以全球移动通信系统(global system for mobile communications,简称GSM)系统为例,一般都会有协议层、物理层、底层空口等模块。对于物理层模块而言,需要频繁处理周期性任务:如时隙任务、测量、解调、译码等任务。上述列举的任务都是周期性可重复的;以译码任务为例;在不同的业务状态下,如CS状态(语音)、PS状态(数传)和PCH状态(空闲解寻呼);译码处理流程不完全相同,需要调度的任务也有不同。比如在PCH状态下,需要处理的任务很少,只有TASK_COM、TASK_A1和TASK_A2;而在PS状态,需要处理的任务很多,有TASK_COM、TASK_B1、TASK_B2…TASK_A266。在PCH状态向PS状态切换时,需要更新“任务调度索引列表”,将PS状态需要执行的任务挂接上去,把PCH状态才执行的任务删除;对于公共任务TASK_COM,则需要保留。The operating system of the above embodiment can be used in various application scenarios, especially involving many periodically executed tasks, such as taking the global system for mobile communications (global system for mobile communications, GSM for short) system as an example, generally there will be a protocol layer, Physical layer, bottom air interface and other modules. For the physical layer module, periodic tasks need to be processed frequently: tasks such as time slot tasks, measurement, demodulation, and decoding. The tasks listed above are all periodically repeatable; take the decoding task as an example; in different business states, such as CS state (voice), PS state (data transmission) and PCH state (idle solution paging); translation The code processing flow is not exactly the same, and the tasks that need to be scheduled are also different. For example, in the PCH state, there are few tasks to be processed, only TASK_COM, TASK_A1 and TASK_A2; while in the PS state, there are many tasks to be processed, including TASK_COM, TASK_B1, TASK_B2...TASK_A266. When switching from the PCH state to the PS state, it is necessary to update the "task scheduling index list", mount the tasks that need to be executed in the PS state, and delete the tasks that are executed only in the PCH state; for the public task TASK_COM, it needs to be retained.
由于本发明实施例的操作系统无需执行无用的子任务,因此,存在越多周期性执行任务的系统场景,本发明实施例的操作系统带来的技术效果就越大。Since the operating system in the embodiment of the present invention does not need to execute useless subtasks, the more system scenarios that periodically execute tasks exist, the greater the technical effect brought by the operating system in the embodiment of the present invention.
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present invention, rather than limiting them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: It is still possible to modify the technical solutions described in the foregoing embodiments, or perform equivalent replacements for some or all of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the technical solutions of the various embodiments of the present invention. scope.
Claims (7)
- A kind of 1. method for scheduling task, it is characterised in that including:All subtasks included according to task, registration generation task scheduling index list, the task scheduling index list Function entrance address pointer corresponding to index and each subtask including at least each subtask;Determine to need to dispatch the subtask performed during task described in user procedure dispatching;According to the subtask for needing scheduling to perform described in the user procedure dispatching during task, the task scheduling index column is updated Table is so that the task scheduling index list needs to dispatch the son times performed when only including task described in the user procedure dispatching Business;Scheduling performs each subtask in the task scheduling index list after renewal to complete to appoint described in the user procedure dispatching Business;All subtasks included according to task, registration generation task scheduling index list, including:The execution sequence of each subtask included according to the task, each son generated in the task scheduling index list are appointed The call number of business, so that the execution sequence of each subtask and the call number order of each subtask are consistent;Call number sequential registration according to each subtask generates task scheduling index list;The scheduling performs each subtask in the task scheduling index list after renewal to complete the user procedure dispatching institute Task is stated, including:The index of each subtask in the task scheduling index list after renewal order since first subtask Jump to and perform each subtask program in machine code corresponding to each subtask at function entrance pointer address, if the function entrance performed refers to Pin address is sky, then exits the task scheduling;It is described to need to dispatch the subtask performed during task according to the user procedure dispatching, update the task scheduling rope Draw list so that needs scheduling execution when the task scheduling index list only includes task described in the user procedure dispatching Subtask, including:If the son of execution need not be dispatched when task described in the user procedure dispatching be present in the task scheduling index list Task, then the subtask is deleted from the task scheduling index list, and each son is based on to remaining whole subtask The call number of task carries out order again and sorted;Or,If be not present in the task scheduling index list described in the user procedure dispatching needs to dispatch the son performed during task Task, then subtask registration is increased in the task scheduling index list, and each son is based on to the subtask of whole The call number of task carries out order again and sorted.
- 2. according to the method for claim 1, it is characterised in that the index of each subtask is pair of each subtask The function entrance address answered.
- 3. according to any described methods of claim 1-2, it is characterised in that the task is times periodically performed in system Business.
- A kind of 4. task scheduling apparatus, it is characterised in that including:Generation module is registered, it is described for all subtasks included according to task, registration generation task scheduling index list Task scheduling index list is including at least function entrance address pointer corresponding to the index of each subtask and each subtask;Subtask module being determined, needing during for determining task described in user procedure dispatching to dispatch the subtask performed;Task scheduling index list module is updated, for needing to dispatch what is performed during task according to the user procedure dispatching Subtask, the task scheduling index list is updated so that the task scheduling index list only includes the user procedure dispatching Need to dispatch the subtask performed during the task;Execution module is dispatched, each subtask in the task scheduling index list after updating is performed to complete the use for dispatching Task described in the program scheduler of family;The registration generation module, including:Indexing units are generated, for the execution sequence of each subtask included according to the task, generate the task scheduling The call number of each subtask in index list, so that the execution sequence of each subtask and the call number order of each subtask are kept Unanimously;Task scheduling index list unit is generated, task scheduling is generated for the call number sequential registration according to each subtask Index list;The scheduling execution module, is specifically used for:The index of each subtask in the task scheduling index list after renewal order since first subtask Jump to and perform each subtask program in machine code corresponding to each subtask at function entrance pointer address, if the function entrance performed refers to Pin address is sky, then exits the task scheduling;The renewal task scheduling index list module, is specifically used for:If the son of execution need not be dispatched when task described in the user procedure dispatching be present in the task scheduling index list Task, then the subtask is deleted from the task scheduling index list, and each son is based on to remaining whole subtask The call number of task carries out order again and sorted;Or,If be not present in the task scheduling index list described in the user procedure dispatching needs to dispatch the son performed during task Task, then subtask registration is increased in the task scheduling index list, and each son is based on to the subtask of whole The call number of task carries out order again and sorted.
- 5. device according to claim 4, it is characterised in that the index of each subtask is pair of each subtask The function entrance address answered.
- 6. according to any described devices of claim 4-5, it is characterised in that the task is times periodically performed in system Business.
- 7. a kind of operating system, it is characterised in that including a kind of any described task scheduling apparatus of claim 4-6.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310454952.6A CN103488536B (en) | 2013-09-29 | 2013-09-29 | Method for scheduling task, device and operating system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310454952.6A CN103488536B (en) | 2013-09-29 | 2013-09-29 | Method for scheduling task, device and operating system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103488536A CN103488536A (en) | 2014-01-01 |
CN103488536B true CN103488536B (en) | 2017-12-05 |
Family
ID=49828792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310454952.6A Active CN103488536B (en) | 2013-09-29 | 2013-09-29 | Method for scheduling task, device and operating system |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103488536B (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104793996A (en) * | 2015-04-29 | 2015-07-22 | 中芯睿智(北京)微电子科技有限公司 | Task scheduling method and device of parallel computing equipment |
CN106470226B (en) * | 2015-08-18 | 2020-01-03 | 阿里巴巴集团控股有限公司 | Agent method and device for message interaction between client and server |
CN107544886A (en) * | 2016-06-27 | 2018-01-05 | 上海中兴软件有限责任公司 | A kind of block process dispatching method and device |
CN107295690B (en) * | 2017-06-07 | 2020-10-13 | 武汉虹信通信技术有限责任公司 | Scheduling implementation method for LTE communication system |
CN109669452A (en) * | 2018-11-02 | 2019-04-23 | 北京物资学院 | A kind of cloud robot task dispatching method and system based on parallel intensified learning |
CN109710399B (en) * | 2018-12-14 | 2021-04-06 | 湖北航天技术研究院总体设计所 | DSP communication task scheduling system and method |
CN109871274B (en) * | 2019-02-27 | 2022-12-13 | 西安微电子技术研究所 | Multitask construction and processing method for embedded environment application |
CN113051175B (en) * | 2021-04-19 | 2025-02-14 | 杭州至千哩科技有限公司 | An extensible general workflow framework system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6912712B1 (en) * | 1999-10-11 | 2005-06-28 | Samsung Electronics Co., Ltd. | Real time control system for multitasking digital signal processor using ready queue |
CN101299197A (en) * | 2008-06-30 | 2008-11-05 | 北京中星微电子有限公司 | Method and unit for adding and deleting task |
CN101950260A (en) * | 2010-09-10 | 2011-01-19 | 中兴通讯股份有限公司 | Processor program dispatching method and device |
CN102591703A (en) * | 2011-01-10 | 2012-07-18 | 中兴通讯股份有限公司 | Task scheduling method and task scheduling device for operating system and computer |
-
2013
- 2013-09-29 CN CN201310454952.6A patent/CN103488536B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6912712B1 (en) * | 1999-10-11 | 2005-06-28 | Samsung Electronics Co., Ltd. | Real time control system for multitasking digital signal processor using ready queue |
CN101299197A (en) * | 2008-06-30 | 2008-11-05 | 北京中星微电子有限公司 | Method and unit for adding and deleting task |
CN101950260A (en) * | 2010-09-10 | 2011-01-19 | 中兴通讯股份有限公司 | Processor program dispatching method and device |
CN102591703A (en) * | 2011-01-10 | 2012-07-18 | 中兴通讯股份有限公司 | Task scheduling method and task scheduling device for operating system and computer |
Non-Patent Citations (1)
Title |
---|
一种时间触发的多任务调度器设计;李奇等;《单片机与嵌入式系统应用》;20080501(第5期);17-19 * |
Also Published As
Publication number | Publication date |
---|---|
CN103488536A (en) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103488536B (en) | Method for scheduling task, device and operating system | |
JP6430970B2 (en) | Operating system execution on processors with different instruction set architectures | |
CN104142858B (en) | Blocked task dispatching method and device | |
US8914805B2 (en) | Rescheduling workload in a hybrid computing environment | |
US8776066B2 (en) | Managing task execution on accelerators | |
JP5658365B2 (en) | Method, system and program for high throughput computing in a hybrid computing environment | |
TWI229806B (en) | Method and system for data flow control of execution nodes of an adaptive computing engine (ACE) | |
KR102466984B1 (en) | Improved function callback mechanism between a central processing unit (cpu) and an auxiliary processor | |
US10248456B2 (en) | Method and system for providing stack memory management in real-time operating systems | |
US8683470B2 (en) | Scalable thread locking with customizable spinning | |
CN104239134B (en) | The task management method and device of a kind of many-core system | |
CN114675890B (en) | Instruction execution method, device, equipment and storage medium | |
CN114356420B (en) | Instruction pipeline processing method and device, electronic device and storage medium | |
US9158331B2 (en) | On-demand scalable timer wheel | |
US8909892B2 (en) | Method, apparatus, and computer program product for fast context switching of application specific processors | |
CN106572500A (en) | Scheduling method of hardware accelerators in C-RAN | |
US20140298332A1 (en) | Policy-based workload performance optimization for dynamically distributed osgi application | |
CN103309734A (en) | Embedded task scheduling method based on priority grouping | |
EP3039544B1 (en) | Method and system for assigning a computational block of a software program to cores of a multi-processor system | |
US20140237475A1 (en) | Sleep/wake with suppression and donated importance | |
CN106095577A (en) | The optimized treatment method of shared drives based on many path processors and device | |
US9201688B2 (en) | Configuration of asynchronous message processing in dataflow networks | |
US9135054B1 (en) | Method and apparatus to migrate stacks for thread execution | |
CN117093335A (en) | Task scheduling method and device for distributed storage system | |
US11561792B2 (en) | System, apparatus, and method for a transient load instruction within a VLIW operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210425 Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Device Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right | ||
CP03 | Change of name, title or address |
Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Terminal Co.,Ltd. Country or region after: China Address before: 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong Patentee before: Honor Device Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |