Task scheduling method and device, equipment and storage medium

By scheduling based on task type in cloud computing resources and setting priority to prioritize the execution of virtual machine tasks, the problem of possible jitter in virtual machine tasks in the existing technology is solved, and the task scheduling is achieved stabilization and efficient.

CN119645589AActive Publication Date: 2025-03-18BEIJING BAIDU NETCOM SCI & TECH CO LTD
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
CN202411669956.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-20
Publication Date
2025-03-18
Estimated Expiration
2044-11-20

AI Technical Summary

Technical Problem

Existing task scheduling methods cannot effectively distinguish virtual machine tasks from other user tasks, resulting in jitter in virtual machine tasks, affecting stable operation.

Method used

By obtaining tasks in the run queue, scheduling is performed in the central processor of cloud computing resources based on the task type (virtual machine thread, system thread and best-effort thread), and priorities are set to prioritize the execution of virtual machine tasks.

Benefits of technology

By clarifying the task type and priority, the stable and optimized execution of virtual machine tasks is achieved, and the efficiency and stability of task scheduling are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119645589A_ABST
    Figure CN119645589A_ABST
Patent Text Reader

Abstract

The invention provides a task scheduling method and device, equipment and a storage medium, and relates to the technical field of computers, in particular to the technical fields of cloud computing, data processing, task scheduling and the like. According to the specific implementation scheme, at least two tasks in a running queue are obtained; based on the task type of each task, scheduling at least two tasks in a central processing unit of cloud computing resources; wherein the task type comprises a virtual machine thread type, a system thread type and a best effort thread type; wherein the priority of the virtual machine thread type is higher than that of the system thread type, and the priority of the system thread type is higher than that of the best effort thread type. According to the method, the execution stability of the virtual machine thread type task can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technology, and in particular to technical fields such as cloud computing, data processing, and task scheduling. Background Art

[0002] In traditional cloud computing scenarios, cloud service providers use virtualization technology to divide physical servers into multiple virtual machines for users to use. However, in order to ensure the stability, security and efficiency of cloud services, some central processing unit (CPU) resources need to be reserved to run network virtualization, storage virtualization and system monitoring tasks, which increases the overhead of virtualization resources. In order to reduce this overhead, the industry generally adopts the method of offloading virtualization tasks and non-essential tasks to smart cards, so that the physical CPU cores on the server can be fully used to run user virtual machines. However, the host machine still runs some other types of tasks (VM tasks) in addition to the tasks (VM tasks) of the virtual central processing unit (vCPU) threads running the virtual machine, such as kernel tasks and necessary monitoring tasks. Since the current task scheduling method cannot distinguish between VM tasks and other user tasks, it may cause VM tasks to jitter. Therefore, how to ensure the stable operation of tasks has gradually become a problem that needs to be solved urgently. Summary of the invention

[0003] The present disclosure provides a task scheduling method, apparatus, device and storage medium.

[0004] According to one aspect of the present disclosure, a task scheduling method is provided, comprising:

[0005] Get at least two tasks in the run queue;

[0006] scheduling at least two tasks in a central processing unit of the cloud computing resource based on a task type of each task;

[0007] Among them, the task types include virtual machine thread (VM) type, system thread (SYS) type and best effort (BE) thread type; among them, the priority of the virtual machine thread type is higher than the priority of the system thread type, and the priority of the system thread type is higher than the priority of the best effort thread type.

[0008] According to another aspect of the present disclosure, a task scheduling method is provided, comprising:

[0009] Get at least two tasks in the run queue;

[0010] Based on the task type of each task, at least two tasks are scheduled in a multi-core cloud computing resource; wherein the multi-core cloud computing resource includes a plurality of central processing units;

[0011] Among them, the task type includes a virtual machine thread type, a system thread type and a best-effort thread type; among them, the priority of the virtual machine thread type is higher than the priority of the system thread type, and the priority of the system thread type is higher than the priority of the best-effort thread type.

[0012] According to another aspect of the present disclosure, there is provided a task scheduling device, comprising:

[0013] A first acquisition module, used to acquire at least two tasks in the running queue;

[0014] A first scheduling module, configured to schedule at least two tasks in a central processing unit of the cloud computing resources based on a task type of each task;

[0015] Among them, the task type includes a virtual machine thread type, a system thread type and a best-effort thread type; among them, the priority of the virtual machine thread type is higher than the priority of the system thread type, and the priority of the system thread type is higher than the priority of the best-effort thread type.

[0016] According to another aspect of the present disclosure, there is provided a task scheduling device, comprising:

[0017] A second acquisition module is used to acquire at least two tasks in the running queue;

[0018] A second scheduling module, configured to schedule at least two tasks in a multi-core cloud computing resource based on the task type of each task; wherein the multi-core cloud computing resource includes a plurality of central processing units;

[0019] Among them, the task type includes a virtual machine thread type, a system thread type and a best-effort thread type; among them, the priority of the virtual machine thread type is higher than the priority of the system thread type, and the priority of the system thread type is higher than the priority of the best-effort thread type.

[0020] According to another aspect of the present disclosure, there is provided an electronic device, comprising:

[0021] at least one processor; and

[0022] a memory communicatively connected to the at least one processor; wherein,

[0023] The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute any method in the embodiments of the present disclosure.

[0024] According to another aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to enable the computer to execute any method according to the embodiments of the present disclosure.

[0025] According to another aspect of the present disclosure, a computer program product is provided, including a computer program, which implements any method according to the embodiments of the present disclosure when executed by a processor.

[0026] The present invention divides the tasks on the host machine into different types according to their characteristics, and sets a corresponding execution priority for each type. By utilizing a preset task scheduling strategy to schedule different types of tasks on the CPU, it is possible to prioritize and optimize the execution of VM tasks, thereby improving the execution stability of VM tasks.

