Task scheduling method and system, electronic device, storage medium and program product

By introducing a timed exit mechanism into round-robin scheduling, the problem of high-priority tasks being unable to be processed in a timely manner due to low-priority tasks occupying the task queue for a long time is solved, thus achieving fair scheduling and timely processing of various types of tasks in the task queue.

WO2026012112A1PCT designated stage Publication Date: 2026-01-15CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD +1
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/103046
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-08
Filing Date
2025-06-24
Publication Date
2026-01-15

AI Technical Summary

Technical Problem

In existing task scheduling mechanisms, strict priority scheduling may result in low-priority tasks never being scheduled and processed, while round-robin scheduling may cause high-priority tasks to be unable to be processed in a timely manner.

Method used

Based on round-robin scheduling, a timed exit mechanism is added. By detecting the idle status and processing time of the task queue, the task processing flow is terminated and unfinished tasks are put back into the queue, ensuring that high-priority tasks are not occupied for a long time.

Benefits of technology

This effectively avoids the problem of low-priority tasks occupying the time for a long time, causing high-priority tasks to be unable to be processed in a timely manner, while ensuring that all tasks have the opportunity to be scheduled, avoiding the risk of tasks starving.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025103046_15012026_PF_FP_ABST
    Figure CN2025103046_15012026_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a task scheduling method and system, an electronic device, a storage medium, and a program product. The method comprises: during round-robin scheduling of tasks in a plurality of task queues, when at least one first task queue among the plurality of task queues is detected to be empty, and a task is retrieved from at least one second task queue having a lower priority than the at least one first task queue for processing, if it is determined that a processing termination condition is met, terminating a task processing flow, and re-adding a task to be re-queued, determined on the basis of the processing states of a target number of tasks retrieved at the end of processing, to the second task queue to which said task originally belongs so as to wait for the next round of round-robin scheduling.
Need to check novelty before this filing date? Find Prior Art

Description

Task scheduling methods, systems, electronic devices, storage media, and program products Cross-reference to related applications

[0001] This disclosure claims priority to Chinese patent application No. 202410913690.3, filed on July 8, 2024, the entire contents of which are incorporated herein by reference. Technical Field

[0002] This disclosure relates to the field of computer technology, and in particular to a task scheduling method, system, electronic device, storage medium, and program product. Background Technology

[0003] Currently, servers often involve scheduling and processing hundreds of tasks. Using a reasonable task scheduling mechanism to achieve differentiated task scheduling and processing is beneficial to improving task processing performance and providing better response services to users.

[0004] Among related technologies, the most widely used task scheduling mechanisms are strict priority scheduling and round-robin scheduling. Strict priority scheduling, such as Priority Queuing (PQ), schedules low-priority tasks only after all high-priority tasks have been processed. This method has a drawback: if there are too many high-priority tasks, low-priority tasks may remain unprocessed, resulting in a "starvation" situation. Round-robin scheduling, such as Weighted Round Robin (WRR), schedules tasks of different priorities in a cyclical manner. While this effectively avoids the "starvation" phenomenon of low-priority tasks in strict priority scheduling, it may result in a large number of high-priority tasks not being processed in a timely manner due to the processing time of a single low-priority task. Summary of the Invention

[0005] In view of the problems mentioned in the background art, this disclosure provides a task scheduling method, system, electronic device, computer-readable storage medium, and computer program product that solves or at least partially solves the above problems. Specifically, as follows.

[0006] In a first embodiment, this disclosure provides a task scheduling method. The method includes: during round-robin scheduling of tasks in multiple task queues, when it is detected that at least one first task queue is empty and a task is retrieved from at least one second task queue for processing, determining whether an end-of-processing condition is met; wherein the multiple task queues correspond to different priorities, and the priority of the at least one second task queue is lower than the priority of the at least one first task queue; if the end-of-processing condition is met, then the task processing flow is terminated; based on the processing status of the target number of tasks retrieved at the time of end-of-processing, determining the tasks that need to be re-attached; and adding the tasks that need to be re-attached back to their original second task queues to await the next round of round-robin scheduling.

[0007] In a second embodiment, this disclosure provides another task scheduling method. The method includes: determining multiple tasks based on received access requests to a storage device; classifying the multiple tasks by priority, and adding the multiple tasks to corresponding task queues according to the priority classification results, resulting in multiple task queues with different priorities; during round-robin scheduling of tasks in the multiple task queues, if it is detected that at least one first task queue is empty and a task is retrieved from at least one second task queue for processing, and if it is determined that the end-processing condition is met, then the task processing flow ends; wherein the priority of the at least one second task queue is lower than the priority of the at least one first task queue; determining the tasks that need to be reassigned based on the processing status of a target number of tasks retrieved at the end of processing; and re-adding the tasks that need to be reassigned back to their original second task queues to await the next round of round-robin scheduling.

[0008] In a third embodiment, this disclosure provides a task scheduling system. The system includes: a client for sending multiple tasks to be processed to a server; a server for prioritizing the multiple tasks and adding them to corresponding task queues according to the priority classification results, resulting in multiple task queues with different priorities; and further, during the round-robin scheduling of tasks in the multiple task queues, when it is detected that at least one first task queue is empty and a task is retrieved from at least one second task queue for processing, determining whether an end-of-processing condition is met; wherein the priority of the at least one second task queue is lower than the priority of the at least one first task queue; if the end-of-processing condition is met, the task processing flow is terminated; based on the processing status of the target number of tasks retrieved at the end of processing, the tasks that need to be reassigned are determined; and the tasks that need to be reassigned are re-added to their original second task queues to await the next round-robin scheduling.

[0009] In a fourth embodiment, this disclosure provides an electronic device. The electronic device includes a memory and a processor, wherein the memory is used to store a program; and the processor, coupled to the memory, is used to execute the program stored in the memory to implement the steps in the various method embodiments provided in this disclosure.

[0010] In a fifth embodiment, this disclosure provides a computer-readable storage medium. This computer-readable storage medium stores a computer program; when executed by a processor, the computer program is capable of implementing the steps in the various method embodiments provided in this disclosure above.

[0011] In a sixth embodiment, this disclosure provides a computer program product. This computer program product includes a computer program that, when executed by a processor, causes the processor to perform the steps described in the various method embodiments of this disclosure.

