DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Remarks
The present application having Application No. 18/352,701 filed on 9/21/2023.
Claims 1-20 are currently pending.
Examiner Notes
Examiner cites particular columns and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner.
Priority
Applicant’s claim for priority from Chinese Patent Application No. 202311049751.8, filed 8/18/2023 is acknowledged.
Drawings
The drawings are objected to as failing to comply with 37 CFR 1.84(p)(5) because they do not include the following reference sign(s) mentioned in the description: Paragraph (0024) in the specification recites 130-2 but 130-2 is not present in Fig. 1. Corrected drawing sheets in compliance with 37 CFR 1.121(d) are required in reply to the Office action to avoid abandonment of the application. Any amended replacement drawing sheet should include all of the figures appearing on the immediate prior version of the sheet, even if only one figure is being amended. Each drawing sheet submitted after the filing date of an application must be labeled in the top margin as either “Replacement Sheet” or “New Sheet” pursuant to 37 CFR 1.121(d). If the changes are not accepted by the examiner, the applicant will be notified and informed of any required corrective action in the next Office action. The objection to the drawings will not be held in abeyance.
Specification
The specification is objected to as failing to provide proper antecedent basis for the claimed subject matter. See 37 CFR 1.75(d)(1) and MPEP § 608.01(o). Correction of the following is required: claim 10 recites "a round-robin scheduling algorithm". Paragraphs (0035) and (0039) in the specification recite "polling" but does not expressly recite a "round-robin algorithm".
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Regarding claims 1, 11 and 20, the limitations “determining a priority threshold for a task queue based on queue data of the task queue,” “processing the workload..in response to the priority being greater than the priority threshold,” and “processing the workload without using the processor in response to the priority being less than or equal to the priority threshold” as drafted, are functions that, under its broadest reasonable interpretation, recite the abstract idea of a mental process. These limitations encompass a human mind carrying out these functions through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper. Thus, this limitation recites and falls within the “Mental Processes” grouping of abstract ideas under Prong 1.
Under Prong 2, the judicial exception is not integrated into a practical application. The additional elements “acquiring a priority of a workload at the queue head of the task queue,” and “by using a processor” do nothing more than add insignificant extra solution activity to the judicial exception of merely gathering, displaying, updating, transmitting and storing data, and merely uses a generic computer or computer components as a tool to perform the abstract idea, respectively. Accordingly, the additional elements do not integrate the recited judicial exception into a practical application and the claim is therefore directed to the judicial exception. See MPEP 2106.05(g) and (f).
Under Step 2B, the claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As stated above in prong 2, the additional element “by using a processor” merely uses a generic computer or computer components as a tool to perform the abstract idea, and the additional element “acquiring a priority of a workload at the queue head of the task queue” is mere gathering, displaying, updating, transmitting and storing data which the courts have identified as well-understood, routine conventional activity. See for example Symantec, 838 F.3d at 1321, 120 USPQ2d at 1362, MPEP 2106.05(d). Therefore, the additional elements do not amount to significantly more, thus, cannot provide an inventive concept. Accordingly, the claims are not patent eligible under 35 USC 101.
Claims 11 and 20 recite further additional elements “processing unit,” “a memory coupled to the processing unit and storing instructions, wherein the instructions, when executed by the processing unit, perform the following actions,” and “computer program product is tangibly stored on a non-volatile computer-readable medium and comprises machine-executable instructions, and the machine-executable instructions, when executed, cause a machine to perform the following actions.” These additional elements are recited at a high-level of generality such that it amounts no more than mere instructions to apply the exception using generic computer, and/or generic computer components. See MPEP 2106.05(f). Therefore, the additional elements recited in claims 11 and 20 do not integrate the judicial exception into a practical application under prong 2, nor amount to significantly more under step 2B.
Regarding claims 2 and 12, the limitations “selecting” and “inserting” recite additional abstract idea of a mental process since these limitations encompass a human mind carrying out the functions through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper. Thus, this limitation recites and falls within the “Mental Processes” grouping of abstract ideas under Prong 1. The additional element of “acquiring” is mere data gathering which is not indicative of either a practical application under prong 1, nor an inventive concept under Step 2B for the reasons explained in the rejection of claim 1.
Regrading claims 3, 4, 13 and 14, the limitations “moving the workload” and “inserting” recite additional abstract idea of a mental process since these limitations encompass a human mind carrying out the functions through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper.
Regrading claims 5 and 15, the limitation “determining, based on the queue data, the priority threshold” recite additional abstract idea of a mental process since these limitations encompass a human mind carrying out the functions through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper. Thus, this limitation recites and falls within the “Mental Processes” grouping of abstract ideas under Prong 1. The additional elements “utilizing a machine learning model” merely recite instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, and “acquiring the queue data” is mere data gathering, thus the additional elements recited herein are not indicative of either a practical application under prong 1, nor an inventive concept under Step 2B for the reasons explained in the rejection of claim 1.
Regrading claims 6 and 16, the additional elements “writing the queue data” is merely storing data, and “regularly training the machine learning model” merely recite instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus the additional elements recited herein are not indicative of either a practical application under prong 1, nor an inventive concept under Step 2B for the reasons explained in the rejection of claim 1.
Regrading claims 7 and 17, the limitation “removing the workload” recite additional abstract idea of a mental process since these limitations encompass a human mind carrying out the functions through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper. Thus, this limitation recites and falls within the “Mental Processes” grouping of abstract ideas under Prong 1. The additional element “acquiring” is mere data gathering, which is not indicative of either a practical application under prong 1, nor an inventive concept under Step 2B for the reasons explained in the rejection of claim 1.
Regrading claims 8 and 18, the limitations “determining” and “moving” recite additional abstract idea of a mental process since these limitations encompass a human mind carrying out the functions through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper. Thus, this limitation recites and falls within the “Mental Processes” grouping of abstract ideas under Prong 1.
Regrading claims 9 and 19, the additional element “the priority of the workload is configurable” merely describes the data acquired in claims 1 and 11, thus is not indicative of either a practical application under prong 1, nor an inventive concept under Step 2B for the reasons explained in the rejection of claim 1.
Claim 20 is also rejected under 35 U.S.C. 101 because the claim(s) encompass non-statutory subject matter. Official Gazette Notice 1351 OG 212, dated February 23, 2010, states "the broadest reasonable interpretation of a claim drawn to a computer readable medium typically covers forms of non-transitory tangible media and transitory propagating signals per se in view of the ordinary and customary meaning of computer readable media."
Independent claim 20 recites “a non-volatile computer-readable medium”, which is drawn to a readable medium construed to cover both transitory and non-transitory media.
"A transitory, propagating signal is not a 'process, machine, manufacture, or composition of matter.' Those four categories define the explicit scope and reach of subject matter patentable under 35 U.S.C. § 101; thus, such a signal cannot be patentable subject matter." In re Nuijten, 84 USPQ2d 1495, 1503 (Fed. Cir. 2007).
Paragraph (0047) does not define the claimed terms “non-volatile computer-readable medium”. Without explicit definition for “non-volatile computer-readable medium” in the specification, the broadest reasonable interpretation of "a non-volatile computer-readable medium" includes signal and/or carrier wave. Because the full scope of the claim encompasses non-statutory subject matter (i.e., transitory propagating signals), the claim as a whole is non-statutory. Examiner suggests adding the limitation "non-transitory" to claim 20 to limit the claim scope to encompass only statutory subject matter. Appropriate correction is required.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claim(s) 1, 2, 7, 11, 12, 17, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Zhu et al. (US 20160313949 A1) (hereinafter Zhu) in view of Tung et al (US 20130262678 A1) (hereinafter Tung).
As per claim 1, A method for allocating workloads (e.g. Zhu: (0004) discloses scheduling execution of commands based on their respective priority parameter. (0031-0032) (Fig. 6).), comprising: determining a priority threshold for a task queue based on queue data of the task queue (e.g. Zhu: (Claim 2) disclose method that determines a queue priority value (a priority threshold) for the queue as an average of the priority values of the plurality of commands; and scheduling execution of the command based on the queue priority value. (0020-0023) (Fig. 4) discloses an algorithm that dynamically determines the dynamic priority parameter (a priority threshold) based on a highest priority parameter in the command queue and how long the command with the highest priority parameter has stayed in the command queue. (0026-0029) discloses determining dynamic priority parameter associated with the command queue. (Fig. 6) (0030) discloses dynamic priority parameters (“QoS_arb”) associated with the respective command queues. Zhu determines a queue priority value for each FIFO queue as function of the priority values of the commands in that queue, and optionally their wait times. Another embodiment computes the queue priority as an average of priority values of all commands currently in the queue. The queue-level value is computed from queue data (priorities and wait times of commands in the queue) and used as scheduling metric for the queue. Thus, Zhu discloses determining, for each queue, a dynamic priority parameter or a queue priority value based on data associated with the commands in that queue.); acquiring a priority of a workload at a queue head of the task queue (e.g. Zhu: (0004) Each queue has a current command at the top of the command queue and the arbiter accesses the priority parameter (QoS) of the current command in the queue. (0005-0007) commands are received into the command queue, and each command being associated with a priority parameter. A current command first in line to be executed in the command queue is associated with a first priority parameter.); processing the workload by using a processor in response to the priority being greater than the priority threshold (e.g. Zhu: (Claim 16) discloses integrated circuit comprises a processor configured to execute the current command from the queue. (0005-0007) discloses selecting the current command for execution based on the priority associated with the current command, when the final priority parameter satisfies a predetermined condition. The final priority parameter is determined based on the largest priority parameter associated with the one or more commands. (0007) discloses system controller includes processor to execute commands. (0019) an arbiter receives a dynamic priority parameter determined based on the status of a command queue. If the dynamic priority parameter is higher than other priority parameters associated with other command queues, the arbiter selects a current command of the command queue to be serviced. (0030) the arbiter compares the dynamic priority parameters associated with the command queues, and selects, a current command of a command queue that has a highest dynamic priority parameter. (0031-0032) discloses the systems and methods described here may be implemented on a SOC, including processing engine, co-processor or a hardware accelerator.).
As discussed above, Zhu discloses determining a queue priority value for each queue based on the priority parameters associated with the commands of corresponding queue, selecting the current command from the commend queue associated with the highest dynamic priority value/parameter and executing the selected current command. Zhu does not expressly disclose non-processor path for commands whose effective priority does not win arbitration; they simply wait in the queue. There is no “processing workload without using the processor” branch.
Thus, Zhu does not expressly disclose processing the workload by using a processor in response to the priority being greater than the priority threshold; and processing the workload without using the processor in response to the priority being less than or equal to the priority threshold.
However, Tung discloses processing the workload by using a processor in response to the priority being greater than the priority threshold and processing the workload without using the processor in response to the priority being less than or equal to the priority threshold (e.g. Tung: (Abstract) discloses DSGDL offloads lower priority request to lower-grade secondary capability (e.g. non-CPU) in order to reserve the best capability (e.g. CPU) for maintaining high priority service (e.g., by re-directing lower priority requests to cached data set, and reserve the primary database for higher priority requests.). (Fig. 5) (0050) discloses when the priority queue length exceeds the threshold, elite service requests (0048-0049) discloses when the priority queue length exceed the threshold, the DSGDL may route service request to a secondary service (inventory cache) (non-CPU). Thus, Tung’s threshold (based on priority queue lengths) determined when the system is overloaded and lower-priority requests are no longer sent to the primary service but are instead offloaded to secondary capability. Those secondary services (inventory cache, order logs) are lower-grade and can offload work from the primary (CPU-backed) database. A POSITA would view this as processing lower-priority workload on alternate non-primary resources instead of consuming CPU resources.).
As per claim 2, Zhu discloses the method according to claim 1, further comprising: selecting the task queue from a plurality of task queues (e.g. Zhu (0019) discloses if the dynamic priority parameter of a command queue is higher than other priority parameters associated with other command queues, the arbiter component selects a current command of the command queue to be serviced. (selecting the task queue from a plurality of task queues).); acquiring the priority of each workload in the task queue; and inserting, based on the priority of the workload to be inserted and the priority of each workload in the task queue, the workload to be inserted into the task queue (e.g. Zhu: (Claim 2) discloses method that determines a queue priority value for the queue as an average of the priority values of the plurality of commands. Zhu determines a queue priority value by averaging the priority values of the commands in a command queue. It is inherently implied the priority of each workload is acquired such that they can be used to calculate to find the average priority value. Thus, Zhu discloses acquiring the priority of each workload in the task queue).
As per claim 7, Zhu discloses the method according to claim 2, wherein acquiring the priority of the workload at the queue head of the task queue comprises removing the workload at the queue head of the task queue (e.g. Zhu: (Claim 16) discloses a processor configured to execute the highest priority command and remove the highest priority command from the queue. Zhu discloses the highest priority command will be removed from the FIFO queue. A FIFO queue inherently implies the command will be removed from the queue head.); and acquiring the priority of the removed workload (e.g. Zhu: (0004) Each queue has a current command at the top of the command queue and the arbiter accesses the priority parameter (QoS) of the current command in the queue. (0005-0007) commands are received into the command queue, and each command being associated with a priority parameter. A current command first in line to be executed in the command queue is associated with a first priority parameter.).
As per claim 11, Zhu discloses an electronic device, comprising: a processing unit; and a memory coupled to the processing unit and storing instructions (e.g. Zhu: (0003) discloses a memory system often includes semiconductor memory devices, such as dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate (DDR, DDR2, DDR3, etc.) SDRAM, etc. Various source devices, such as processors, peripheral devices (e.g., input/output devices), audio and video devices, may generate memory operation commands, including read memory operations to transfer data from memory devices to the source devices and write memory operations to transfer data from the source devices to the memory devices. Usually, a memory controller is implemented to receive the memory operation commands from the source devices and to control the memory devices to perform memory operations in response to the commands. The memory controller often includes command queues to capture the memory operation commands.) The remaining limitations corresponds to the method steps recited in claim 1, which are taught by the combination of Zhu and Tung as discussed above in the rejection of method claim 1.
As per claim 20, Zhu discloses a computer program product, wherein the computer program product is tangibly stored on a non-volatile computer-readable medium and comprises machine-executable instructions (e.g. Zhu: (0003) discloses a memory system often includes semiconductor memory devices, such as dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate (DDR, DDR2, DDR3, etc.) SDRAM, etc. (non-volatile computer-readable medium). Various source devices, such as processors, peripheral devices (e.g., input/output devices), audio and video devices, may generate memory operation commands, including read memory operations to transfer data from memory devices to the source devices and write memory operations to transfer data from the source devices to the memory devices. A memory controller is implemented to receive the memory operation commands (machine-executable instructions) from the source devices and to control the memory devices to perform memory operations in response to the commands.) The remaining limitations corresponds to the method steps recited in claim 1, which are taught by the combination of Zhu and Tung as discussed above in the rejection of method claim 1.
As per claims 12 and 17, this is a system claim having similar limitations as cited in method claims 2 and 7. Thus, claims 12 and 17 is/are also rejected under the same rational as cited in the rejection of rejected claims 2 and 7.
Claim(s) 3, 4, 8, 13, 14, and 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over Zhu in view of Tung and further in view of Saxena et al. (US 20160117497 A1) (hereinafter Saxena).
As per claim 3, the combination of Zhu and Tung discloses the method according to claim 2 (See rejection to claim 2 above), but does not expressly disclose further comprising: moving the workload to the queue head of the task queue in response to a time slice for the workload being less than a time slice threshold.
However, Saxena discloses further comprising: moving the workload to the queue head of the task queue in response to a time slice for the workload being less than a time slice threshold (e.g. Saxena: (Fig. 12) (0127) discloses the order of the queued tasks based on queue depths, priority levels assigned to the individual tasks, a time slice use for preemption, and/or any other suitable factor or condition. Saxena discloses the queue is ordered in part by a time slice use for preemption. Preemption refers to reordering tasks that have not finished in their allocated time. Thus, Saxena teaches moving a workload to the queue head in response to a time slice for the workload being less than a time slice threshold).
It would have been obvious, under KSR, to one of ordinary skill in the art before the effective filling date of the claimed invention to modify the combination of Zhu and Tung with Saxena because both are directed to ordering a queue based on a set of conditions and use known, complementary techniques to do so. A POSITA, seeking to improve the combination of Zhu and Tung’s method of moving a workload when the workload’s time slice is running out, would have been motivated to apply Saxena’s established practice of ordering a queue based on a time slice for preemption, thereby reducing CPU idle time and minimizing response times for workloads.
As per claim 4, the combination of Zhu, Tung, and Saxena discloses, the method according to claim 3 (See rejection to claim 3 above), further comprising: inserting, based on the priority of the workload to be inserted and the priority and the time slice for each workload in the task queue, the workload into the task queue (e.g. Saxena: (Fig. 12) discloses once a task for a GPU is received, add the task to the request queue and update the request queue based on conditions. (0127) discloses the order of the queued tasks based on queue depths, priority levels assigned to the individual tasks, a time slice use for preemption, and/or any other suitable factor or condition.).
As per claim 8, the combination of Zhu. Tung, and Saxena discloses, the method according to claim 7 (See rejection to claim 7 above), further comprising: determining whether a time slice for the workload in each task queue of the plurality of task queues is less than a time slice threshold; and moving, in response to the time slice for the workload in each task queue of the plurality of task queues being less than the time slice threshold, the workload to the queue head of the corresponding task queue (e.g. Saxena: (0127) discloses the order of the queued tasks based on queue depths, priority levels assigned to the individual tasks, a time slice use for preemption, and/or any other suitable factor or condition. Saxena discloses a time slice use for preemption. The time slice use for preemption inherently implies a limit or value that, when met or exceeded, triggers a change in queue order. Thus, Saxena discloses determining whether a time slice for the workload is less than a time slice threshold and in response moving the workload to the queue head.).
As per claims 13, 14, and 18, this is a system claim having similar limitations as cited in method claims 3, 4, and 8. Thus, claims 13, 14, and 18 is/are also rejected under the same rational as cited in the rejection of rejected claims 3, 4, and 8.
Claim(s) 5, 6, 15, and 16 is/are rejected under 35 U.S.C. 103 as being unpatentable over Zhu in view of Tung and further in view of Zuzga et al. (US 20220164235 A1) (hereinafter Zuzga).
As per claim 5, the combination of Zhu and Tung discloses The method according to claim 1, comprising: acquiring the queue data of the task queue, wherein the queue data comprises at least one of task queue length, workload priority distribution, workload group size, and response time distribution (See rejection to claim 1 above), but does not expressly disclose wherein the priority threshold is determined by utilizing a machine learning model.
However, Zuzga discloses wherein the priority threshold is determined by utilizing a machine learning model (e.g. Zuzga: (0023) discloses the priority analysis module 210 may estimate a priority level based on a machine learning model that is trained based on historical requests, their respective priority levels and resource consumption. The data associated with historical requests may include type of the requests, data associated with the requests, user information, client information, client preferences associated with historical requests, etc.).
It would have been obvious, under KSR, to one of ordinary skill in the art before the effective filling date of the claimed invention to modify the combination of Zhu and Tung with Zuzga because both are directed to determining a priority level based on a set of conditions and use known, complementary techniques to do so. A POSITA, seeking to improve the combination of Zhu and Tung’s method of determining a dynamic priority threshold, would have been motivated to apply Zuzga’s established practice of using a machine learning model to determine optimal priorities, thereby predictable reducing long wait times and increasing throughput.
As per claim 6, the combination of Zhu, Tung and Zuzga discloses the method according to claim 5 (See rejection to claim 5 above) further comprising: writing the queue data into a historical database; and regularly training the machine learning model based on historical queue data in the historical database and a labeled value of the priority threshold. (e.g. Zuzga: (0023) discloses the priority analysis module 210 may estimate a priority level based on a machine learning model that is trained (regularly trained) based on historical requests (historical queue data), their respective priority levels and resource consumption. The data associated with historical requests may include type of the requests, data associated with the requests, user information, client information, client preferences associated with historical requests, etc. Zuzga discloses historical requests are used to train a machine learning model. Historical requests inherently imply the requests are written to and stored in a storage system such as a historical database. Thus, Zuzga teaches writing queue data into a historical database.).
As per claims 15 and 16, this is a system claim having similar limitations as cited in method claims 5 and 6. Thus, claims 15 and 16 is/are also rejected under the same rational as cited in the rejection of rejected claims 5 and 6.
Claim(s) 9 and 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Zhu in view of Tung and Saxena, and in further view of Zuzga.
As per claim 9, the combination of Zhu, Tung, Saxena, and Zuzga discloses the method according to claim 8 (See rejection to claim 8 above), but does not expressly disclose wherein the priority of the workload is configurable.
However, Zuzga discloses wherein the priority of the workload is configurable (e.g. Zuzga: (0023) The client 110 has an option to override any default or priority levels determined by the server. (0004) The priority level of a workflow may be specified explicitly (e.g., by the user who submitted the workflow). Clients may override system-determined priorities with explicitly-supplied priorities.).
It would have been obvious, under KSR, to one of ordinary skill in the art before the effective filling date of the claimed invention to modify the combination of Zhu, Tung, and Saxena with Zuzga because both are directed to determining a priority level and use known, complementary techniques to do so. A POSITA, seeking to improve the combination of Zhu, Tung, and Saxena’s method of determining a priority for a workload, would have been motivated to apply Zuzga’s established practice of enabling clients to override system-determined priorities, thereby ensuring users have flexibility to meet their business needs.
As per claim 19, this is a system claim having similar limitations as cited in method claim 9. Thus, claim 19 is/are also rejected under the same rational as cited in the rejection of rejected claim 9.
Claim(s) 10 is/are rejected under 35 U.S.C. 103 as being unpatentable over Zhu in view of Tung and further in view of Seelam et al. (US 20080244209 A1) (hereinafter Seelam).
As per claim 10, the combination of Zhu and Tung disclose the method according to claim 2 (See rejection above to claim 2), but does not expressly disclose wherein selecting the task queue from the plurality of task queues comprises selecting the task queue by utilizing a round-robin scheduling algorithm.
However, Seelam discloses wherein selecting the task queue from the plurality of task queues comprises selecting the task queue by utilizing a round-robin scheduling algorithm (e.g. Seelam: (0019) discloses in certain embodiments, the virtual input/output scheduler allocates service to the first and second queues in a round-robin fashion.).
It would have been obvious, under KSR, to one of ordinary skill in the art before the effective filling date of the claimed invention to modify the combination of Zhu and Tung with Seelam because both are directed to selecting between a plurality of queues and use known, complementary techniques to do so. A POSITA, seeking to improve the combination of Zhu and Tung’s method of selecting from a plurality of queues, would have been motivated to apply Seelam’s established practice of using a round robin algorithm to select from the plurality of queues, thereby ensuring fairness and load balancing between the plurality of queues.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Egolf (US 20020083063 A1) teaches a dynamic dispatching priority ((Figs. 2 and 3) (0025) discloses the determination of the temporary dispatching priority is determined to be at least as high as any tasks in the queue. In the first alternate embodiment, a highest priority value is maintained for the queue. Then, whenever a task is enqueued on the queue, its priority is compared to the highest priority value for that queue, and if higher, the task's priority replaces the previous highest priority value for the queue. Then, whenever a task releases the resource by unlocking the lock, the remainder of the queue is searched for the highest task priority, and the highest priority value the queue is adjusted accordingly).
Chen (US 20220091888 A1) teaches offloading workloads to remote accelerator resources ((0055) discloses if it is determined that the priority of the job to be executed is lower than the threshold priority, scheduler 210-1 may determine the job to be executed as the job that can be executed by utilizing remote accelerator resources.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AARON ESTRELLADO whose telephone number is (571)272-9601. The examiner can normally be reached Monday-Friday 8:00am-4:00pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, April Blair can be reached at (571) 270-1014. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/A.M.E./Examiner, Art Unit 2196 /APRIL Y BLAIR/Supervisory Patent Examiner, Art Unit 2196