[0027] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] The accompanying drawings are used to better understand the present solution and do not constitute a limitation of the present disclosure.

[0029] Figure 1 is a schematic diagram of an application scenario according to an embodiment of the present disclosure;

[0030] Figure 2 is a flowchart of a task scheduling method according to an embodiment of the present disclosure;

[0031] Figure 3A This is a schematic diagram of the storage method of VM type tasks;

[0032] Figure 3B This is a diagram of the storage method of SYS type tasks;

[0033] Figure 3C This is a schematic diagram of the storage method of BE type tasks;

[0034] Figure 4 is a schematic diagram of scheduling VM type tasks and SYS type tasks according to an embodiment of the present disclosure;

[0035] Figure 5 is a schematic diagram of scheduling VM type tasks and BE type tasks according to an embodiment of the present disclosure;

[0036] Figure 6 is a schematic diagram of scheduling three types of tasks according to an embodiment of the present disclosure;

[0037] Figure 7It is a schematic diagram of the migration of SYS type tasks and BE type tasks to the idle CPU;

[0038] Figure 8 It is a schematic diagram of migrating multiple BE type tasks to multiple CPUs;

[0039] Fig. 9 is a flowchart of a task scheduling method according to an embodiment of the present disclosure;

[0040] Fig.10 is a structural diagram of a task scheduling device 1000 according to an embodiment of the present disclosure;

[0041] Fig.11 is a structural diagram of a task scheduling device 1100 according to an embodiment of the present disclosure;

[0042] Fig.12 A schematic block diagram of an example electronic device 1200 is shown that can be used to implement embodiments of the present disclosure. DETAILED DESCRIPTION

[0043] The following is a description of exemplary embodiments of the present disclosure in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding, which should be considered as merely exemplary. Therefore, it should be recognized by those of ordinary skill in the art that various changes and modifications may be made to the embodiments described herein without departing from the scope of the present disclosure. Similarly, for the sake of clarity and conciseness, the description of well-known functions and structures is omitted in the following description.

[0044] The “and / or” in the embodiments of the present disclosure indicates that three relationships may exist. For example, A and / or B may indicate the following three situations: A exists alone, A and B exist at the same time, and B exists alone. The term “at least one” herein indicates any combination of at least two of any one or more of a plurality of types. For example, at least one of A, B, and C may indicate any one or more elements selected from the set consisting of A, B, and C. The terms “first” and “second” herein refer to and distinguish between multiple similar technical terms, and do not mean to limit the order or to limit the meaning to only two. For example, the first feature and the second feature refer to two types / two features. The first feature may be one or more, and the second feature may also be one or more.

[0045] In traditional cloud computing scenarios, cloud service providers use virtualization technology to divide a single physical server into multiple virtual machines for users to use. In this virtualized scenario, all physical CPUs on the server cannot be fully allocated to the user's virtual machines because cloud service providers must reserve some CPU resources to support key tasks such as network virtualization, storage virtualization, and system monitoring. These tasks are crucial to ensuring the stability, security, and efficiency of cloud services, but they also result in additional consumption of virtualization resources.

[0046] In recent years, the industry has explored a strategy to reduce virtualization resource overhead: migrating these virtualization tasks and some non-core tasks to smart cards for execution. Smart cards are responsible for network virtualization, storage management, monitoring, etc., while the host machine focuses on running the tasks necessary to keep the virtual machines running. This shift allows all physical CPU cores on the server to be fully utilized and directly allocated to virtual machines.

[0047] Nevertheless, the host machine will still retain some tasks other than the VM tasks of the virtual machine, such as kernel tasks and necessary monitoring tasks. If we continue to rely on the Linux kernel's default Completely Fair Scheduler (CFS) to schedule these tasks, the VM tasks may experience performance fluctuations due to improper scheduling, i.e. "jitter", thus affecting the user experience. This is because from the perspective of the Linux kernel, VM tasks are no different in essence from other user tasks, and CFS will not give them special treatment. Even by adjusting the priority of VM tasks or limiting the CPU usage of other user tasks, it is difficult to completely eliminate the risk of jitter.

[0048] Therefore, the current existing task scheduling methods cannot stably schedule and execute vCPU tasks.

[0049] In order to solve the above problems, an embodiment of the present disclosure proposes a task scheduling method. Figure 1 is a schematic diagram of an application scenario according to an embodiment of the present disclosure, such as Figure 1As shown, the application scenario diagram of the embodiment of the present disclosure may include but is not limited to a terminal device 110 and a server 120, and the terminal device 110 and the server 120 may communicate with each other through any type of wired or wireless network. Specifically, the terminal device 110 may be used to upload configuration information to the server 120; the server 120 may classify tasks according to the configuration information, set the priority corresponding to the tasks, and schedule different types of tasks using a preset scheduling strategy. Among them, the terminal device 110 proposed in the embodiment of the present disclosure includes but is not limited to electronic devices such as mobile phones, computers, intelligent voice interaction devices, smart home appliances, vehicle terminals, game consoles, e-book readers, multimedia playback devices, wearable devices, etc.; the server 120 may be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms. In addition, the embodiment of the present disclosure does not specifically limit the number of terminal devices 110. For example, the application scenario diagram of the embodiment of the present disclosure may include one or more terminal devices 110.

[0050] Figure 2 is a flowchart of a task scheduling method according to an embodiment of the present disclosure, including:

[0051] S210, obtaining at least two tasks in the running queue;

[0052] S220, scheduling at least two tasks in a CPU of the cloud computing resource based on the task type of each task;