[0012] In the technical solution provided in this disclosure, multiple task queues correspond to different priorities. During the round-robin scheduling of tasks in multiple task queues, if at least one first task queue is detected to be empty and a task is taken from at least one second task queue with a lower priority than the first task queue for processing, the task processing flow will end if the end-of-processing condition is met. Furthermore, the task to be put back will be determined based on the processing status of the target number of tasks taken at the time of end-of-processing, and the task to be put back will be added back to its original second task queue to wait for the next round-robin scheduling. This solution adopts a timed exit mechanism based on preset end-of-processing conditions on the basis of round-robin scheduling, which can effectively avoid the situation where low-priority tasks (such as tasks in the second task queue) take too long to process, resulting in a large number of high-priority tasks (such as tasks in the first task queue) not being processed in time. In addition, the use of round-robin scheduling, such as WRR scheduling, for multiple task queues can ensure that tasks in task queues of different priorities have a chance to be scheduled and processed, and there is no risk that some tasks (such as low-priority tasks in the second task queue) may be "starved" because they are never called. Attached Figure Description

[0013] To more clearly illustrate the technical solutions in the embodiments of this disclosure or the prior art, the accompanying drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the accompanying drawings described below are some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0014] Figure 1 is a flowchart illustrating a task scheduling method provided in an embodiment of this disclosure;

[0015] Figures 2a and 2b are schematic diagrams illustrating the principle of task scheduling processing provided by an exemplary embodiment of this disclosure;

[0016] Figure 3 is a schematic diagram of the task scheduling and processing system provided in an embodiment of this disclosure;

[0017] Figure 4 is a flowchart illustrating a task scheduling method provided in another embodiment of this disclosure;

[0018] Figures 5 and 6 are schematic diagrams of the structure of the task scheduling device provided in the embodiments of this disclosure;

[0019] Figure 7 is a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure. Detailed Implementation

[0020] In high-performance input / output (I / O) processing frameworks, such as the Elastic Block Storage (EBS) framework, the task scheduling mechanism plays a crucial role in the overall end-to-end I / O processing performance and the fairness of resource allocation. For example, in EBS products, since all I / O access requests need to be sent to the corresponding servers for processing, these servers often need to handle a large number of tasks (such as hundreds of read / write tasks, heartbeat query tasks, etc.) and their corresponding resource scheduling. When providing corresponding service requirements based on the different attributes of each task, using a reasonable task scheduling mechanism for differentiated task scheduling is beneficial to improving the overall end-to-end I / O processing performance of EBS, thereby providing timely service. EBS provides low-latency, persistent, and highly reliable block-level random storage for Elastic Compute Service (ECS) cloud servers.

[0021] Currently, a widely used task scheduling mechanism in high-performance I / O processing frameworks is strict priority scheduling, such as Priority Queuing (PQ). For example, Libevent is a lightweight, event-driven, high-performance open-source network library (also known as an event notification library; its main advantages are event-driven, high-performance, lightweight, and focused on networking). Its framework is a representative high-performance I / O processing framework, capable of efficiently managing thousands of concurrent connections and I / O tasks. It is suitable for applications requiring a large number of network connections and event processing. It employs a basic strict priority scheduling method to schedule all tasks. Strict priority scheduling strictly follows the order of task priority from highest to lowest. Only after all high-priority tasks have been processed can low-priority tasks have a chance to be scheduled. A major problem with this task scheduling method is that if there are too many high-priority tasks, low-priority tasks may not receive enough CPU (processor) time slices due to the continuous arrival of high-priority tasks, resulting in them being "starved" (in extreme cases, some low-priority tasks may never be scheduled). To avoid the "starvation" of low-priority tasks, another commonly used task scheduling mechanism is round-robin scheduling, such as WRR (Weighted Round Robin) scheduling and DWRR (Differential Weighted Round Robin) scheduling. Round-robin scheduling cycles through tasks of different priority levels. While this can effectively prevent the "starvation" of low-priority tasks when using strict priority scheduling, it may lead to a situation where the processing time of a low-priority task occupies a large number of high-priority tasks that cannot be scheduled and processed in a timely manner.

[0022] To address the problems existing in current task scheduling mechanisms, this disclosure provides a task scheduling scheme. This scheme adds a timed exit mechanism to polling scheduling, such as WRR scheduling, to prevent low-priority tasks from taking too long to process, thus avoiding the problem of a large number of high-priority tasks not being processed in a timely manner. Task scheduling refers to the process of selecting appropriate tasks to run on the processor. The timed exit mechanism will be described in detail below.

[0023] To enable those skilled in the art to better understand the present disclosure, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the accompanying drawings.

[0024] In some processes described in the specification, claims, and accompanying drawings of this disclosure, multiple operations appearing in a specific order are included. These operations may be executed out of order or in parallel. Operation numbers such as 101, 102, etc., are merely used to distinguish different operations and do not represent any execution order. Furthermore, these processes may include more or fewer operations, and these operations may be executed sequentially or in parallel. It should be noted that the terms "first," "second," etc., used herein are used to distinguish different messages, devices, modules, etc., and do not represent a sequential order, nor do they limit "first" and "second" to different types. The term "or / and" in this disclosure is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A or / and B indicates that A can exist alone, A and B can exist simultaneously, or B can exist alone. The character " / " in this disclosure generally indicates that the preceding and following related objects have an "or" relationship. It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a product or system comprising a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a product or system. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the product or system including said element. Furthermore, the following embodiments are merely some embodiments of this disclosure, not all embodiments. All other embodiments obtained by those skilled in the art based on the embodiments of this disclosure without inventive effort are within the scope of protection of this disclosure.

[0025] The technical solutions provided in this disclosure are described in detail below.

[0026] Figure 1 shows a flowchart of a task scheduling method provided in this disclosure. The execution subject of this method can be a server, such as a single server, a server cluster, or a cloud server. Specifically, taking the application of the task scheduling method to a cloud storage service platform scenario as an example, the execution subject can be a cloud server. The cloud storage service platform can be, but is not limited to, a product platform that can provide Elastic Block Storage (EBS) services (which can be simply referred to as an EBS product). Referring to Figure 1, the task scheduling method includes the following steps 101 to 104.

