Partition task scheduling method of operating system, electronic equipment and storage medium
By configuring time quotas for partitions in the embedded operating system and borrowing resources from other partitions, the problem of partition task stalling was solved, improving task execution efficiency and resource utilization.
Patent Information
- Application Number
- CN202310870188.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-14
- Publication Date
- 2025-01-14
AI Technical Summary
Existing highly secure embedded operating systems cause tasks to stall and impact efficiency once partition resource quotas are exhausted.
Without altering the operating system's partitioning framework, tasks can be executed by configuring time quotas for each partition and allocating them to appropriate partitions when tasks are created, utilizing the remaining time slices of other partitions to prevent task stalling.
It improves the task execution efficiency of the operating system and the resource utilization of the processor, ensuring that tasks can still be executed in a timely manner when partition resources are insufficient.
Smart Images

Figure CN119311382A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a partition task scheduling method for an operating system, an electronic device, and a storage medium. Background Art
[0002] Currently, high-security embedded operating systems usually manage partitions for executing tasks according to a fixed resource allocation ratio. Therefore, once the resource quota of a partition is used up, if it is not reconfigured, the tasks that have not been executed in the partition will be stagnant, thus affecting efficiency.
[0003] In view of this, how to solve the partition task stagnation without changing the partition framework of the operating system is a technical problem to be solved by this application. Summary of the invention
[0004] The purpose of the present application is to provide a partition task scheduling method for an operating system, an electronic device and a storage medium, which can solve the problem of stagnation in executing tasks of partitions of an operating system in the prior art.
[0005] In order to achieve the above purpose, the embodiment of the present application is implemented as follows:
[0006] In a first aspect, a partition task scheduling method for an operating system is provided, which is applied to a target core of a processor, wherein the operating system is divided into a plurality of partitions, each of the plurality of partitions is configured with a time quota of the processor, and the time quota refers to the number of allocated time slices, and the method comprises:
[0007] In a case where the operating system creates a first task for the target core, assigning the first task to a partition and adding the first task to a local task queue;
[0008] Extracting a task to be executed from the local task queue, and in the case where a second task to be executed is extracted, determining a partition to which the second task belongs;
[0009] If the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task, the time quota of the partition to which the second task belongs is consumed to execute the second task; otherwise, the remaining time slice of the time quota of other partitions is borrowed to execute the second task by consuming the borrowed time quota of the other partitions.
[0010] In a second aspect, an embodiment of the present application provides an electronic device, comprising: a processor; and a memory configured to store computer-executable instructions, wherein the computer-executable instructions, when executed, cause the processor to execute the method described in the first aspect.
[0011] According to a third aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium is used to store computer-executable instructions, and the computer-executable instructions implement the method described in the first aspect when executed by a processor.
[0012] The present application divides the operating system into multiple partitions and configures the processor's time quota for each partition. After the operating system creates a new task for any target core in the processor, the target core assigns the new task to a partition and adds the new task to the local task queue of the target core; at the same time, the target core extracts the task to be executed from the local task queue, and in the case of extracting the task to be executed, first determines the partition to which the task to be executed belongs; then, based on the remaining time slice of the time quota of the partition to which the task to be executed belongs, it is determined whether the partition to which the task to be executed belongs has the remaining time slice of the time configuration to support the execution of the second task. If the target core determines that the partition to which the second task belongs cannot support it, it promptly borrows the remaining time slice of the time quota of other partitions to consume the borrowed time quota of other partitions to execute the task to be executed, thereby avoiding the problem of stagnation of the task to be executed. Based on the scheme of the present application, the task execution efficiency of the operating system and the resource utilization of the processor can be effectively improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.
[0014] Figure 1 A flowchart of a partition task scheduling method for an operating system according to an embodiment of the present application.
[0015] Figure 2 This is a schematic diagram of the control structure of partitions, cores, and tasks in the partition task scheduling method of an embodiment of the present application.
[0016] Figure 3 This is a schematic diagram of the relationship between partitions, cores, and tasks in actual applications of the partition task scheduling method of an embodiment of the present application.
[0017] Figure 4 This is another schematic diagram of the relationship between partitions, cores, and tasks in actual applications of the partition task scheduling method of an embodiment of the present application.
[0018] Figure 5 A schematic diagram of the structure of a partition task scheduling device for an operating system according to an embodiment of the present application.
[0019] Figure 6 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0020] As mentioned above, currently high-reliability and high-security embedded operating systems, such as rail transit systems and special circuit systems, usually manage partitions for executing tasks according to a fixed resource allocation ratio. Once the resource quota of a partition is used up, if it is not reconfigured, the tasks that have not yet been executed in the partition will be stagnant, thus affecting efficiency.
[0021] To this end, the present application aims to propose a technical solution that can solve the partition task stagnation problem without changing the partition framework of the above-mentioned operating system.
[0022] In order to enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this application will be clearly and completely described below in conjunction with the drawings in the embodiments of this application. Obviously, the described embodiments are only part of the embodiments of this specification, not all of the embodiments. Based on the embodiments in this specification, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of this specification.
[0023] On the one hand, an embodiment of the present application proposes a partition task scheduling method for an operating system, which is applied to any target core in a processor. The processor is responsible for running the operating system, and the operating system periodically formulates partition time slice quota requirements, and divides multiple partitions according to the corresponding partition time slice quota requirements in the current cycle. Among them, each partition is configured with a processor time quota, and the time quota refers to the number of allocated time slices (according to the partition time slice quota requirements). Correspondingly, after the task of the operating system is created, it will be configured with the time slice required for execution. When it is assigned to a partition for execution, the partition needs to consume the corresponding amount of time slices in the time quota to execute the task. In addition, the operating system will periodically fill the time slice for the current partition based on the pre-planned partition time slice quota in each cycle.
[0024] in, Figure 1 : is a flowchart of a partition task scheduling method according to an embodiment of the present application, which specifically includes the following steps:
[0025] S102: When the operating system creates a first task for the target core, the first task is allocated to a partition and the first task is added to a local task queue.
[0026] In this embodiment, the first task refers to a task newly created in the operating system.
[0027] It should be understood that the core in the processor is the hardware that runs the task, and the partition is the virtual environment that runs the task. Each partition is configured with its own task queue. The operating system will select a suitable core in the processor to create the corresponding task according to the core affinity mask of each task type. After the task is created, the core to which the task belongs will assign it a partition.
[0028] It should be noted that this embodiment does not specifically limit the way of allocating tasks to partitions. As an exemplary introduction, the operating system can pre-configure corresponding partitions according to the task type; after the operating system creates the first task for the target core, the target core can allocate partitions according to the task type of the first task. Alternatively, the operating system can also pre-configure corresponding partitions according to the security level; after the operating system creates the first task for the target core, the target core can allocate partitions according to the security level of the first task.
[0029] Specifically, the present embodiment configures a task queue for each core in the processor, which is used to store the tasks to be executed created by the operating system. Among them, the task queue of each core is further divided into a ready task queue and a restricted task queue. The execution priority of the tasks in the ready task queue is higher than the execution priority of the tasks in the restricted task queue, that is, the core of the processor executes the tasks in the ready task queue first, and when there are no tasks in the ready task queue, the tasks in the restricted task queue are executed.
[0030] For the target core, after allocating a partition for the first task, first determine whether the remaining time slices of the time quota of the partition to which the first task belongs support the execution of the first task. If supported (the number of remaining time slices is greater than or equal to the number of time slices required for the execution of the first task), the first task is added to the local ready task queue; otherwise, the first task is added to the local restricted task queue. In this embodiment, the tasks in the ready task queue occupy the time slices of the time quota of the partition to which they belong when waiting for execution, while the tasks in the restricted task queue do not occupy the time slices of the time quota of the partition to which they belong when waiting for execution.
[0031] S104: extracting a task to be executed from the local task queue, and in the case where a second task to be executed is extracted, determining the partition to which the second task belongs.
[0032] In this step, the target core preferably attempts to extract the second task from the local ready task queue. If there is no task in the ready task queue, it attempts to extract the second task from the local restricted task queue. The ready task queue and the restricted task queue can adopt existing scheduling algorithms, such as First Input First Output (FIFO), Round Robin (RR) and Completely Fair Scheduler (CFS), etc., which are not specifically limited in this specification.
[0033] It should be understood that the second task of this embodiment is created according to the step shown in S102 (the second task may be the first task), so no matter it is a ready task queue or a restricted task queue, the extracted task has been assigned a partition.
[0034] Specifically, in the case of multiple cores of the processor, if a core is in an idle state (no tasks in the task queue), the tasks in the task queues of other cores can be processed, thereby improving the overall efficiency. That is, when there are no tasks to be executed in the local ready task queue and restricted task queue of the target core, the third task to be executed is extracted from the ready task queue and restricted task queue of other cores according to the execution priority of the task; similarly, when the remaining time slice of the time quota of the partition to which the third task belongs supports the execution of the third task, the time quota of the partition to which the third task belongs is consumed to execute the third task; otherwise, the remaining time slice of the time quota of other partitions is borrowed to consume the borrowed time quota of other partitions to execute the third task.
[0035] On the basis of the above, it is also possible to set the priority execution of tasks in all ready task queues among all cores of the processor. After the tasks in all ready task queues are processed, the tasks in the restricted task queue are processed. That is, the target core first attempts to extract the tasks to be executed from the local ready task queue. If the tasks to be executed cannot be extracted from the local ready task queue, then try to extract the tasks to be executed from the ready task queues of other cores. If the tasks to be executed still cannot be extracted from the ready task queues of other cores, then try to extract the tasks to be executed from the local restricted task queue. In addition, if the tasks to be executed still cannot be extracted from the local restricted task queue, then finally try to extract the tasks to be executed from the restricted task queues of other cores.
[0036] S106, when the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task, consume the time quota of the partition to which the second task belongs to execute the second task; otherwise, borrow the remaining time slice of the time quota of other partitions to consume the borrowed time quota of the other partitions to execute the second task.
[0037] In this step, if the time quota of the partition to which the second task belongs has remaining time slices, but does not support the execution of the second task, the target core can borrow the time slices required to execute the second task from other partitions. For example, if the time quota of the partition to which the second task belongs has 2 remaining time slices, and the execution of the second task requires 3 time slices, the target core will first run the second task for 2 time slices. After this time slice expires, if the time quota of the partition to which the second task belongs has no remaining time slices, then borrow 1 remaining time slice from the time quota of other partitions. Correspondingly, when the second task is executed, it will consume 2 time slices in the time quota of the partition to which it belongs, and 1 remaining time slice in the borrowed time quota of other partitions.
[0038] In summary, the method of this embodiment divides the operating system into multiple partitions and configures the processor's time quota for each partition. After the operating system creates a new task for any target core in the processor, the target core assigns the new task to a partition and adds the new task to the local task queue of the target core; at the same time, the target core extracts the task to be executed from the local task queue, and in the case of extracting the task to be executed, first determines the partition to which the task to be executed belongs; then, according to the remaining time slice of the time quota of the partition to which the task to be executed belongs, it is determined whether the partition to which the task belongs has the remaining time slice of the time configuration to support the execution of the second task. If the target core determines that the partition to which the second task belongs cannot support it, it promptly borrows the remaining time slice of the time quota of other partitions to consume the borrowed time quota of other partitions to execute the task to be executed, thereby avoiding the problem of stagnation of the task to be executed. It can be seen that the method of this embodiment can effectively improve the task execution efficiency of the operating system and the resource utilization of the processor.
[0039] Furthermore, in order to further improve the task execution efficiency of the operating system. In the case of blocking during the execution of the second task (suspending execution in a blocked state), such as the operating system entering a sleep state, the processor waiting for IO to be ready, etc., the target core can release the second task and return the unused time slices occupied by the second task execution to the original partition. Among them, if the target core previously borrowed time slices to execute the second task, the borrowed time slices need to be returned to other partitions.
[0040] In addition, for such blocked tasks, if the local ready task queue and the restricted task queue do not have other tasks to be executed, the target core can directly add the second task back to the local task queue so that the second task can be re-executed immediately. If the local ready task queue and the restricted task queue have other tasks to be executed, the target core continues to extract the fourth task from the local ready task queue and the restricted task queue in order to try to run it; at the same time, the target core adds the second task back to the local task queue so that the second task is queued and waits.
[0041] In addition, if the second task is awakened before being released after being blocked, and the target core is currently executing the fifth task (the fifth task may be the fourth task), the target core may release the fifth task to re-execute the second task. Correspondingly, the target core also needs to add the released fifth task back to the local task queue.
[0042] It should be noted that, in the process of re-adding the second task (the fifth task is also applicable) to the local task queue, the target core still first determines whether the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task. Afterwards, if it is determined that the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task, the second task is re-added to the local ready task queue; if it is determined that the remaining time slice of the time quota of the partition to which the second task belongs does not support the execution of the second task, the second task is re-added to the local restricted task queue.
[0043] In addition, the operating system of this embodiment can also set a task for preempting execution (hereinafter referred to as the preempting task). After the preempting task is created, the corresponding core needs to put down the currently executed task to give priority to the preempting task. For this embodiment, if the second task is preempted by other tasks during execution, the target core releases the second task to return the unconsumed time slice occupied by the second task to the original partition. Afterwards, the target core re-adds the second task to the local task queue so that the second task is queued again.
[0044] Based on the above content, it can be known that in the event that the second task is blocked, awakened after being locked, or preempted during operation, the target core can return the unconsumed time slices occupied by the second task to the original partition. Furthermore, the target core can also decide whether to transfer the tasks belonging to the original partition in the restricted task queue to the ready task queue based on the remaining time slices of the original partition's time quota after the return. For example, after returning the unconsumed time slices occupied by the second task to the original partition, and the remaining time slices of the original partition's time quota are greater than zero, the target core transfers the tasks belonging to the original partition in the restricted task queues of the local and other cores to the ready task queues of the core to which it belongs.
[0045] The method of this embodiment is described in detail below.
[0046] This embodiment performs a partition task processing design in the scheduling process of the operating system kernel, which specifically involves the following process:
[0047] 1. Partition creation and configuration process
[0048] At the design level, the number of operating system partitions and the time quota ratio of each partition are pre-planned according to business characteristics. When the operating system starts, the relevant partitions are automatically created and the time quota ratio of each partition is set according to the pre-planned ratio. Further, based on the time quota ratio, the actual time slice quota obtained by the partition within a fixed time window is calculated.
[0049] For example, in a cycle window with a total time quota of 200ms, the operating system executes partitions A and B, and occupies 30% and 70% respectively. Partition A is allocated a 60ms time slice quota in this cycle window; partition B is allocated a 140ms time slice quota in this cycle window.
[0050] 2. Task creation and configuration process
[0051] Tasks in the operating system need to determine the partition to which they belong and the original scheduling policy of the task. Tasks are not only created when the operating system is started, but also dynamically created and destroyed during the operation of the operating system. The specific process is as follows:
[0052] S2.1, if the current core is in idle state and there is no task to be executed, then:
[0053] 1) Set the partition to which the task is created and the current core and other information.
[0054] 2) Add the created task to the corresponding queue of the current core according to the partition to which the created task belongs, including:
[0055] If the partition to which the creation task belongs has a time quota, the creation task is added to the ready task queue of the current core and the queue priority bitmap is checked and updated;
[0056] If the partition to which the creation task belongs has no time quota, the creation task is added to the restricted task queue of the current core and the queue priority bitmap is checked and updated;
[0057] 3) Execute partition task scheduling.
[0058] S2.2, if the current core is in a non-idle state and there is a current task being executed, then:
[0059] 1) Return the remaining time slice of the current task to the partition that previously allocated the time slice of this task.
[0060] 2) Further perform relevant task queue maintenance based on the partitioning of the current task, including:
[0061] If the partition has no remaining time slices, the current task is added to the restricted task queue of the current core and the queue priority bitmap is checked and updated;
[0062] If the partition still has remaining time slices, the current task is added to the ready task queue of the current core and the queue priority bitmap is checked and updated;
[0063] After the allocation partition returns the time slice this time, if the remaining time quota of the allocation partition reaches a predetermined threshold, all tasks of this allocation partition are moved from the restricted task queue to the ready task queue, and the queue priority bitmap is checked and updated.
[0064] 3) Create a new task and associate it with the partition to which it belongs.
[0065] 4) According to the partition to which the new task belongs, the created task is added to the corresponding queue of the current core, including:
[0066] If the partition to which the task is created belongs has a time quota, the task is added to the ready task queue of the current core, and the queue priority bitmap is checked and updated;
[0067] If the partition to which the creation task belongs has no time quota, the creation task is added to the restricted task queue of the current core, and the queue priority bitmap is checked and updated.
[0068] 5) Perform partition task scheduling.
[0069] 3. Task blocking process
[0070] 1) Return the remaining time slice of the current task to the partition where the task time slice was previously allocated;
[0071] 2) Allocate partition-related task queue processing:
[0072] If the remaining time quota of the allocation partition increases from zero to greater than zero, all tasks belonging to the allocation partition are moved from the processor's limited task queue to the ready task queue, and the relevant queue priority bitmap is checked and updated.
[0073] If the remaining time quota of the assigned partition is still zero, the tasks to which the assigned partition belongs will continue to be retained in the restricted task queue.
[0074] If the remaining time quota of the assigned partition is always greater than zero, the tasks to which the assigned partition belongs continue to remain in the ready task queue.
[0075] 3) Change the status of the current task to blocked.
[0076] 4) Perform partition task scheduling.
[0077] 4. Task wake-up process
[0078] S4.1, if the current core is in idle state and no task needs to be run, then:
[0079] 1) Change the status of the wake-up task to ready status.
[0080] 2) According to the partition to which the wake-up task belongs, add it to the corresponding queue of the current core, including:
[0081] If the partition to which the wakeup task belongs has a time quota, the wakeup task is added to the ready task queue of the current core, and the queue priority bitmap is checked and updated;
[0082] If the partition to which the wake-up task belongs has no time quota, the wake-up task is added to the restricted task queue of the current core, and the queue priority bitmap is checked and updated.
[0083] 3) Execute partition task scheduling.
[0084] S4.2, if the current core is in a non-idle state and there is a current task running, then:
[0085] 1) Return the remaining time slice of the current task to the partition where the task time slice was previously allocated.
[0086] 2) Further perform relevant task queue maintenance based on the partitioning of the current task, including:
[0087] If the partition has no remaining time slices, the current task is added to the restricted task queue of the current core, and the queue priority bitmap is checked and updated;
[0088] If the partition still has remaining time slices, the current task is added to the ready task queue of the current core, and the queue priority bitmap is checked and updated;
[0089] After the allocated partition has returned the time slice, if the partition quota increases to a predetermined threshold, all tasks of the allocated partition are moved from the restricted task queue to the ready task queue, and the relevant queue priority bitmap is checked and updated.
[0090] 3) According to the partition to which the wake-up task belongs, the wake-up task is added to the corresponding queue of the current core, including:
[0091] If the partition to which the wakeup task belongs has a time quota, the wakeup task is added to the ready task queue of the current core, and the queue priority bitmap is checked and updated;
[0092] If the partition to which the wake-up task belongs has no time quota, the wake-up task is added to the restricted task queue of the current core, and the queue priority bitmap is checked and updated.
[0093] 4) Perform partition task scheduling.
[0094] 5. Partition refilling and task preemption process:
[0095] In order to improve the real-time response capability of the operating system, a fixed-period scheduling timer is set. In the periodic timer, it is determined whether partition scheduling related processing needs to be executed according to the status of all ready tasks of the current processor. If execution is required, it is run according to the following steps:
[0096] S5.1, if the current partition time window expires, then the partition needs to be filled and the run queue needs to be restored, that is:
[0097] 1) Recalculate and restore the initial value based on the quota ratio according to the remaining time slice of each partition.
[0098] 2) For partitions whose quota is greater than zero, restore the tasks to which the partition belongs from the restricted task queue to the ready task queue, and check and update the relevant queue priority bitmap.
[0099] S5.2, based on whether the remaining time slice of the current task has been used up and whether there are other tasks that need to be preempted, determine whether the current task needs to be preempted; if the current task needs to be preempted, the remaining time slice needs to be returned and the running queue needs to be maintained, that is:
[0100] 1) Return the remaining time slice of the current task to the partition where the task time slice was previously allocated.
[0101] 2) Perform relevant task queue maintenance based on the partitioning of the current task, including:
[0102] If the partition has no remaining time slice, the current task is added to the restricted task queue of the current core, and the queue priority bitmap is checked and updated.
[0103] If the partition still has remaining time slices, the current task is added to the ready task queue of the current core, and the queue priority bitmap is checked and updated.
[0104] After the allocated partition has returned the time slice, if the partition quota increases to a predetermined threshold, all tasks of the allocated partition are moved from the limit task queue to the ready task queue, and the queue priority bitmap is checked and updated.
[0105] 3) Execute partition task scheduling.
[0106] 6. Partition task scheduling process:
[0107] During the operation of the operating system, the creation of tasks, blocking of tasks, awakening of tasks, and preemption of tasks (partition refilling and task preemption) may trigger the scheduling switching task. The execution steps of this process are as follows:
[0108] S6.1, judging whether scheduling switching is required based on the current task and running queue status, including:
[0109] 1) If the current task is an idle task, it is determined that a scheduling switch is required if the following conditions are met at the same time:
[0110] There is at least one ready task in the ready task queue or the limited task queue of the current core.
[0111] At least one partition in the operating system also has a quota.
[0112] 2) If the current task is not an idle task and the current task belongs to the ready task queue, it is determined that a scheduling switch is required if one of the following conditions is met:
[0113] The remaining running time quota of the current task has been consumed.
[0114] The remaining running time of the current task has not been consumed, but the queue priority bitmap confirms that there are higher priority ready tasks in the system.
[0115] 3) If the current task is not an idle task and the current task belongs to the restricted task queue, it is determined that scheduling switching is required if one of the following conditions is met:
[0116] The current core's ready task queue is not empty.
[0117] The remaining running time quota of the current task has been consumed.
[0118] The remaining running time of the current task has not been consumed, but the queue priority bitmap confirms that there are higher priority tasks in the operating system.
[0119] S6.2, if it is determined that task scheduling is not required, then exit the current process. Otherwise, select the next task to be run as follows:
[0120] 1) If there is a ready task queue in the operating system that is not empty, select the highest priority task from the system global perspective based on the ready task queue bitmap of each core. Otherwise, continue with the following processing.
[0121] 2) If there is a non-empty restricted task queue in the operating system and at least one partition has time quota, select the highest priority task from the restricted task queue. Otherwise, continue with the following process.
[0122] 3) Select the idle task as the next task to be run
[0123] S6.3, if the next task to be run is not an idle task, determine the allocation partition of this task in the following way:
[0124] 1) If the remaining quota of the partition to which the task to be run belongs is greater than zero, the partition to which the task to be run belongs is assigned
[0125] 2) If the remaining quota of the partition to which the task to be run belongs is less than zero, a partition is selected from other partitions in the operating system that have remaining quotas as the partition to which the task to be run belongs.
[0126] S6.4, if the next task to be run is not an idle task, the time quota allocated to this task is calculated as follows:
[0127] 1) If the remaining quota of the partition to which the task to be run belongs is greater than a predetermined threshold, a time slice quota of the threshold size is allocated from the allocation partition.
[0128] 2) If the remaining quota of the partition to which the task to be run belongs is less than a predetermined threshold, all the remaining time quota in the allocation partition is allocated to the task to be run.
[0129] S6.5, if the currently running task is not an idle task, it is necessary to treat this task as a cut-out task and clear or return the time quota of the cut-out task.
[0130] S6.6, if the next task to be run is not an idle task, the relevant status of the task to be run needs to be maintained, including:
[0131] 1) Allocate time slices: According to the calculation result of S6.4 above, allocate time slices for the tasks to be run and subtract the corresponding time slices from the allocated partitions.
[0132] 2) Allocate partitions: According to the calculation results of step S6.3 above, record the allocated partitions of the tasks to be run.
[0133] 3) Task status: Change the task status of the task to be run to the running state, and use it as the current task of the current core.
[0134] S6.7, if the task to be run is not an idle task, it is also necessary to maintain the task status related to the allocation partition, including:
[0135] 1) If the remaining time quota of the assigned partition is less than or equal to zero, all related tasks of the assigned partition are moved from the ready task queue to the limit task queue.
[0136] 2) If the remaining time quota of the allocated partition is still greater than or equal to zero, there is no need to move the related tasks of the allocated partition.
[0137] It should be understood that through the management of the ready task queue and the restricted task queue, the time complexity of partition task scheduling is O(1).
[0138] The partition task scheduling method of this embodiment is introduced below in combination with actual application scenarios.
[0139] refer to Figure 2 As shown, this application scenario sets the following structure:
[0140] The partition control structure includes: partition name, partition quota ratio, partition quota, partition remaining time slice, and task set within the partition.
[0141] The core control structure includes: for each processor, a partition ready task queue, a partition restricted task queue, and a current task. The ready task queue and the restricted task queue can be further divided into several sub-queue sets according to the scheduling policy. For example, the FIFO / RR queue for real-time scheduling, the CFS task queue for non-real-time scheduling, and other types of task queues. For each ready task queue or restricted task queue, there is a unified task queue priority bitmap, which is used to mark the priority bitmap of each task in the current queue, so as to improve the efficiency of finding the highest priority task.
[0142] The task control structure includes: task name, scheduling policy, priority, core affinity mask (indicating the core with affinity), remaining time slice, belonging partition, allocated partition and other information. The belonging partition is the partition to which the current task belongs, and the allocated partition is the partition that provides (borrows) time slices for the task to run. If the time quota of a partition is not used up and there are no ready tasks, the restricted tasks of other partitions can temporarily borrow the unused time slices, thereby improving the overall operation efficiency.
[0143] based on Figure 2 The structure shown, further reference Figure 3 and Figure 4 As shown, the execution process is as follows:
[0144] 1) Create partitions and set partition quotas
[0145] Assume that the operating system creates two partitions, A and B, and the time quota ratio of partitions A and B is 30%:70%, and the total time quota is 200ms. By proportional conversion, it can be determined that partition A is allocated a 60ms time slice quota in this time window; partition B is allocated a 140ms time slice quota in this time window.
[0146] 2) Create tasks and associate related partitions
[0147] Create four tasks for partition A, and all of these four tasks adopt the real-time scheduling strategy, and the real-time priorities are 6, 8, 9, and 11, respectively, and the task names are A6, A8, A9, and A11. Assume that only task A9 is in the ready state, and the other tasks are in the blocked state.
[0148] Four tasks are created for partition B, and these four tasks also adopt the real-time scheduling strategy. Their real-time priorities are 4, 6, 7, and 10, and the task names are B4, B6, B7, and B10. Assume that only tasks B6 and B10 are in the ready state, and the other tasks are in the blocked state.
[0149] 3) Ready task queue maintenance on multi-core processors
[0150] As described in the process of task creation, task blocking, task awakening, etc. in the content of the invention, the system will settle the task time quota and adjust the ready task queue and the restricted task queue. Assume that in a two-core processor environment, the processor names are core 1 and core 2. Partition A and partition B and related tasks are created on this two-core processor. The specific situation is as follows:
[0151] Create task A9 in core 1 and allocate a scheduling time slice (10ms) to task A9 from the current remaining time slice of 60ms in partition A. At this time, the remaining time slice allocated to A is 50ms, and A9 is in the ready task queue of core 1. Core 1 selects task A9 from the ready task queue to run.
[0152] Create tasks A6, A8, and A11 in core 1. The creation process is as described above. Immediately after creation, they are set to the blocked state. At this time, the scheduling time slices assigned to the tasks are returned to partition A. At this time, the time slice resources of partition A are still 50ms. Therefore, there is no need to adjust the original tasks of partition A.
[0153] In the same way, tasks B6 and B10 are created in core 2, and a scheduling time slice (10ms) is allocated to tasks B6 and B10 from partition B. At this time, the remaining time slice of partition B is 120ms, and tasks B6 and B10 are both in the ready task queue of core 2. Core 2 selects task B10 from the ready task queue to run.
[0154] As mentioned above, when tasks B4 and B7 are created in core 2 and set to blocked state, the remaining time slice of partition B is still 120ms, and there is no need to adjust the running queue of the original tasks.
[0155] At this time, the relationship between partitions, tasks, processors and other components in the system is as follows Figure 3 shown.
[0156] 4) Execute partition tasks when the partition time slice is sufficient
[0157] When the 10ms time slice expires on core 1, the partition task scheduling process will be executed: it is detected that the remaining time slice of the current task (A9) has been exhausted, so the next task is scheduled. At this time, a ready task that complies with the FIFO or RR strategy is selected from the ready task queue. If A9 is still in the ready state after running for 10ms, the A9 task will be selected from the ready task queue of core 1 and a time slice of 10ms will be allocated from the partition A to which the task belongs, and the task will be scheduled for execution. At this time, the remaining time slice of partition A is 40ms.
[0158] When the 10ms time slice expires on core 2, it is first detected that the remaining time slice of the current task (B10) has expired, so the next ready task is scheduled. If the B10 task is still in the ready state, there are two tasks in the ready task queue tracking of core 2: B10 and B6. According to the real-time task scheduling algorithm rules such as FIFO / RR, the queue head task is a high priority task (B10). At this time, the selected ready task is still B10, and the time slice is allocated from the partition to which the task belongs (partition B) and the scheduling of task B10 continues. At this time, the remaining time slice of partition B is 110ms.
[0159] When both partition A and partition B have time quotas, the relationship between partitions, tasks, processors, etc. remains the same. Figure 3 shown.
[0160] 5) Execute partition tasks when the time quota of partition A is insufficient
[0161] According to the above method, after core 1 runs for 60ms respectively, the remaining time slices of the current task A9 and the partition A to which it belongs are both 0. Although task A9 is still in the ready state at this time, since the remaining time slice of the partition to which it belongs is 0, the A9 task can only be added to the restricted task queue of the corresponding priority. According to the content of the present invention, the ready task queues of each priority level will be checked first in the partition scheduling process. If there is no ready task in the ready task queue, the ready tasks in the restricted task queue will be checked in turn. Therefore, at this time, core 1 will give priority to selecting task B6 as the next task to be run in the partition task scheduling process. Core 1 selects task B6 and partitions the time slice from the partition (partition B) to which task B6 belongs, and schedules the running of task B6. At this time, the remaining time slice of partition B is 70ms.
[0162] In the same way, after core 2 has run for 60ms, the time slice of the current task B10 is exhausted. Assuming that this task is still in the ready state, it is still in the ready task queue of the current priority. According to the partition task scheduling process, task B10 will be selected as the next task to be run. The time slice is allocated from the partition to which B10 belongs (partition B), and the B10 task is scheduled to run. At this time, the remaining time slice of partition B is 60ms.
[0163] Afterwards, core 1 and core 2 select tasks B6 and B10 to run respectively according to the partition task scheduling process. And allocate time quota from partition B until the time quota of partition B is exhausted after 100ms. However, although task A9 is in the ready state during this process, it is always in the restricted task queue because the quota of the partition to which it belongs is zero. Therefore, in the subsequent process of this cycle, core 1 can borrow the time slice of partition B to execute task A9, so the allocation partition of A9 is changed from partition A to partition B. At this time, the relationship between system partitions, tasks, processors and other components is as follows: Figure 4 shown.
[0164] 6) If the time quota of both partition A and partition B is exhausted, refill the time slice
[0165] After core 1 and core 2 have both run for 100ms, the remaining time slices of partition A and partition B are reduced to zero. The partition refilling and task preemption process is triggered by the timer, and according to the partition refilling and task preemption process of the present invention, the partition time slices of partition A and partition B are refilled. After refilling, the remaining time slices of partition A and partition B are restored to 60ms and 140ms.
[0166] All tasks associated with partitions A and B are restored from the restricted task queue to the ready task queue, so task A9 will be restored from the restricted task queue to the ready task queue of the corresponding priority level. The initial state of the system is restored here, and the ready task will be scheduled periodically according to the above process.
[0167] This application scenario can ensure the time isolation feature between different partitions: even if there are high-priority ready tasks in partition A, but the partition time quota is insufficient, the partition's tasks (A9) will not be run. This ensures that the time between different partitions is isolated according to the pre-agreed quota ratio, thus avoiding mutual influence between partitions.
[0168] On the other hand, corresponding to Figure 1 Another embodiment of the present application provides a partition task scheduling device for an operating system, and the partition task scheduling device is applied to a target core of a processor. Figure 5 : is a schematic diagram of the structure of the partition task scheduling device 500, including:
[0169] The task partitioning module 510 is used to allocate the first task to a partition and add the first task to a local task queue when the operating system creates the first task for the target core.
[0170] The task extraction module 520 is used to extract a task to be executed from the local task queue, and when a second task to be executed is extracted, determine the partition to which the second task belongs.
[0171] The task execution module 530 is used to consume the time quota of the partition to which the second task belongs to execute the second task when the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task; otherwise, borrow the remaining time slice of the time quota of other partitions to consume the borrowed time quota of the other partitions to execute the second task.
[0172] The device of this embodiment divides the operating system into multiple partitions and configures the processor's time quota for each partition. After the operating system creates a new task for any target core in the processor, the target core assigns the new task to a partition and adds the new task to the local task queue of the target core; at the same time, the target core extracts the task to be executed from the local task queue, and in the case of extracting the task to be executed, first determines the partition to which the task to be executed belongs; then, based on the remaining time slice of the time quota of the partition to which the task to be executed belongs, it is determined whether the partition to which the task to be executed belongs has the remaining time slice of the time configuration to support the execution of the second task. If the target core determines that the partition to which the second task belongs cannot support it, it promptly borrows the remaining time slice of the time quota of other partitions to consume the borrowed time quota of other partitions to execute the task to be executed, thereby avoiding the problem of stagnation of the task to be executed. Based on the device of this embodiment, the task execution efficiency of the operating system and the resource utilization of the processor can be effectively improved.
[0173] Optionally, the local task queue includes a ready task queue and a restricted task queue, the execution priority of tasks in the ready task queue is higher than the execution priority of tasks in the restricted task queue, the tasks in the ready task queue occupy time slices of the time quota of the partition to which they belong when waiting for execution, and the tasks in the restricted task queue do not occupy time slices of the time quota of the partition to which they belong when waiting for execution; the task partitioning module 510 adds the first task to the local task queue, including: if the remaining time slice of the time quota of the partition to which the first task belongs supports the execution of the first task, adding the first task to the local ready task queue; otherwise, adding the first task to the local restricted task queue; the task extraction module 520 extracts tasks to be executed from the local task queue, including: extracting tasks to be executed from the local ready task queue and the restricted task queue according to the execution priority of the tasks.
[0174] Optionally, the processor further includes other cores in addition to the target core; the task extraction module 520 is further used for:
[0175] When there are no tasks to be executed in the local ready task queue and restricted task queue, extract the third task to be executed from the ready task queues and restricted task queues of other cores according to the execution priority of the tasks; when the remaining time slice of the time quota of the partition to which the third task belongs supports the execution of the third task, consume the time quota of the partition to which the third task belongs to execute the third task; otherwise, borrow the remaining time slice of the time quota of other partitions to execute the third task by consuming the borrowed time quota of the other partitions.
[0176] Optionally, the task extraction module 520 extracts tasks to be executed from the local ready task queue and the restricted task queue according to the execution priority of the tasks, including: attempting to extract tasks to be executed from the local ready task queue; if the tasks to be executed cannot be extracted from the local ready task queue, attempting to extract tasks to be executed from the ready task queues of other cores; if the tasks to be executed cannot be extracted from the ready task queues of other cores, attempting to extract tasks to be executed from the local restricted task queue; if the tasks to be executed cannot be extracted from the local restricted task queue, attempting to extract tasks to be executed from the restricted task queues of other cores.
[0177] Optionally, the task execution module 530 is further configured to return the unconsumed time slices occupied by the execution of the second task to the original partition when a blockage occurs during the execution of the second task.
[0178] Optionally, the task execution module 530 is also used to determine whether the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task when it is awakened after being locked during the execution of the second task, and there are no other tasks to be executed in the local ready task queue and the restricted task queue; if it is determined that the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task, add the second task back to the local ready task queue; if it is determined that the remaining time slice of the time quota of the partition to which the second task belongs does not support the execution of the second task, add the second task back to the local restricted task queue.
[0179] Optionally, the task execution module 530 is also used to extract the fourth task for execution from the local ready task queue and the restricted task queue according to the execution priority of the task when it is awakened after being locked during the execution of the second task and the local ready task queue and the restricted task queue have other tasks to be executed.
[0180] Optionally, the task execution module 530 is also used to, when it is awakened after being blocked during the execution of the second task and the fifth task is currently being executed, determine whether the remaining time slice of the time quota of the partition to which the fifth task belongs supports the execution of the fifth task; if it is determined that the execution of the fifth task is supported, add the fifth task back to the local ready task queue; if it is determined that the execution of the fifth task is not supported, add the fifth task back to the local restricted task queue.
[0181] Optionally, the task execution module 530 is also used to, if the execution of the second task is preempted by other tasks during the execution process, return the unconsumed time slices occupied by the execution of the second task to the original partition, and determine whether the remaining time slices of the time quota of the partition to which the second task belongs support the execution of the second task; if it is determined that the execution of the second task is supported, add the second task back to the local ready task queue; if it is determined that the execution of the second task is not supported, add the second task back to the local restricted task queue.
[0182] Optionally, the task execution module 530 is also used to transfer the tasks belonging to the original partition in the restricted task queues of local and other cores to the ready task queue of the core to which they belong, after returning the unconsumed time slices occupied by the execution of the second task to the original partition and when the remaining time slices of the time quota of the original partition are greater than zero.
[0183] Optionally, the multiple partitions are divided by the operating system periodically according to a partition time slice quota requirement, and the operating system fills a time slice for the current partition based on a pre-planned partition time slice quota in each period.
[0184] Obviously, the device of this embodiment can be used as Figure 1 The execution body of the method shown in Figure 1 The steps and corresponding functions shown in the figure are the same and will not be described in detail in this article.
[0185] Figure 6 This is a schematic diagram of the structure of an electronic device according to an embodiment of this specification. Figure 6 At the hardware level, the electronic device includes a processor, and optionally also includes an internal bus, a network interface, and a memory. The memory may include a memory, such as a high-speed random access memory (RAM), and may also include a non-volatile memory (non-volatile memory), such as at least one disk storage. Of course, the electronic device may also include hardware required for other services.
[0186] The processor, network interface and memory can be interconnected through an internal bus, which can be an ISA (Industry Standard Architecture) bus, a PCI (Peripheral Component Interconnect) bus or an EISA (Extended Industry Standard Architecture) bus. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 6 Only one bidirectional arrow is used in the diagram, but this does not mean that there is only one bus or only one type of bus.
[0187] The memory is used to store the program. Specifically, the program may include a program code, and the program code includes a computer operation instruction. The memory may include a memory and a non-volatile memory, and provides instructions and data to the processor.
[0188] Optionally, the processor reads the corresponding computer program from the non-volatile memory into the memory and then runs it, forming the above-mentioned Figure 5 The partition task scheduling device shown. Correspondingly, the processor executes the program stored in the memory and is specifically used to perform the following operations:
[0189] When the operating system creates a first task for the target core, the first task is allocated to a partition, and the first task is added to a local task queue.
[0190] A task to be executed is extracted from the local task queue, and when a second task to be executed is extracted, the partition to which the second task belongs is determined.
[0191] If the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task, the time quota of the partition to which the second task belongs is consumed to execute the second task; otherwise, the remaining time slice of the time quota of other partitions is borrowed to execute the second task by consuming the borrowed time quota of the other partitions.
[0192] The partition task scheduling method disclosed in the above-mentioned embodiment as shown in this specification can be applied to a processor and implemented by a processor. The processor may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by an integrated logic circuit of hardware in the processor or an instruction in the form of software. The above-mentioned processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiment of the present application can be directly embodied as a hardware decoding processor for execution, or a combination of hardware and software modules in the decoding processor for execution. The software module can be located in a mature storage medium in the field such as random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware.
[0193] Of course, in addition to software implementation, the electronic device of this specification does not exclude other implementation methods, such as logic devices or a combination of software and hardware, etc., that is to say, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.
[0194] In addition, the present application also provides a computer-readable storage medium, which stores one or more programs, and the one or more programs include instructions. When the above instructions are executed by a portable electronic device including multiple application programs, the portable electronic device can execute Figure 1 The steps of the method shown include:
[0195] When the operating system creates a first task for the target core, the first task is allocated to a partition, and the first task is added to a local task queue.
[0196] A task to be executed is extracted from the local task queue, and when a second task to be executed is extracted, the partition to which the second task belongs is determined.
[0197] If the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task, the time quota of the partition to which the second task belongs is consumed to execute the second task; otherwise, the remaining time slice of the time quota of other partitions is borrowed to execute the second task by consuming the borrowed time quota of the other partitions.
[0198] Those skilled in the art will appreciate that the embodiments of this specification may be provided as methods, systems or computer program products. Therefore, this specification may take the form of a complete hardware embodiment, a complete software embodiment or an embodiment combining software and hardware. Moreover, this specification may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0199] The above is a description of a specific embodiment of the specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0200] The above are only embodiments of this specification and are not intended to limit this specification. For those skilled in the art, this specification may be subject to various changes and modifications. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of this specification shall be included in the scope of the claims of this specification. In addition, all other embodiments obtained by ordinary technicians in this field without creative work shall fall within the scope of protection of this document.
Claims
1. A partition task scheduling method for an operating system, applied to a target core of a processor, characterized in that: The operating system is divided into a plurality of partitions, each of the plurality of partitions is configured with a time quota of the processor, the time quota refers to the number of allocated time slices, and the method comprises: In a case where the operating system creates a first task for the target core, assigning the first task to a partition and adding the first task to a local task queue; Extracting a task to be executed from the local task queue, and in the case where a second task to be executed is extracted, determining a partition to which the second task belongs; If the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task, the time quota of the partition to which the second task belongs is consumed to execute the second task; otherwise, the remaining time slice of the time quota of other partitions is borrowed to execute the second task by consuming the borrowed time quota of the other partitions.
2. The method according to claim 1, characterized in that The local task queue includes a ready task queue and a restricted task queue, the execution priority of the tasks in the ready task queue is higher than the execution priority of the tasks in the restricted task queue, the tasks in the ready task queue occupy the time slice of the time quota of the partition to which they belong when waiting for execution, and the tasks in the restricted task queue do not occupy the time slice of the time quota of the partition to which they belong when waiting for execution; The adding the first task to the local task queue includes: If the remaining time slice of the time quota of the partition to which the first task belongs supports the execution of the first task, the first task is added to the local ready task queue; otherwise, the first task is added to the local restricted task queue; The extracting the task to be executed from the local task queue includes: According to the execution priority of the task, the tasks to be executed are extracted from the local ready task queue and restricted task queue.
3. The method according to claim 2, characterized in that The processor further includes other cores except the target core; and the method further includes: When there are no tasks to be executed in the local ready task queue and restricted task queue, extract the third task to be executed from the ready task queue and restricted task queue of other cores according to the execution priority of the task; If the remaining time slice of the time quota of the partition to which the third task belongs supports the execution of the third task, the time quota of the partition to which the third task belongs is consumed to execute the third task; otherwise, the remaining time slice of the time quota of other partitions is borrowed to execute the third task by consuming the borrowed time quota of the other partitions.
4. The method according to claim 3, characterized in that: The extracting of tasks to be executed from the local ready task queue and the restricted task queue according to the execution priority of the tasks includes: Try to extract the tasks to be executed from the local ready task queue; If the task to be executed cannot be extracted from the local ready task queue, try to extract the task to be executed from the ready task queue of other cores; If the tasks to be executed cannot be extracted from the ready task queues of other cores, try to extract the tasks to be executed from the local restricted task queue; If the task to be executed cannot be extracted from the local restricted task queue, an attempt is made to extract the task to be executed from the restricted task queues of other cores.
5. The method according to claim 3, characterized in that: Also includes: In the event that a blockage occurs during the execution of the second task, the unconsumed time slice occupied by the execution of the second task is returned to the original partition.
6. The method according to claim 2, characterized in that Also includes: When the second task is awakened after being blocked during execution, and there are no other tasks to be executed in the local ready task queue and the restricted task queue, determine whether the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task; When it is determined that the remaining time slice of the time quota of the partition to which the second task belongs supports the execution of the second task, adding the second task again to the local ready task queue; When it is determined that the remaining time slice of the time quota of the partition to which the second task belongs does not support the execution of the second task, the second task is added again to the local restricted task queue.
7. The method according to claim 3, characterized in that Also includes: After blocking occurs during the execution of the second task, if there are other tasks to be executed in the local ready task queue and restricted task queue, the fourth task is extracted from the local ready task queue and restricted task queue for execution according to the execution priority of the task.
8. The method according to claim 7, characterized in that Also includes: When the second task is awakened after being blocked during execution and the fifth task is currently being executed, determine whether the remaining time slice of the time quota of the partition to which the fifth task belongs supports the execution of the fifth task; If it is determined that the execution of the fifth task is supported, adding the fifth task back to the local ready task queue; If it is determined that the fifth task is not supported for execution, the fifth task is added again to the local restricted task queue.
9. The method according to claim 3, characterized in that: Also includes: If the second task is preempted by other tasks during its execution, the unused time slices occupied by the second task are returned to the original partition, and it is determined whether the remaining time slices of the time quota of the partition to which the second task belongs can support the execution of the second task; If it is determined that the execution of the second task is supported, adding the second task again to the local ready task queue; If it is determined that the execution of the second task is not supported, the second task is added again to the local restricted task queue.
10. The method according to claim 5, characterized in that Also includes: After the unconsumed time slices occupied by the execution of the second task are returned to the original partition, and the remaining time slices of the time quota of the original partition are greater than zero, the tasks belonging to the original partition in the restricted task queues of the local and other cores are transferred to the ready task queue of the core to which they belong.
11. The method according to claim 1, characterized in that: The multiple partitions are divided by the operating system periodically according to the partition time slice quota requirements. In each period, the operating system fills the time slice for the current partition based on the pre-planned partition time slice quota.
12. An electronic device, characterized in that: The device comprises: A processor; and a memory configured to store computer executable instructions, which, when executed, cause the processor to perform the method according to any one of claims 1 to 11.
13. A computer-readable storage medium, characterized in that: The computer-readable storage medium is used to store computer-executable instructions, and the computer-executable instructions implement the method according to any one of claims 1 to 11 when executed by a processor.
Citation Information
Cited By
Task execution method, system and device, storage medium and program product
CN120295798A
A task execution method, system, device, storage medium and program product
CN120295798B