[0053] Among them, the task types include virtual machine thread (VM) type, system thread (SYS) type and best effort thread (BE) type; among them, the priority of the virtual machine thread type is higher than the priority of the system thread type, and the priority of the system thread type is higher than the priority of the best effort thread type.

[0054] In some examples, before scheduling these three types of tasks, the system can set up a new scheduling class that is specifically responsible for scheduling these three types of tasks. There are five scheduling classes in the current Linux kernel, namely: shutdown scheduling class, deadline scheduling class, real-time scheduling class, fair scheduling class and idle scheduling class, and the priorities of these five scheduling classes decrease in sequence. The new scheduling class disclosed in the present invention is set between the fair scheduling class and the idle scheduling class, that is, the priority of the new scheduling class is lower than the fair scheduling class and higher than the idle scheduling class. In some examples, different types of data structures are used for storage for different types of tasks. For example, Figure 3A This is a schematic diagram of the storage method of VM type tasks. Figure 3B This is a diagram of the storage method of SYS type tasks. Figure 3C This is a schematic diagram of the storage method of BE type tasks. Figure 3A-3C As shown in the figure, for VM type tasks and SYS type tasks, a red-black tree can be used to store each, where the leftmost task in each red-black tree is the task that needs to be executed. For BE type tasks, a linked list can be used for storage. In the BE type task linked list, BE type tasks follow the First Input First Output (FIFO) principle.

[0055] By adopting the above task scheduling method, by setting up a special scheduling class to schedule VM type tasks, SYS type tasks and BE type tasks, it is possible to intelligently allocate CPU resources according to the characteristics and requirements of different tasks, ensure that high-priority tasks (such as VM type tasks) have the opportunity to be executed first, and improve the execution stability of high-priority tasks.

[0056] In some embodiments, a VM-type task includes: a vCPU thread running a virtual machine;

[0057] The SYS type tasks include: at least one of a kernel thread and a virtualization simulation thread in an operating system;

[0058] BE thread type tasks include: user processes.

[0059] By clearly classifying various types of tasks and setting corresponding priorities, it helps to avoid competition and conflicts for CPU resources and improves the efficiency of task scheduling.

[0060] In some implementations, scheduling at least two tasks in a CPU of a cloud computing resource based on a task type of each task includes:

[0061] In the case where the at least two tasks include a VM type task and a SYS type task, the VM type task and the SYS type task are scheduled to be executed alternately on the CPU, and the running time of the SYS type task is limited.

[0062] In some implementations, scheduling VM type tasks and SYS type tasks to run alternately on the CPU and limiting the running time of SYS type tasks includes:

[0063] When the running time of a VM-type task reaches the allocated time slice, the VM-type task is scheduled to exit the CPU;

[0064] Furthermore, when the running time of a task of the SYS type reaches one or more clock cycles, the task of the SYS type is scheduled to exit the CPU.

[0065] Figure 4 FIG. 1 is a schematic diagram of scheduling VM type tasks and SYS type tasks according to an embodiment of the present disclosure. Figure 4 As shown in the figure, the dashed box is the run queue, and there is a SYS type task in the queue. After the VM type task runs the allocated time slice, the CPU is given to the SYS type task in the run queue. Among them, the SYS type task is basically a task that runs very fast and can be completed within one clock cycle. After the SYS type task runs one clock cycle, the CPU is given to the VM type task and runs.

[0066] By setting the running time slice and clock cycle limits for VM type tasks and SYS type tasks respectively, it can be ensured that VM type tasks will not occupy CPU resources for a long time, avoiding the situation where SYS type tasks have to wait for a long time or delay execution.

[0067] In some implementations, scheduling at least two tasks in a CPU of a cloud computing resource based on a task type of each task includes:

[0068] In the case where the at least two tasks include a VM-type task and a BE-type task:

[0069] Schedule VM type tasks so that tasks in the CPU in running state are VM type tasks; and record the waiting time of BE type tasks;

[0070] When the waiting time of the BE type task reaches the first threshold, the priority of the BE type task is increased so that the task in the running state in the CPU is switched to the BE type task.

[0071] In some implementations, when the execution time of the BE type task reaches a second threshold, the priority of the BE type task is reduced so that the BE type task exits the CPU; and the waiting time of the BE type task is re-recorded.

[0072] Figure 5 FIG. 1 is a schematic diagram of scheduling VM type tasks and BE type tasks according to an embodiment of the present disclosure. Figure 5 As shown, there is a BE type task in the running queue, and at the same time, a VM type task is running. In this case, the running priority of the VM type task must be guaranteed first. When the VM type task triggers the scheduling and actively gives up the CPU, the BE type task can obtain the CPU and run. When the VM task does not give up the CPU to the BE type task, the BE type task cannot get the opportunity to run, which easily leads to the starvation of the BE type task. Therefore, by recording the waiting time of the BE type task, when the waiting time reaches the preset first threshold, the priority of the BE type task is increased, so that the BE type task seizes the CPU and runs, but the running time shall not exceed the preset second threshold, where the second threshold will not be more than one clock cycle. When the running time of the BE type task exceeds the second threshold, the priority of the BE type task is reduced. Even if the BE type task has not been completed, the CPU must be given to the VM type task, and the waiting time of the BE type task is re-recorded.

[0073] The above method can effectively prevent BE type tasks from falling into a starvation state due to continuous inability to obtain execution opportunities.

[0074] The above discusses the corresponding scheduling strategies adopted when VM type tasks and SYS type tasks, or VM type tasks and BE type tasks exist at the same time. When SYS type tasks and BE type tasks exist at the same time, there are no VM type tasks on the CPU, so there is no need for a special scheduling strategy for the CPU. For SYS type tasks, their scheduling strategy can be simplified to the CFS scheduling strategy for execution. For BE type tasks, their scheduling strategy can be degenerated into a FIFO time slice round-robin scheduling strategy. Under this strategy, BE type tasks obtain CPU time slices in the order of arrival, and wait for the next round of time slices to be allocated after execution.