[0027] 101. During the round-robin scheduling of tasks in multiple task queues, when it is detected that at least one first task queue is empty and a task is taken from at least one second task queue for processing, it is determined whether the end processing condition is met; wherein, the multiple task queues correspond to different priorities, and the priority of the at least one second task queue is lower than that of the at least one first task queue.

[0028] 102. If the conditions for ending the process are met, the task processing flow will end.

[0029] 103. Based on the processing status of the target number of tasks retrieved at the end of processing, determine the tasks that need to be suspended.

[0030] 104. Add the tasks that need to be suspended back to their original second task queue to await the next round of scheduling.

[0031] In the above 101, multiple task queues are obtained by classifying the received tasks by level and adding them to the corresponding task queues according to the classification results. Since different tasks often have different service requirements, different tasks should be scheduled in a differentiated manner, that is, different tasks should have different priorities.

[0032] For example, some tasks are latency-sensitive and should be processed with higher priority. Specifically, for block storage servers in cloud storage service platforms, I / O-related tasks need to be processed promptly and quickly. If these tasks are blocked, I / O requests will fail to complete, resulting in response delays. Therefore, these I / O-related tasks should have high priority. On the other hand, a significant number of tasks are non-latency-sensitive, such as data statistics and heartbeat queries that must be executed on the I / O thread due to overlapping data structures. Since these tasks are not latency-sensitive and can be delayed for a period of time, they should have low priority and can be processed later.

[0033] Based on the above example, different tasks can be added to corresponding task queues according to their respective priority levels to obtain multiple task queues with different priorities. That is, before step 101 above, the method provided in this embodiment may also include the following steps 100a to 100b.

[0034] 100a. Prioritize the received multiple tasks to obtain the priority classification results of the multiple tasks.

[0035] 100b. According to the priority classification results of the multiple tasks, add the multiple tasks to the corresponding task queues respectively to obtain the multiple task queues with different priorities.

[0036] In a specific implementation scheme, the above step 100a, "to classify the received multiple tasks by priority and obtain the priority classification result of the multiple tasks", includes the following steps 100a1 to 100a2.

[0037] 100a1. Based on the task attributes of each of the multiple tasks, determine the task priority level corresponding to each of the multiple tasks.

[0038] 100a2. Based on the task priority level corresponding to each of the multiple tasks, classify the multiple tasks by priority.

[0039] The aforementioned task attributes include, but are not limited to, at least one of the following: task type (such as data statistics tasks, heartbeat query tasks, background tasks, read / write tasks, etc.), latency sensitivity level, and interruptibility level. A higher latency sensitivity level indicates that the task is more sensitive to latency. Furthermore, task priority levels can include two or more levels, such as high priority and low priority, or high priority, medium priority, and low priority, etc. This embodiment does not impose specific limitations on these levels.

[0040] Taking task priority levels, including high priority and low priority, as an example, in practical implementation, the interruptibility level indicates that read / write tasks, which cannot be interrupted and have a high latency sensitivity level, are often important tasks, thus determining the task priority level of such read / write tasks as high priority. Conversely, the interruptibility level indicates that tasks, such as data statistics tasks, heartbeat query tasks, and background tasks, can be interrupted, have a low latency sensitivity level (meaning that processing can be delayed for a certain period of time), and thus their importance is relatively low, thus determining the task priority level of these types of tasks as low priority. After classifying multiple tasks into high and low priorities, all tasks in the high-priority category can be cached sequentially into one task queue for scheduling, and all tasks in the low-priority category can be cached sequentially into another task queue for scheduling. The task queue used to cache high-priority tasks has the highest priority level, which can be simply referred to as the high-priority task queue; and the task queue used to cache low-priority tasks has the highest priority level, which can be simply referred to as the low-priority task queue.

[0041] As shown in the example above, in 100b, the priority of a task queue can reflect the task priority level of the tasks cached in that task queue.

[0042] After a task is retrieved from the task queue, it is handed over to a thread for execution. Currently, the mainstream user-space task processing uses a One-Loop-One-Thread thread model (one thread corresponds to one processing loop). In this model, the thread continuously retrieves and executes tasks from multiple task queues in a busy-polling manner. Tasks include idle tasks, asynchronous call tasks, timer tasks, etc. Idle tasks can be used to release memory resources occupied by suicide tasks. Data packets are assembled into RPC (Remote Procedure Call Protocol) requests in the idle task stage and the corresponding RPC processing logic is executed. A typical example of an RPC request in a block storage server scenario is an I / O-related read / write request. In addition, various asynchronous calls generated by the application during execution are often stored in a queue in the form of a task structure so that they can be processed in batches in a loop in a First-Come-First-Serve manner.

[0043] In this embodiment, when scheduling tasks entering different task queues, a corresponding round-robin scheduling mechanism is adopted, such as WRR or DWRR. Using scheduling mechanisms like WRR or DWRR, the scheduling opportunities enjoyed by each task queue are directly proportional to the weight of that task queue. This ensures that tasks in task queues of different priorities can share resources according to their corresponding weights and all have a chance to be scheduled, eliminating the risk of some tasks being "starved." Based on this, the method provided in this embodiment may further include the following steps S11 to S14.

[0044] S11. Determine the priority information and task scheduling ratio of the multiple task queues.

[0045] S12. Based on the priority information, determine the scheduling order of the multiple task queues.

[0046] S13. Based on the task scheduling ratio, determine the number of tasks that should be taken from the multiple task queues respectively.

[0047] S14. Based on the scheduling order corresponding to the multiple task queues and the number of tasks to be taken from the multiple task queues respectively, trigger the execution of the round-robin scheduling of tasks in the multiple task queues in step 101 above.

[0048] In S11 above, the task scheduling ratio of multiple task queues can be customized; or it can be determined in other ways, such as according to the priority of the task queue and the number of tasks it contains. In this case, the higher the priority of the task queue and the more tasks it contains, the higher the corresponding task scheduling ratio will be.