[0075] In some implementations, scheduling at least two tasks in a CPU of a cloud computing resource based on a task type of each task includes:

[0076] In the case where the at least two tasks include a VM-type task, a SYS-type task, and a BE-type task:

[0077] In the case where the waiting time of the BE type task does not reach the first threshold, determining at least two tasks remaining in the run queue;

[0078] When the remaining at least two tasks include VM type tasks and / or SYS type tasks, a task of a type different from the last executed task is preferentially selected and the selected task is executed on the CPU; when the remaining at least two tasks include only BE type tasks, the BE type task is executed on the CPU.

[0079] Figure 6 Schematic diagram of scheduling three types of tasks according to an embodiment of the present disclosure. Figure 6 As shown, the specific steps include:

[0080] S601. Determine the relationship between the waiting time of the linked list for storing BE type tasks and a first threshold. If the waiting time is greater than or equal to the first threshold, execute S602; if the waiting time is less than the first threshold, execute S605.

[0081] S602, determine whether there is a BE type task in the linked list for storing BE type tasks, if there is a BE type task, execute S603; if there is no BE type task, execute S604.

[0082] S603: Run the BE type task at the head of the linked list and end the process.

[0083] S604: When there is no BE type task in the linked list, the idle scheduling class is called to process the idle task, and the process ends.

[0084] S605. If the linked list for storing BE type tasks does not time out, determine whether the task last selected for execution is a VM type task. If not, execute S606; if yes, execute S612.

[0085] S606. In the case that the task selected to run last time was not a VM type task, VM type tasks are selected first, and it is determined whether there is a VM type task in the running queue. If not, execute S607; if yes, execute S611.

[0086] Since VM-type tasks and SYS-type tasks have an alternating running mechanism in the scheduling strategy, and VM-type tasks have the highest running priority, if the last process ran a VM-type task, the current process will prioritize the SYS-type task; if the last process ran a SYS-type task or a BE-type task, the current process will prioritize the VM-type task.

[0087] S607. If there is no VM type task to be run in the running queue, it means that the VM type task cannot be selected first, then determine whether there is a SYS type task in the running queue, if not, execute S608; if yes, execute S613.

[0088] S608. If there is no SYS type task to be run in the running queue, determine whether there is a BE type task in the running queue. If so, execute S609; if not, execute S610.

[0089] S609: When there is only a BE type task in the running queue, the BE type task at the head of the running queue is run, and the process ends.

[0090] S610: If there are no tasks of the above three types in the running queue, the idle scheduling class is called to process the idle tasks, and the process ends.

[0091] S611. If it is determined in S606 that there is a VM type task in the queue, the VM type task with the highest priority is executed, and the process ends.

[0092] S612. If it is determined in S605 that the last task selected to run is a VM type task, the SYS type task is selected first, and it is determined whether there is a SYS type task in the running queue. If so, execute S613; if not, execute S614.

[0093] S613: When it is determined that there is a SYS type task in the running queue, the SYS type task with the highest priority is run, and the process ends.

[0094] S614. If there is no SYS type task in the running queue, it means that the SYS type task cannot be selected first, then determine whether there is a VM type task in the running queue, if yes, execute S615; if not, execute S602.

[0095] S615: If there is a VM-type task in the running queue, the VM-type task with the highest priority is run, and the process ends.

[0096] By adopting the above process, by distinguishing different types of tasks and scheduling them according to their characteristics and priorities, it is possible to ensure the timely and stable operation of high-priority tasks (such as VM type tasks), thereby improving the efficiency of task scheduling.

[0097] In the above example, a single-core scheduling strategy is introduced, that is, task scheduling is performed in a single CPU; the scheduling method proposed in the embodiment of the present disclosure may also include a multi-core scheduling strategy, that is, task scheduling is performed between multiple CPUs.

[0098] For example, in some implementations, scheduling at least two tasks in a CPU of a cloud computing resource based on the task type of each task may include at least one of the following:

[0099] In a case where the cloud computing resource includes multiple CPUs, and the multiple CPUs include an idle CPU, migrating SYS type tasks and / or BE tasks in the run queue to the idle CPU;

[0100] When the cloud computing resources include multiple CPUs and no idle CPU is included in the multiple CPUs, the SYS type tasks and / or BE type tasks in the execution queue are load balanced on the multiple CPUs.

[0101] Figure 7 Figure 1 is a schematic diagram of SYS type tasks and BE type tasks migrating to an idle CPU. Figure 7 As shown, the cloud computing resources include multiple idle CPUs (such as CPU N-2, CPU N-1, and CPU N), and there are SYS type tasks and BE type tasks in the run queue, and the SYS type tasks and BE type tasks can be migrated to these idle CPUs. In some examples, the SYS type tasks can be migrated to CPU N-2, and the BE type tasks can be migrated to CPU N-1.

[0102] When an idle CPU is used by a user, if there are idle CPUs in the cloud computing resources, SYS type tasks and BE type tasks are migrated to other idle CPUs. If there are no idle CPUs at this time, but there are SYS type tasks or BE type tasks on the previously idle CPUs, it is necessary to calculate the load on each CPU and evenly distribute SYS type tasks and BE type tasks to each CPU to achieve load balancing.

[0103] By migrating tasks to idle CPUs or performing load balancing without idle CPUs, the overload of a single processor can be reduced and the waiting time of tasks can be reduced.

[0104] Furthermore, the multi-core scheduling strategy may also include:

[0105] When the cloud computing resource includes multiple CPUs and the tasks to be executed of one of the CPUs include at least two first tasks, the at least two first tasks are distributed and scheduled to the multiple CPUs, and the at least two first tasks are made to preempt the CPUs;