[0049] Since the service requirements of tasks in different task queues vary, the task scheduling ratio determined for each task queue must ensure that it can meet the service requirements of different task queues. For example, if task queue A is a high-priority task queue, meaning that all tasks in task queue A have a high priority level, since tasks in task queue A often need to be processed as quickly as possible, a high task scheduling ratio can be allocated to task queue A to ensure that a larger number of tasks are taken from task queue A for processing each time, thereby speeding up the task processing efficiency in task queue A.

[0050] In S12 above, the higher the priority of the task queue, the earlier its scheduling order can be. For example, if there are multiple task queues including task queue A and task queue B, and the priority of task queue A is higher than that of task queue B, then the scheduling order of task queue A and task queue B is: task queue A → task queue B.

[0051] In S13 above, the number of tasks to be taken from each of the multiple task queues can be determined directly based on the task scheduling ratio of the multiple task queues, or it can be further determined by combining the total number of tasks in each task queue. There is no limitation here.

[0052] For example, following the example in step S12 above, the task scheduling ratio of task queue A and task queue B is 3:2. The total number of tasks in task queue A is 30 and the total number of tasks in task queue B is 15. Then, according to the task scheduling ratio of 3:2, it can be determined that in the round-robin scheduling process, 3 tasks should be taken from task queue A for processing and 2 tasks should be taken from task queue B for processing each time. Alternatively, by further combining the total number of tasks in each task queue, it can be determined that in the round-robin scheduling process, the number of tasks to be taken from task queue A each time is 30*(3 / 5) = 18 and the number of tasks to be taken from task queue B each time is 15*(2 / 5) = 6.

[0053] In S14 above, the "round-robin scheduling of tasks in multiple task queues" in step 101 can be triggered based on the scheduling order corresponding to the multiple task queues and the number of tasks to be taken from the multiple task queues respectively.

[0054] In practical applications, during the round-robin scheduling of tasks in multiple task queues, it is considered that the processing time of a single low-priority task may be too long, resulting in a large number of high-priority tasks not being processed in a timely manner. To avoid this problem, the solution provided in this embodiment adds a timed exit mechanism to the round-robin scheduling. The timed exit mechanism can refer to the following: each time a round-robin scheduling loop is started for multiple task queues, the time difference ΔT between the start time T1 and the current time T2 is recorded, where ΔT can be the difference between T1 and T2, and the mathematical expression is ΔT = |T1 - T2|; when at least one of the first task queues (which is a higher-priority task queue) is empty, each time a certain number of tasks are taken from at least one second task queue with a lower priority than the at least one first task queue for processing, it is determined whether the time difference ΔT exceeds (i.e., is greater than) a set time threshold. If it exceeds the set time threshold, the processing flow of the tasks taken from the at least one second task queue is terminated. At the end of the round, if some tasks remain unprocessed and / or one task remains unfinished among the retrieved tasks, these unprocessed and / or unfinished tasks can be returned to the original second task queue to await processing in the next round of scheduling. Besides using the time difference ΔT mentioned above as a reference for implementing the timed exit mechanism, other reference information can also be used, such as the allowed timeout period for the second task queue, the number of tasks processed since the start of this round of scheduling, and so on.

[0055] Based on the above, the "determine whether the termination processing condition is met" in step 101 above may include steps 1011 to 1012.

[0056] 1011. Obtain reference information.

[0057] 1012. Based on the reference information, determine whether the conditions for ending the processing are met.

[0058] In the above 1011, the reference information includes, but is not limited to, at least one of the following: the time difference between the current time and the start time of this round of scheduling, the allowed timeout time corresponding to the second task queue, the number of tasks processed from the start of this round of scheduling to the present, the processing time used to process the target number of tasks, and the number of new tasks added to the at least one first task queue.

[0059] Furthermore, the aforementioned 1012 "determining whether the end-of-processing condition is met based on the reference information may include: determining that the end-of-processing condition is met when the time difference between the current time and the start time of the current round-robin scheduling is greater than a first time threshold; and / or determining a second time threshold based on the first time threshold and the allowed timeout time corresponding to the second task queue to which the target number of tasks belong; determining that the end-of-processing condition is met when the time difference between the current time and the start time of the current round-robin scheduling is greater than or equal to the second time threshold; and / or determining that the end-of-processing condition is met when the number of tasks processed from the start of the current round-robin scheduling to the present is greater than or equal to a first quantity threshold; and / or determining that the end-of-processing condition is met when the processing time used to process the target number of tasks is greater than or equal to a third time threshold; and / or determining that the end-of-processing condition is met when the number of new tasks added to at least one first task queue is greater than or equal to a second quantity threshold."

[0060] The various thresholds involved here (time threshold, quantity threshold) can be flexibly set according to the actual situation. Specifically, the second time threshold can be the sum of the first time threshold and the allowed timeout time corresponding to the second task queue to which the retrieved target data tasks belong. For a detailed understanding of this content, please refer to the examples given below in conjunction with Figures 2a and 2b.

[0061] Therefore, steps 101-104 above describe the task scheduling processing scheme of this embodiment, which adds a timed exit mechanism to the polling scheduling based on WRR and other similar methods. Specifically, in steps 101-102, the number of tasks retrieved from the second task queue is determined according to the task scheduling ratio corresponding to the second task queue. Furthermore, in step 103, the target number of tasks retrieved from the currently polled second task queue, and the tasks to be reassigned, include at least one first task with an unprocessed status and / or a second task with incomplete processing. That is, in step 103, "determining the tasks to be reassigned based on the processing status of the target number of tasks retrieved at the end of processing" includes: determining at least one unprocessed first task and / or an incomplete second task from the target number of tasks based on their processing status; and identifying the at least one first task and / or second task as tasks to be reassigned.

[0062] Furthermore, for the unfinished second task, in the next round-robin scheduling process, the second task can be processed again based on the interruption information of the second task at the end of the current round-robin scheduling, so as to speed up the processing speed of the second task in the next round-robin scheduling process; wherein, the interruption information of the second task includes, but is not limited to, the interruption location, the intermediate processing result value corresponding to the interruption, and other intermediate processing status information. Therefore, when the task to be put back includes the unfinished second task, the method provided in this embodiment may further include the following step 105.

[0063] 105. Record the interruption information of the second task when processing ends, so that when the second task is processed in the next round of scheduling, the second task can be continued to be processed based on the interruption information.