[0106] The first task includes: a BE type task whose waiting time reaches or exceeds a first threshold.

[0107] Figure 8 is a schematic diagram of migrating multiple BE type tasks to multiple CPUs. Figure 8 As shown in FIG. 1 , there are multiple BE type tasks in the run queue, and the waiting time of these BE type tasks reaches or exceeds the preset first threshold. The BE type task at the head of the linked list occupies the current CPU to run, and the other BE type tasks in the linked list are dispersed and migrated to other CPUs to run. If there are other types of tasks running on the target CPU (such as Figure 8 In the example, if there is a VM type task running on CPU 2 and a SYS type task running on CPU N-2, the CPU is preempted.

[0108] Through the above method, it can be ensured that multiple BE type tasks in the running queue will not be in a waiting state for a long time due to the inability to obtain CPU resources, thereby effectively avoiding the occurrence of their "starvation" phenomenon.

[0109] The present disclosure also proposes a task scheduling method, which is suitable for task scheduling among multiple CPUs. Fig. 9 is a flowchart of a task scheduling method according to an embodiment of the present disclosure, including:

[0110] S910, obtaining at least two tasks in the running queue;

[0111] S920, scheduling at least two tasks in a multi-core cloud computing resource based on a task type of each task; wherein the multi-core cloud computing resource includes a plurality of CPUs;

[0112] The task types include VM type, SYS type and BE type; the priority of VM type is higher than that of SYS type, and the priority of SYS type is higher than that of BE type.

[0113] Through the above methods, we can avoid the idleness and waste of cloud computing resources. At the same time, through reasonable task scheduling, we can reduce the waiting time of tasks in the queue, which helps to improve the overall task processing efficiency.

[0114] In some embodiments, a VM-type task includes: a vCPU thread running a virtual machine;

[0115] The SYS type tasks include: at least one of a kernel thread and a virtualization simulation thread in an operating system;

[0116] BE type tasks include: user processes.

[0117] By clarifying the types of various tasks and setting corresponding priorities for them, the conflict and competition for CPU resources can be effectively reduced, thereby enhancing the efficiency of task scheduling.

[0118] In some implementations, scheduling at least two tasks in a multi-core cloud computing resource based on the task type of each task includes:

[0119] In the case where the plurality of CPUs include an idle CPU, migrating SYS type tasks and / or BE type tasks in the run queue to the idle CPU;

[0120] When no idle CPU is included in the plurality of CPUs, SYS type tasks and / or BE type tasks in the run queue are load balanced on the plurality of CPUs.

[0121] The implementation details and process of this method can be found in detail Figure 7 The specific method steps shown and described in . Through the above method, tasks are assigned to idle CPUs or a load balancing strategy is implemented when there is no idle CPU, which can effectively reduce the burden of a single CPU and reduce the waiting time of tasks.

[0122] In some implementations, scheduling at least two tasks in a multi-core cloud computing resource based on the task type of each task includes:

[0123] When the tasks to be executed of a CPU of the cloud computing resources include at least two first tasks, the at least two first tasks are distributed and scheduled to multiple CPUs, and the at least two first tasks are made to preempt the CPUs;

[0124] The first task includes: a BE type task whose waiting time reaches or exceeds a first threshold.

[0125] The implementation details and process of this method can be found in detail Figure 8 The specific method steps shown and described in the above method can ensure that the BE tasks in the running queue can obtain CPU resources in a timely manner, avoid being stranded in the waiting queue for a long time, and effectively prevent the occurrence of task "starvation".

[0126] The present disclosure also provides a task scheduling device. Fig.10 1 is a schematic diagram of a task scheduling device 1000 according to an embodiment of the present disclosure, comprising:

[0127] A first acquisition module 1010 is used to acquire at least two tasks in the running queue;

[0128] A first scheduling module 1020, configured to schedule at least two tasks in a CPU of a cloud computing resource based on a task type of each task;

[0129] The task types include VM type, SYS type and BE type; the priority of VM type is higher than that of SYS type, and the priority of SYS type is higher than that of BE type.

[0130] In some embodiments, a VM thread type task includes: a vCPU thread running a virtual machine;

[0131] The SYS type tasks include: at least one of a kernel thread and a virtualization simulation thread in an operating system;

[0132] BE type tasks include: user processes.

[0133] In some implementations, the first scheduling module 1020 is used to:

[0134] In the case where the at least two tasks include a VM type task and a SYS type task, the VM type task and the SYS type task are scheduled to be executed alternately on the CPU, and the running time of the SYS type task is limited.

[0135] In some implementations, the first scheduling module 1020 is used to:

[0136] When the running time of a VM-type task reaches the allocated time slice, the VM-type task is scheduled to exit the CPU;

[0137] Furthermore, when the running time of a task of the SYS type reaches one or more clock cycles, the task of the SYS type is scheduled to exit the CPU.

[0138] In some implementations, the first scheduling module 1020 is used to:

[0139] In the case where the at least two tasks include a VM-type task and a BE-type task:

[0140] Schedule VM type tasks so that tasks in the CPU in running state are VM type tasks; and record the waiting time of BE type tasks;

[0141] When the waiting time of the BE type task reaches the first threshold, the priority of the BE type task is increased so that the task in the running state in the CPU is switched to the BE type task.

[0142] In some implementations, the first scheduling module 1020 is further configured to:

[0143] When the execution time of the BE type task reaches the second threshold, the priority of the BE type task is reduced to make the BE type task exit the CPU; and the waiting time of the BE type task is re-recorded.

[0144] In some implementations, the first scheduling module 1020 is used to:

[0145] In the case where the at least two tasks include a VM-type task, a SYS-type task, and a BE-type task:

[0146] In the case where the waiting time of the BE type task does not reach the first threshold, determining at least two tasks remaining in the run queue;

[0147] When the remaining at least two tasks include VM type tasks and / or SYS type tasks, a task of a type different from the last executed task is preferentially selected and the selected task is executed on the CPU; when the remaining at least two tasks include only BE type tasks, the BE type task is executed on the CPU.

[0148] In some implementations, the first scheduling module 1020 is configured to:

[0149] In the case where the cloud computing resources include multiple CPUs, and the multiple CPUs include an idle CPU, migrating SYS type tasks and / or BE type tasks in the run queue to the idle CPU;

[0150] In the case where the cloud computing resources include multiple CPUs and no idle CPU is included in the multiple CPUs, the SYS type tasks and / or BE type tasks in the running queue are load balanced on the multiple CPUs.

[0151] In some implementations, the first scheduling module 1020 is used to:

[0152] When the cloud computing resources include multiple CPUs, and the tasks to be executed of one of the CPUs include at least two first tasks, the at least two first tasks are distributed and scheduled to the multiple CPUs, and the at least two first tasks are made to preempt the CPUs;

[0153] The first task includes: a BE type task whose waiting time reaches or exceeds a first threshold.

[0154] The present disclosure also provides a task scheduling device. Fig.11 1 is a schematic diagram of a task scheduling device 1100 according to an embodiment of the present disclosure, comprising:

[0155] A second acquisition module 1110 is used to acquire at least two tasks in the running queue;

[0156] A second scheduling module 1120 schedules at least two tasks in a multi-core cloud computing resource based on the task type of each task; wherein the multi-core cloud computing resource includes multiple CPUs;

[0157] The task types include VM type, SYS type and BE type; the priority of VM type is higher than that of SYS type, and the priority of SYS type is higher than that of BE type.

[0158] In some embodiments, a VM-type task includes: a vCPU thread running a virtual machine;

[0159] The SYS type tasks include: at least one of a kernel thread and a virtualization simulation thread in an operating system;

[0160] BE type tasks include: user processes.

[0161] In some implementations, the second scheduling module 1120 is used to:

[0162] In the case where the plurality of CPUs include an idle CPU, migrating SYS type tasks and / or BE type tasks in the run queue to the idle CPU;

[0163] When no idle CPU is included in the plurality of CPUs, SYS type tasks and / or BE type tasks in the run queue are load balanced on the plurality of CPUs.

[0164] In some implementations, the second scheduling module 1120 is used to:

[0165] When the tasks to be executed of a CPU of the cloud computing resources include at least two first tasks, the at least two first tasks are distributed and scheduled to multiple CPUs, and the at least two first tasks are made to preempt the CPUs;

[0166] The first task includes: a BE type task whose waiting time reaches or exceeds a first threshold.

[0167] For the description of specific functions and examples of each module and submodule of the device in the embodiment of the present disclosure, reference can be made to the relevant description of the corresponding steps in the above method embodiment, which will not be repeated here.

[0168] In the technical solution disclosed in the present invention, the acquisition, storage and application of personal information of users involved are in compliance with the provisions of relevant laws and regulations and do not violate public order and good morals.

[0169] According to an embodiment of the present disclosure, the present disclosure also provides an electronic device, a readable storage medium and a computer program product.

[0170] Fig.12A schematic block diagram of an example electronic device 1200 that can be used to implement an embodiment of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present disclosure described and / or required herein.

[0171] like Fig.12 As shown, the device 1200 includes a computing unit 1201, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 1202 or a computer program loaded from a storage unit 1208 into a random access memory (RAM) 1203. In the RAM 1203, various programs and data required for the operation of the device 1200 can also be stored. The computing unit 1201, the ROM 1202, and the RAM 1203 are connected to each other via a bus 1204. An input / output (I / O) interface 1205 is also connected to the bus 1204.

[0172] A number of components in the device 1200 are connected to the I / O interface 1205, including: an input unit 1206, such as a keyboard, a mouse, etc.; an output unit 1207, such as various types of displays, speakers, etc.; a storage unit 1208, such as a disk, an optical disk, etc.; and a communication unit 1209, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 1209 allows the device 1200 to exchange data with other devices through a computer network such as the Internet and / or various telecommunication networks.

[0173] The computing unit 1201 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the computing unit 1201 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, digital signal processors (DSPs), and any appropriate processors, controllers, microcontrollers, etc. The computing unit 1201 performs the various methods and processes described above, such as detection methods. For example, in some embodiments, the detection method may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as a storage unit 1208. In some embodiments, part or all of the computer program may be loaded and / or installed on the device 1200 via ROM 1202 and / or communication unit 1209. When the computer program is loaded into RAM 1203 and executed by the computing unit 1201, one or more steps of the detection method described above may be performed. Alternatively, in other embodiments, the computing unit 1201 may be configured to perform the detection method in any other appropriate manner (e.g., by means of firmware).

[0174] Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), load programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0175] The program code for implementing the method of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that the program code, when executed by the processor or controller, enables the functions / operations specified in the flow chart and / or block diagram to be implemented. The program code may be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.