[0064] The interrupt information includes: interrupt location and intermediate processing status information. The intermediate processing status information includes intermediate processing result values.

[0065] In practice, when the second task is processed in the next round of scheduling, the second task can be continued from the corresponding interrupt position based on intermediate processing status information such as intermediate processing result value.

[0066] To facilitate understanding of the technical solution provided in this embodiment, several examples are given below to illustrate the solution.

[0067] Example 1.

[0068] Referring to Figure 2a, assume that multiple task queues include a high-priority task queue A and a low-priority task queue B. Task queue A contains the following 5 tasks: task1, task2, task3, task4, and task5. Task queue B contains several tasks such as task6, task7, task8, and task9. The task scheduling ratio between task queue A and task queue B is 3:2. Based on the priorities and corresponding task scheduling ratios of task queues A and B, round-robin scheduling is initiated using WRR (Wide Round Robin). During the first Loop 1, following the first-in-first-out (FIFO) principle, tasks 1, 2, and 3 are first retrieved from task queue A for processing, followed by tasks 6 and 7 from task queue B. After this first round of scheduling, tasks 4 and 5 remain in task queue A, and tasks 8 and 9 remain in task queue B. The process then continues, repeating the process of retrieving tasks 4 and 5 from task queue A and tasks 8 and 9 from task queue B. Since task queue A becomes empty after tasks 4 and 5 are processed, during the process of retrieving tasks 8 and 9 from task queue B, the system continuously checks whether the time difference ΔT between the current time and the start time of the first round-robin scheduling Loop 1 is greater than a set first time threshold. For example, if the time difference ΔT is greater than the set first time threshold while task 8 is being processed, the processing flow of task 8 will be interrupted, the first round-robin scheduling Loop 1 will end, and the unfinished task 8 and the remaining unprocessed task 9 will be added back to task queue B to await processing in the next round-robin scheduling (i.e., the second round-robin scheduling Loop 2). The triggering conditions for the next round-robin scheduling may include, but are not limited to, the addition of new tasks to task queue A, such as the number of new tasks added to task queue A being greater than or equal to a preset threshold.

[0069] Example 2.

[0070] Referring to Figure 2b, assume multiple task queues include task queue A, task queue B, task queue C, and task queue D with decreasing priorities. Task queue A contains the following 5 tasks: task11, task12, task13, task14, and task15; task queue B contains the following 4 tasks: task21, task22, task23, and task24; task queue C contains several tasks such as task31, task32, task33, and task34; and task queue D contains several tasks such as task41, task42, task43, and task44. The task scheduling ratio of task queues A to D is 3:2:2:2. Among them, task queues A and B are strong high-priority task queues. In the round-robin scheduling process of task queues A, B, C, and D using WRR, each round-robin scheduling must ensure that all tasks in task queues A and B are processed. Therefore, according to the priorities and corresponding task scheduling ratios of task queues A, B, C, and D, a round-robin scheduling process is initiated using WRR (Wait-Return). During the first Loop 1 round-robin scheduling, following the first-in-first-out (FIFO) principle, tasks are retrieved from each queue sequentially according to their priorities. Specifically, tasks 11, 12, and 13 are retrieved from queue A and processed first. After tasks 11, 12, and 13 are processed, tasks 21 and 22 are retrieved from task queue B for processing. After tasks 31 and 32 are processed, tasks 31 and 32 are retrieved from task queue C for processing. After tasks 31 and 32 are processed, tasks 41 and 42 are retrieved from task queue D for processing. After tasks 41 and 42 are processed, the first scheduling process in the first round of Loop 1 is completed.

[0071] After the first scheduling process is completed, task queue A has two remaining tasks, task 14 and task 15; task queue B has two remaining tasks, task 23 and task 24; task queue C has several remaining tasks, including task 33 and task 34; and task queue D has several remaining tasks, including task 43 and task 44. Next, the second scheduling process begins. During this second process, tasks will be retrieved from task queue A and processed sequentially, followed by tasks 23 and 24 from task queue B, tasks 33 and 34 from task queue C, and tasks 43 and 44 from task queue D. Since task queue A becomes empty after tasks 14 and 15 are processed, and task queue B also becomes empty after tasks 23 and 24 are processed, meaning all tasks in task queues A and B have been processed, during the process of retrieving tasks 33 and 34 from task queue C for processing, it will continuously check whether the time difference ΔT between the current time and the start time of the first round-robin scheduling Loop 1 is greater than the set first time threshold. Taking the first time threshold as 3 minutes (min) as an example, if the time difference ΔT is greater than 3 minutes, processing will continue, and during the continued processing, it will continuously check whether the duration of time difference ΔT exceeding 3 minutes reaches the allowed timeout time Tc corresponding to task queue C. If the allowed timeout Tc for task queue C is 30 seconds, then when a time difference ΔT is detected to be greater than or equal to 3min + 30s (the second threshold), or when timing starts when the time difference ΔT equals 3min and the timing duration reaches 30s, it can be determined that the time difference ΔT has exceeded 3min and reached the allowed timeout Tc for task queue C. Assuming that when the time difference ΔT exceeds 3min and reaches the allowed timeout for task queue C, task 34 is being processed, the processing of task 34 will be interrupted, the first round of scheduling (Loop 1) ends, and the unfinished task 34 will be added back to the original task queue C to await processing in the next round of scheduling (i.e., the second round of scheduling (Loop 2)).If, after processing tasks 33 and 34, the time difference ΔT exceeds 3 minutes but does not reach the allowed timeout time corresponding to task queue C, then the process will continue, retrieving tasks 43 and 44 from task queue D for processing. During processing, the process will continuously monitor whether the time difference ΔT exceeds the first time threshold (e.g., 3 minutes) and reaches the allowed timeout time Td corresponding to task queue D. If it does, but tasks 43 and 44 are not yet processed, the processing will end, and the first round of round scheduling Loop 1 will end. At the same time, the unprocessed and / or unprocessed tasks in tasks 43 and 44 will be added to the original task queue D to wait for the next round of round scheduling (i.e., the second round of round scheduling Loop 2) for processing. The triggering conditions for the next round of round-robin scheduling may include, but are not limited to: new tasks being added to task queue A and task queue B, for example, the total number of new tasks added to task queue A and task queue B is greater than a preset total number threshold, or the number of new tasks added to at least one of task queues A and task queue B is greater than or equal to a preset number threshold, and so on.

[0072] Furthermore, when task queues A and B are empty and polling is only performed on task queues C and D, in addition to determining whether to end processing based on the time difference ΔT and the allowed timeout, other reference information can also be used, such as the number of tasks processed since the start of this round of scheduling, the number of new tasks added to task queues A and B, and the processing time taken to process the target number of tasks retrieved. For example, continuing with Figure 2b, when task queues A and B are both empty and task queue C is polled, during the process of retrieving task 33 and task 34 from task queue C for processing, the processing can be terminated if it is determined that the number of tasks processed since the start of this round of scheduling is greater than or equal to a first quantity threshold, and / or the processing time for task 33 and task 34 is greater than or equal to a third time threshold, and / or the number of new tasks added to task queues A and B is greater than or equal to a second quantity threshold, and / or the number of new tasks added to at least one of task queues A and B is greater than or equal to a third quantity threshold, etc., and this first round of scheduling Loop 1 ends.

[0073] In summary, the technical solution provided in this embodiment involves multiple task queues with different priorities. These multiple task queues include a first task queue and a second task queue, with the priority of the second task queue being lower than that of the first task queue. During the round-robin scheduling of tasks in the multiple task queues, if at least one of the first task queues is detected to be empty, and a task is taken from at least one second task queue with a lower priority than the first task queue for processing, if the end-of-processing condition is met, the task processing flow will end. Furthermore, based on the processing status of the target number of tasks taken at the end of the processing, the tasks that need to be put back will be determined and added back to their original second task queue to await the next round of round-robin scheduling. This solution employs a timed exit mechanism based on preset termination conditions, building upon round-robin scheduling. This effectively prevents low-priority tasks (such as those in the second task queue) from taking too long to process, thus avoiding a large number of high-priority tasks (such as those in the first task queue) from being unable to be processed in a timely manner. Furthermore, by using round-robin scheduling, such as WRR scheduling, for multiple task queues, it can ensure that tasks in different priority task queues have a chance to be scheduled and processed, eliminating the risk that some tasks (such as low-priority tasks in the second task queue) may be "starved" because they are never called.

[0074] The task scheduling processing scheme disclosed above can be applied to block storage scenarios. Therefore, for block storage scenarios, this disclosure also provides another task scheduling method. Figure 4 shows a flowchart of this other task scheduling method. As shown in Figure 4, this other task scheduling method includes the following steps 201 to 205.

[0075] 201. Based on the received access request to the storage device, determine multiple tasks.

[0076] 202. Classify the multiple tasks by priority, and add the multiple tasks to the corresponding task queues according to the priority classification results to obtain multiple task queues with different priorities.

[0077] 203. During the round-robin scheduling of tasks in the plurality of task queues, if it is detected that at least one of the first task queues is empty and a task is taken from at least one second task queue for processing, if it is determined that the end processing condition is met, the task processing flow is terminated; wherein, the priority of the at least one second task queue is lower than the priority of the at least one first task queue.

[0078] 204. Based on the processing status of the target number of tasks retrieved at the end of processing, determine the tasks that need to be suspended.

[0079] 205. Add the tasks that need to be suspended back to their original second task queue to await the next round of scheduling.

[0080] In section 201 above, the storage device can be an Elastic Block Storage (EBS). An EBS, also known as a cloud disk, is a virtual storage device in the cloud that supports block interfaces. In specific implementations, the storage device can be, for example, an SSD (Solid State Disk) cloud disk. Correspondingly, the executing entity of this method can be a cloud server. The access request can be a storage device I / O-related request, such as a read / write access request, a heartbeat query request, etc. Furthermore, the access request can be sent by a client, which can be, but is not limited to, smartphones, tablets, laptops, smart wearable devices, etc. Specifically, the access request can be sent by an application installed on the client to the cloud server through the client.

[0081] For details on the implementation of steps 202 to 205 above, please refer to the relevant content in other embodiments of this disclosure.

[0082] For a detailed description of the implementation of each step in this embodiment, please refer to the relevant content in other embodiments. Furthermore, in addition to the steps described above, the method provided in this disclosure may also include other steps. For details of these other steps and their specific implementation, please refer to the relevant content in other embodiments, which will not be repeated here.

[0083] This disclosure also provides a task scheduling system. As shown in Figure 3, the task scheduling system includes a client 10 and a server 20.

[0084] Client 10 is used to send multiple tasks to be processed to server 20.

[0085] Server 20 is used to classify the multiple tasks by priority, and add the multiple tasks to their respective task queues according to the priority classification results, thereby obtaining multiple task queues with different priorities; and is also used to determine whether the end-of-processing condition is met when, during the round-robin scheduling of tasks in the multiple task queues, at least one first task queue is detected to be empty and a task is taken from at least one second task queue for processing; wherein the priority of the at least one second task queue is lower than that of the at least one first task queue; if the end-of-processing condition is met, the task processing flow is terminated; based on the processing status of the target number of tasks taken at the time of end-of-processing, the tasks that need to be put back are determined; and the tasks that need to be put back are added back to their original second task queues to wait for the next round-robin scheduling.

[0086] The aforementioned tasks can be client-side access requests to the storage device. Therefore, the task scheduling system may also include storage device 30 and client 10.

[0087] Storage end 30 is used to store data.

[0088] Client 10 sends multiple tasks related to storage terminal 30 to server 20.

[0089] For a detailed description of each terminal in the system described in this embodiment and its specific functional implementation, please refer to the relevant content in other embodiments. Furthermore, in addition to the steps described above, each terminal in the system provided by this disclosure may also implement other functional steps. For details of other steps that each terminal may implement and their specific implementation descriptions, please refer to the relevant content in other embodiments, which will not be repeated here.

[0090] This disclosure also provides apparatus corresponding to the various method embodiments. Details are as follows.

[0091] Figure 5 shows a schematic diagram of a task scheduling device provided in this disclosure, which is deployed in the server 20 shown in Figures 2a, 2b and 3. As shown in Figure 5, the task scheduling device includes: a judgment module 31, an end module 32, a determination module 33 and an addition module 34.