[0176] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0177] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).

[0178] The systems and techniques described herein may be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), and the Internet.

[0179] A computer system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The relationship of client and server is generated by computer programs running on respective computers and having a client-server relationship with each other. The server may be a cloud server, a server of a distributed system, or a server combined with a blockchain.

[0180] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps recorded in this disclosure can be executed in parallel, sequentially or in different orders, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved, and this document does not limit this.

[0181] The above specific implementations do not constitute a limitation on the protection scope of the present disclosure. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions can be made according to design requirements and other factors. Any modification, equivalent substitution and improvement made within the principles of the present disclosure shall be included in the protection scope of the present disclosure.

Claims

1. A task scheduling method, comprising: Get at least two tasks in the run queue; Based on the task type of each of the tasks, scheduling the at least two tasks in a central processing unit of the cloud computing resources; Among them, the task types include virtual machine thread type, system thread type and best effort thread type; wherein the priority of the virtual machine thread type is higher than the priority of the system thread type, and the priority of the system thread type is higher than the priority of the best effort thread type.

2. The method according to claim 1, wherein: The tasks of the virtual machine thread type include: running a virtual central processing unit thread of a virtual machine; The system thread type tasks include: at least one of a kernel thread and a virtualized simulation thread in an operating system; The best-effort thread-type tasks include: user processes.