[0092] The judgment module 31 is used to determine whether the termination condition is met when, during the round-robin scheduling of tasks in multiple task queues, it is detected that at least one first task queue in the multiple task queues is empty and a task is taken from at least one second task queue for processing; wherein, the multiple task queues correspond to different priorities, and the priority of the at least one second task queue is lower than the priority of the at least one first task queue.

[0093] The termination module 32 is used to terminate the task processing flow if the termination conditions are met.

[0094] The determination module 33 is used to determine the tasks that need to be put back based on the processing status of the target number of tasks retrieved at the end of processing.

[0095] Add module 34 to add tasks that need to be suspended back to their original second task queue so that they can wait for the next round of scheduling.

[0096] Furthermore, when the aforementioned judgment module 31 is used to determine whether the end processing condition is met, it can be specifically used to: obtain reference information; and determine whether the end processing condition is met based on the reference information; wherein the reference information includes at least one of the following: the time difference between the current time and the start time of this round of scheduling, the allowed timeout time corresponding to the second task queue, the number of tasks processed from the start of this round of scheduling to the present, the processing time used to process the target number of tasks, and the number of new tasks added to the at least one first task queue.

[0097] Further, when the aforementioned judgment module 31 is used to determine whether the end-of-processing condition is met based on the reference information, it can be specifically used to: determine that the end-of-processing condition is met when the time difference between the current time and the start time of the current round-robin scheduling is greater than a first time threshold; and / or, determine a second time threshold based on the first time threshold and the allowed timeout time corresponding to the second task queue to which the target number of tasks belong; determine that the end-of-processing condition is met when the time difference between the current time and the start time of the current round-robin scheduling is greater than or equal to the second time threshold; and / or, determine that the end-of-processing condition is met when the number of tasks processed from the start of the current round-robin scheduling to the present is greater than or equal to a first quantity threshold; and / or, determine that the end-of-processing condition is met when the processing time used to process the target number of tasks is greater than or equal to a third time threshold; and / or, determine that the end-of-processing condition is met when the number of new tasks added to at least one first task queue is greater than or equal to a second quantity threshold.

[0098] Furthermore, the tasks that need to be put back include: at least one first task whose processing status is unprocessed and / or a second task whose processing is incomplete among the target number of tasks.

[0099] Furthermore, when the task to be reassigned includes the second task, the device further includes: a recording module, used to record the interruption information of the second task when processing ends, so that when the second task is processed in the next round of scheduling, the second task can be processed again based on the interruption information; wherein, the interruption information includes: interruption location and intermediate processing status information.

[0100] Furthermore, the aforementioned determining module 33 is also used to: determine the priority information and task scheduling ratio of the plurality of task queues; determine the scheduling order of the plurality of task queues based on the priority information; determine the number of tasks to be taken from the plurality of task queues based on the task scheduling ratio; and the device further includes a triggering module, used to trigger the execution of round-robin scheduling of tasks in the plurality of task queues according to the scheduling order of the plurality of task queues and the number of tasks to be taken from the plurality of task queues.

[0101] Furthermore, the aforementioned determining module 33, when determining the task scheduling ratio of the plurality of task queues, is specifically used to: obtain the task scheduling ratio of the plurality of task queues from the configuration information of the plurality of task queues; or, determine the task scheduling ratio of the plurality of task queues based on the priority information of the plurality of task queues and the number of tasks contained in each of the plurality of task queues.

[0102] Furthermore, the device further includes: a classification module, used to classify the received multiple tasks by priority to obtain the priority classification result of the multiple tasks; and the addition module 34 is also used to add the multiple tasks to the corresponding task queues according to the priority classification result of the multiple tasks to obtain the multiple task queues corresponding to different priorities.

[0103] Furthermore, the aforementioned classification module, when used to prioritize and classify multiple received tasks to obtain priority classification results, specifically performs the following steps: determining the task priority level corresponding to each of the multiple tasks based on their respective task attributes; and classifying the multiple tasks based on their respective task priority levels. The task attributes include at least one of the following: task type, latency sensitivity level, and interruptibility level.

[0104] For a detailed description of the functions of each module in the information processing device provided in this embodiment, please refer to the relevant content in other embodiments of this disclosure.

[0105] Figure 6 shows a schematic diagram of another task scheduling device provided in this disclosure, which is deployed as server 20 shown in Figures 2a, 2b and 3. As shown in Figure 6, the task scheduling device includes: a determination module 41, a classification module 42, a termination judgment module 43 and an addition module 44.

[0106] The determination module 41 is used to determine multiple tasks based on the received access requests to the storage device.

[0107] The classification module 42 is used to classify the multiple tasks by priority, so as to add the multiple tasks to the corresponding task queues according to the priority classification results, thereby obtaining multiple task queues with different priorities.

[0108] The termination determination module 43 is used to terminate the task processing flow when, during the round-robin scheduling of tasks in the plurality of task queues, it is detected that at least one of the first task queues is empty and a task is taken from at least one second task queue for processing, if it is determined that the termination processing condition is met; wherein, the priority of the at least one second task queue is lower than the priority of the at least one first task queue.

[0109] The determining module 41 is also used to determine the tasks that need to be put back based on the processing status of the target number of tasks retrieved at the end of processing.

[0110] Add module 44 to add tasks that need to be suspended back to their original second task queue so that they can wait for the next round of scheduling.

[0111] The aforementioned storage device is a flexible block storage device.

[0112] For a detailed description of the functions of each module in the information processing device provided in this embodiment, please refer to the relevant content in other embodiments of this disclosure.

[0113] Figure 7 shows a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure. As shown in Figure 7, the electronic device includes a memory 51 and a processor 52. The memory 51 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk.

[0114] The aforementioned memory 51 is used to store programs.

[0115] The processor 52, coupled to the memory 51, is used to execute the program stored in the memory for the steps or functions in the methods provided in the embodiments of this disclosure.

[0116] Furthermore, as shown in Figure 7, the electronic device also includes other components such as a communication component 53, a power supply component 54, and an audio component 55. Figure 7 only schematically shows some of the components and does not imply that the electronic device includes only the components shown in Figure 7.