3. The method according to claim 1 or 2, wherein: The step of scheduling the at least two tasks in a central processor of the cloud computing resources based on the task type of each of the tasks includes: In the case where the at least two tasks include the virtual machine thread type task and the system thread type task, the virtual machine thread type task and the system thread type task are scheduled to be executed alternately on the central processor, and the running time of the system thread type task is limited.

4. The method according to claim 3, wherein: The scheduling of the virtual machine thread type task and the system thread type task to run alternately on the central processor and limiting the running time of the system thread type task includes: When the running time of the task of the virtual machine thread type reaches the allocated time slice, scheduling the task of the virtual machine thread type to exit the central processor; Furthermore, when the running time of the task of the system thread type reaches one or more clock cycles, the task of the system thread type is scheduled to exit the central processing unit.

5. The method according to claim 1 or 2, wherein: The step of scheduling the at least two tasks in a central processor of the cloud computing resources based on the task type of each of the tasks includes: In a case where the at least two tasks include the virtual machine thread type task and the best effort thread type task: Scheduling the tasks of the virtual machine thread type so that the tasks in the running state in the central processor are the tasks of the virtual machine thread type; and recording the waiting time of the best effort thread type tasks; When the waiting time of the best-effort thread type task reaches a first threshold, the priority of the best-effort thread type task is increased so that the running task in the central processor is switched to the best-effort thread type task.

6. The method according to claim 5, further comprising: When the execution time of the best-effort thread-type task reaches a second threshold, the priority of the best-effort thread-type task is reduced to make the best-effort thread-type task exit the central processor; and the waiting time of the best-effort thread-type task is re-recorded.

7. The method according to claim 5 or 6, wherein: The step of scheduling the at least two tasks in a central processor of the cloud computing resources based on the task type of each of the tasks includes: In a case where the at least two tasks include the virtual machine thread type task, the system thread type task, and the best effort thread type task: In a case where the waiting time of the best effort thread type task does not reach the first threshold, determining at least two tasks remaining in the run queue; In the case where the remaining at least two tasks include tasks of virtual machine thread type and / or tasks of system thread type, a task of a type different from the last executed task is preferentially selected and the selected task is executed on the central processing unit; in the case where the remaining at least two tasks only include tasks of best effort thread type, the best effort thread type task is executed on the central processing unit.

8. The method according to any one of claims 1 to 7, wherein: The step of scheduling the at least two tasks in a central processor of the cloud computing resources based on the task type of each of the tasks includes at least one of the following: In a case where the cloud computing resources include a plurality of central processors, and the plurality of central processors include an idle central processor, migrating system thread type tasks and / or best effort thread type tasks in the run queue to the idle central processor; In a case where the cloud computing resources include multiple central processing units, and no idle central processing unit is included in the multiple central processing units, system thread type tasks and / or best effort thread type tasks in the run queue are load balanced on the multiple central processing units.

9. The method according to any one of claims 1 to 7, wherein: The step of scheduling the at least two tasks in a central processor of the cloud computing resources based on the task type of each of the tasks includes: In a case where the cloud computing resources include multiple central processors, and tasks to be executed of one of the central processors include at least two first tasks, the at least two first tasks are distributed and scheduled to the multiple central processors, and the at least two first tasks are made to preempt the central processor; The first task includes: a task of the best-effort thread type whose waiting time reaches or exceeds a first threshold.

10. A task scheduling method, comprising: Get at least two tasks in the run queue; Based on the task type of each of the tasks, the at least two tasks are scheduled in a multi-core cloud computing resource; wherein the multi-core cloud computing resource includes a plurality of central processing units; Among them, the task types include virtual machine thread type, system thread type and best effort thread type; wherein the priority of the virtual machine thread type is higher than the priority of the system thread type, and the priority of the system thread type is higher than the priority of the best effort thread type.

11. The method according to claim 10, wherein: The tasks of the virtual machine thread type include: running a virtual central processing unit thread of a virtual machine; The system thread type tasks include: at least one of a kernel thread and a virtualized simulation thread in an operating system; The best-effort thread-type tasks include: user processes.

12. The method according to claim 10 or 11, wherein: The scheduling of the at least two tasks in the multi-core cloud computing resources based on the task type of each of the tasks includes: In the case where the plurality of central processors include an idle central processor, migrating system thread type tasks and / or best effort thread type tasks in the run queue to the idle central processor; In a case where no idle central processor is included in the plurality of central processors, load balancing is performed on the system thread type tasks and / or best effort thread type tasks in the run queue on the plurality of central processors.

13. The method according to claim 10 or 11, wherein: The scheduling of the at least two tasks in the multi-core cloud computing resources based on the task type of each of the tasks includes: In a case where the tasks to be executed of a central processor of the cloud computing resources include at least two first tasks, the at least two first tasks are distributed and scheduled to the multiple central processors, and the at least two first tasks are made to preempt the central processors; The first task includes: a task of the best-effort thread type whose waiting time reaches or exceeds a first threshold.

14. A task scheduling device, comprising: A first acquisition module, used to acquire at least two tasks in the running queue; A first scheduling module, configured to schedule the at least two tasks in a central processing unit of the cloud computing resources based on a task type of each of the tasks; Among them, the task types include virtual machine thread type, system thread type and best effort thread type; wherein the priority of the virtual machine thread type is higher than the priority of the system thread type, and the priority of the system thread type is higher than the priority of the best effort thread type.

15. The device according to claim 14, wherein: The tasks of the virtual machine thread type include: running a virtual central processing unit thread of a virtual machine; The system thread type tasks include: at least one of a kernel thread and a virtualized simulation thread in an operating system; The best-effort thread-type tasks include: user processes.

16. The device according to claim 14 or 15, wherein: The first scheduling module is used for: In the case where the at least two tasks include the virtual machine thread type task and the system thread type task, the virtual machine thread type task and the system thread type task are scheduled to be executed alternately on the central processor, and the running time of the system thread type task is limited.

17. The device according to claim 16, wherein: The first scheduling module is used for: When the running time of the task of the virtual machine thread type reaches the allocated time slice, scheduling the task of the virtual machine thread type to exit the central processor; Furthermore, when the running time of the task of the system thread type reaches one or more clock cycles, the task of the system thread type is scheduled to exit the central processing unit.

18. The device according to claim 14 or 15, wherein: The first scheduling module is used for: In a case where the at least two tasks include the virtual machine thread type task and the best effort thread type task: Scheduling the tasks of the virtual machine thread type so that the tasks in the running state in the central processor are the tasks of the virtual machine thread type; and recording the waiting time of the best effort thread type tasks; When the waiting time of the best-effort thread type task reaches a first threshold, the priority of the best-effort thread type task is increased so that the running task in the central processor is switched to the best-effort thread type task.

19. The apparatus according to claim 18, wherein the first scheduling module is further configured to: When the execution time of the best-effort thread-type task reaches a second threshold, the priority of the best-effort thread-type task is reduced to make the best-effort thread-type task exit the central processor; and the waiting time of the best-effort thread-type task is re-recorded.

20. The device according to claim 18 or 19, wherein: The first scheduling module is used for: In a case where the at least two tasks include the virtual machine thread type task, the system thread type task, and the best effort thread type task: In a case where the waiting time of the best effort thread type task does not reach the first threshold, determining at least two tasks remaining in the run queue; In the case where the remaining at least two tasks include tasks of virtual machine thread type and / or tasks of system thread type, a task of a type different from the last executed task is preferentially selected and the selected task is executed on the central processing unit; in the case where the remaining at least two tasks only include tasks of best effort thread type, the best effort thread type task is executed on the central processing unit.

21. The device according to any one of claims 14 to 20, wherein: The first scheduling module is used for at least one of the following: In a case where the cloud computing resources include a plurality of central processors, and the plurality of central processors include an idle central processor, migrating system thread type tasks and / or best effort thread type tasks in the run queue to the idle central processor; In a case where the cloud computing resources include multiple central processing units, and no idle central processing unit is included in the multiple central processing units, system thread type tasks and / or best effort thread type tasks in the run queue are load balanced on the multiple central processing units.

22. The device according to any one of claims 14 to 20, wherein: The first scheduling module is used for: In a case where the cloud computing resources include multiple central processors, and tasks to be executed of one of the central processors include at least two first tasks, the at least two first tasks are distributed and scheduled to the multiple central processors, and the at least two first tasks are made to preempt the central processor; The first task includes: a task of the best-effort thread type whose waiting time reaches or exceeds a first threshold.

23. A task scheduling device, comprising: A second acquisition module is used to acquire at least two tasks in the running queue; A second scheduling module, based on the task type of each of the tasks, schedules the at least two tasks in a multi-core cloud computing resource; wherein the multi-core cloud computing resource includes a plurality of central processing units; Among them, the task types include virtual machine thread type, system thread type and best effort thread type; wherein the priority of the virtual machine thread type is higher than the priority of the system thread type, and the priority of the system thread type is higher than the priority of the best effort thread type.

24. The device according to claim 23, wherein: The tasks of the virtual machine thread type include: running a virtual central processing unit thread of a virtual machine; The system thread type tasks include: at least one of a kernel thread and a virtualized simulation thread in an operating system; The best-effort thread-type tasks include: user processes.

25. The device according to claim 23 or 24, wherein: The second scheduling module is used for: In the case where the plurality of central processors include an idle central processor, migrating system thread type tasks and / or best effort thread type tasks in the run queue to the idle central processor; In a case where no idle central processor is included in the plurality of central processors, load balancing is performed on the system thread type tasks and / or best effort thread type tasks in the run queue on the plurality of central processors.

26. The device according to claim 23 or 24, wherein: The second scheduling module is used for: In a case where the tasks to be executed of a central processor of the cloud computing resources include at least two first tasks, the at least two first tasks are distributed and scheduled to the multiple central processors, and the at least two first tasks are made to preempt the central processors; The first task includes: a task of the best-effort thread type whose waiting time reaches or exceeds a first threshold.

27. An electronic device comprising: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 13.

28. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to cause the computer to execute the method according to any one of claims 1-13.

29. A computer program product comprising a computer program, which, when executed by a processor, implements the method according to any one of claims 1 to 13.

Citation Information

Patent Citations

  • Multi-VCPU adaptive real-time scheduling method for TSN business

    CN107122233A

  • Virtual machine task scheduling method and electronic device

    CN108595249A

  • Thread scheduling method and device, electronic equipment and storage medium

    CN108804211A

  • Task scheduling method and device based on cloud computing and computer equipment

    CN111488210A

  • Virtual machine task scheduling method and device, computer equipment and storage medium

    CN112130963A