[0117] Electronic devices can serve as servers, such as cloud servers.

[0118] This disclosure also provides a computer-readable storage medium storing a computer program that, when executed by a computer, can implement the method steps provided in the above embodiments.

[0119] This disclosure also provides a computer program product, including a computer program that, when executed by a processor, enables the processor to implement the method steps or functions provided in the above embodiments.

[0120] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus necessary general-purpose hardware platforms, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solutions, in essence or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments or some parts of the embodiments.

[0121] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this disclosure, and are not intended to limit them. Although this disclosure has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this disclosure.

Claims

1. A task scheduling method, comprising: During the round-robin scheduling of tasks in multiple task queues, when it is detected that at least one of the first task queues is empty and a task is taken from at least one second task queue for processing, it is determined whether the end processing condition is met; wherein, the multiple task queues correspond to different priorities, and the priority of the at least one second task queue is lower than the priority of the at least one first task queue; If the termination conditions are met, the task processing flow will end. Based on the processing status of the target number of tasks retrieved at the end of processing, determine the tasks that need to be suspended. Tasks that need to be suspended should be added back to their original second task queue to await processing in the next round of scheduling.

2. The method according to claim 1, wherein, Determine whether the termination conditions are met, including: Obtain reference information; Based on the reference information, determine whether the termination conditions are met; The reference information includes at least one of the following: the time difference between the current time and the start time of this round of scheduling, the allowed timeout time corresponding to the second task queue, the number of tasks processed from the start of this round of scheduling to the present, the processing time used to process the target number of tasks, and the number of new tasks added to the at least one first task queue.

3. The method according to claim 2, wherein, Based on the reference information, determine whether the termination conditions are met, including: When the time difference between the current time and the start time of this round of scheduling is greater than the first time threshold, it is determined that the termination condition is met; and / or A second time threshold is determined based on the first time threshold and the allowed timeout time corresponding to the second task queue to which the target number of tasks belong; when the time difference between the current time and the start time of this round of scheduling is greater than or equal to the second time threshold, it is determined that the termination condition is met; and / or When the number of tasks processed since the start of this round of scheduling is greater than or equal to a first threshold, it is determined that the termination condition is met; and / or When the processing time for processing the target number of tasks is greater than or equal to the third time threshold, the processing termination condition is determined to be met; and / or When the number of new tasks added to at least one first task queue is greater than or equal to the second quantity threshold, the termination processing condition is determined to be met.

4. The method according to any one of claims 1 to 3, wherein, Tasks that need to be suspended include: At least one first task among the target number of tasks is in an unprocessed state; and / or The target number of tasks includes the second task that is currently in the process of being processed but not yet completed.

5. The method according to claim 4, wherein, When the task that needs to be suspended includes the second task, the method further includes: Record the interruption information of the second task when processing ends, so that when the second task is processed in the next round of scheduling, the second task can be processed again based on the interruption information; The interrupt information includes: interrupt location and intermediate processing status information.

6. The method according to any one of claims 1 to 3, wherein, Also includes: Determine the priority information and task scheduling ratio of the multiple task queues; Based on the priority information, the scheduling order of the multiple task queues is determined; Based on the task scheduling ratio, determine the number of tasks that should be taken from the multiple task queues respectively; Based on the scheduling order of the multiple task queues and the number of tasks to be retrieved from the multiple task queues respectively, the round-robin scheduling of tasks in the multiple task queues is triggered. The task scheduling ratio of the multiple task queues is obtained from the configuration information of the multiple task queues or It is determined based on the priority information of the multiple task queues and the number of tasks contained in each of the multiple task queues.

7. A task scheduling method, comprising: Based on the received access requests to the storage device, determine multiple tasks; The multiple tasks are prioritized and then added to their respective task queues according to the priority classification results, resulting in multiple task queues with different priorities. During the round-robin scheduling of tasks in the plurality of task queues, if it is detected that at least one of the first task queues is empty and a task is taken from at least one second task queue for processing, if it is determined that the termination condition is met, the task processing flow ends; wherein, the priority of the at least one second task queue is lower than the priority of the at least one first task queue. Based on the processing status of the target number of tasks retrieved at the end of processing, determine the tasks that need to be suspended. The tasks that need to be suspended will be added back to their original second task queue to await processing in the next round of scheduling.

8. A task scheduling system, comprising: The client is used to send multiple tasks to be processed to the server; The server-side is used to prioritize the multiple tasks and add them to corresponding task queues according to the priority classification results, resulting in multiple task queues with different priorities. Furthermore, during the round-robin scheduling of tasks in the multiple task queues, when at least one first task queue is detected to be empty and a task is retrieved from at least one second task queue for processing, the server determines whether an end-of-processing condition is met; wherein the priority of the at least one second task queue is lower than the priority of the at least one first task queue; if the end-of-processing condition is met, the task processing flow is terminated; and based on the processing status of the target number of tasks retrieved at the time of end-of-processing, the server determines the tasks that need to be reassigned. Tasks that need to be suspended should be added back to their original second task queue to await processing in the next round of scheduling.

9. An electronic device, comprising: Memory and processor; among which, The memory is used to store programs; The processor, coupled to the memory, is used to execute a program stored in the memory to implement the steps in the task scheduling method of any one of claims 1 to 6, or to implement the steps in the task scheduling method of claim 7.

10. A computer-readable storage medium, wherein, The computer-readable storage medium stores a computer program; when the computer program is executed by a computer, it can implement the steps of the task scheduling method according to any one of claims 1 to 6, or implement the steps of the task scheduling method according to claim 7.

11. A computer program product comprising a computer program that, when executed by a processor, causes the processor to implement the steps of the task scheduling method according to any one of claims 1 to 6, or to implement the steps of the task scheduling method according to claim 7.

Citation Information

Patent Citations

  • Arbitration management method of task queue, storage medium and solid state disk

    CN114265798A

  • Server and interrupt-based task scheduling method

    CN115048201A

  • Scheduling method and device, chip, electronic equipment and storage medium

    CN115237556A

  • Task scheduling method and device of intelligent camera system, camera and storage medium

    CN116483549A

  • Adjusting a dispatch ratio for multiple queues

    US20210334133A1