DETAILED ACTION
Claims 1-20 are pending. Applicant has amended claims 1, 12, 14, 15 and 18.
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 .
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-5, 12-14 and 18-20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Aguilera et al. (US 2023/0031304 A1).
As to claim 1, Aguilera teaches a method of providing dedicated memory assignments to applications comprising:
defining an area of dedicated memory within system memory (The tiered memory 106 can include a first memory 109a, a second memory 109b, and potentially additional memories 109; paragraph [0012] and The tiered memory 106 can be presented or conceptualized as a single, unified memory resource to individual processes 119; paragraph [0014]), wherein frames (physical pages 113; paragraph [0013]) of the dedicated memory are assignable to one or more programs (each of the memories 109 may be segmented or divided into one or more physical pages 113, such as the physical pages 113a of the memory 109a and the physical pages 113b of the memory 109b. Individual physical pages 113 can be allocated by the operating system 116 to a process 119 when the process 119 requests resources from the tiered memory 106; paragraphs [0012]-[0013]);
determining, in response to a program initializing (The cluster management service 606 can be executed to determine an appropriate host computing device 100 to initially place a process 119. The cluster management service 606 can also be executed to intermittently or periodically reevaluate placement decisions and, if appropriate, initiate a migration of a process 119 from a current host computing device 100 to a new host computing device 100; paragraph [0060]), an amount of dedicated memory to assign to the program based on a dedicated memory parameter for the program (One or more allocation policies can be stored on the computing device and referenced by the operating system 116 to determine which physical pages 113 in a memory 109 to allocate to a process; paragraph [0017], [0023]-[0024], recommended amount of memory; paragraphs [0061], [0063]-[0066]); and
assigning, based on the determined amount of dedicated memory, a portion of dedicated memory to the program (the operating system can allocate one or more physical pages 113 in the memory 109a and/or the memory 109b to a process; paragraph [0022] and the cluster management service can identify a host computing device that can accommodate the ideal tier size for the first memory 109a and the second memory 109b … subsequently, the cluster management service can assign the process 119 to the host computing device selected at block 706; paragraph [0067]-[0068]), wherein the assigned portion of dedicated memory is dedicated to the program until program completion (inherent from the process still accessing the allocated pages without being deallocated or reclaimed while the process is running).
As to claim 2, Aguilera teaches the method of claim 1, wherein the area of dedicated memory is physical memory (RAM, DRAM VNRAM; paragraph [0012] and physical pages; paragraph [0013]).
As to claim 3, Aguilera teaches the method of claim 1, wherein the dedicated memory parameter is based on historical memory information for the program (an access history can store a record of page accesses by a process; paragraph [0018], and a second approach for allocating physical pages to a process … access history; paragraph [0024], [0065]).
As to claim 4, Aguilera teaches the method of claim 1, wherein the dedicated memory parameter indicates a minimum amount of dedicated memory and a target amount of dedicated memory (minimum or recommended amount of memory; paragraph [0066]).
As to claim 5, Aguilera teaches the method of claim 1 further comprising:
receiving, from the program, a memory allocation request (the process requests resources from the tiered memory 106; paragraph [0013]);
determining whether the memory allocation request can be fulfilled using dedicated memory (determine which physical pages 113 in a memory 109 to allocate to a process; paragraph [0017], [0023]-[0024]);
allocating, to the program, memory from the portion of dedicated memory when the memory allocation can be fulfilled using dedicated memory (the operating system could allocate the first number of physical pages 113a from the memory 109a; paragraph [0024]); and
allocating, to the program, memory from non-dedicated memory when the memory allocation cannot be fulfilled using dedicated memory (the operating system could allocate the second number of physical pages 113b from the memory 109b; paragraph [0024]).
As to claim 12, Aguilera teaches an apparatus for providing dedicated memory assignments to applications (a computing device 100; paragraph [0010] and abstract), the apparatus comprising a computer processor (one or more processors 103; paragraph [0010]), a computer memory operatively coupled to the computer processor (tiered memory 106; paragraph [0010] and Fig. 1), the computer memory having disposed therein computer program instructions that, when executed by the computer processor, cause the apparatus to (The processor 103 can represent any circuit or combination of circuits that can execute one or more machine-readable instructions stored in the tiered memory 106 that make up a computer program or process and store the results of the execution of the machine-readable instructions in the tiered memory 106; paragraph [0011]):
define an area of dedicated memory (The tiered memory 106 can include a first memory 109a, a second memory 109b, and potentially additional memories 109; paragraph [0012] and The tiered memory 106 can be presented or conceptualized as a single, unified memory resource to individual processes 119; paragraph [0014]), wherein frames (physical pages 113; paragraph [0013]) of the dedicated memory are assignable to one or more programs (each of the memories 109 may be segmented or divided into one or more physical pages 113, such as the physical pages 113a of the memory 109a and the physical pages 113b of the memory 109b. Individual physical pages 113 can be allocated by the operating system 116 to a process 119 when the process 119 requests resources from the tiered memory 106; paragraphs [0012]-[0013]);
determine, in response to a program initializing (The cluster management service 606 can be executed to determine an appropriate host computing device 100 to initially place a process 119. The cluster management service 606 can also be executed to intermittently or periodically reevaluate placement decisions and, if appropriate, initiate a migration of a process 119 from a current host computing device 100 to a new host computing device 100; paragraph [0060]), an amount of dedicated memory to assign to the program based on a dedicated memory parameter for the program (One or more allocation policies can be stored on the computing device and referenced by the operating system 116 to determine which physical pages 113 in a memory 109 to allocate to a process; paragraph [0017], [0023]-[0024], recommended amount of memory; paragraphs [0061], [0063]-[0066]); and
assign, based on the determined amount of dedicated memory, a portion of dedicated memory to the program, wherein the assigned portion of dedicated memory is dedicated to the program until program completion (the operating system can allocate one or more physical pages 113 in the memory 109a and/or the memory 109b to a process; paragraph [0022] and the cluster management service can identify a host computing device that can accommodate the ideal tier size for the first memory 109a and the second memory 109b … subsequently, the cluster management service can assign the process 119 to the host computing device selected at block 706; paragraph [0067]-[0068]), wherein the assigned portion of dedicated memory is dedicated to the program until program completion (inherent from the process still accessing the allocated pages without being deallocated or reclaimed while the process is running).
As to claims 13-14, see rejections of claims 4-5 above, respectively.
As to claim 18, Aguilera teaches a computer program product for providing dedicated memory assignments to applications, the computer program product disposed upon a non-transitory, computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to (any logic or application described herein that includes software or code can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as a processor in a computer system or other system. In this sense, the logic can include statements including instructions and declarations that can be fetched from the computer-readable medium and executed by the instruction execution system. In the context of the present disclosure, a “computer-readable medium” can be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with the instruction execution system; paragraph [0094]):
define an area of dedicated memory (The tiered memory 106 can include a first memory 109a, a second memory 109b, and potentially additional memories 109; paragraph [0012] and The tiered memory 106 can be presented or conceptualized as a single, unified memory resource to individual processes 119; paragraph [0014]), wherein frames (physical pages 113; paragraph [0013]) of the dedicated memory are assignable to one or more programs (each of the memories 109 may be segmented or divided into one or more physical pages 113, such as the physical pages 113a of the memory 109a and the physical pages 113b of the memory 109b. Individual physical pages 113 can be allocated by the operating system 116 to a process 119 when the process 119 requests resources from the tiered memory 106; paragraphs [0012]-[0013]);
determine, in response to a program initializing (The cluster management service 606 can be executed to determine an appropriate host computing device 100 to initially place a process 119. The cluster management service 606 can also be executed to intermittently or periodically reevaluate placement decisions and, if appropriate, initiate a migration of a process 119 from a current host computing device 100 to a new host computing device 100; paragraph [0060]), an amount of dedicated memory to assign to the program based on a dedicated memory parameter for the program (One or more allocation policies can be stored on the computing device and referenced by the operating system 116 to determine which physical pages 113 in a memory 109 to allocate to a process; paragraphs [0017], [0023]-[0024], recommended amount of memory; paragraphs [0061], [0063]-[0066]); and
assign, based on the determined amount of dedicated memory, a portion of dedicated memory to the program, wherein the assigned portion of dedicated memory is dedicated to the program until program completion (the operating system can allocate one or more physical pages 113 in the memory 109a and/or the memory 109b to a process; paragraph [0022] and the cluster management service can identify a host computing device that can accommodate the ideal tier size for the first memory 109a and the second memory 109b … subsequently, the cluster management service can assign the process 119 to the host computing device selected at block 706; paragraph [0067]-[0068]), wherein the assigned portion of dedicated memory is dedicated to the program until program completion (inherent from the process still accessing the allocated pages without being deallocated or reclaimed while the process is running).
it is the same as the method claim 1 above except this is computer program product claim, and therefore is rejected under the same ground of rejection.
As to claim 19, see rejection of claim 4 above.
As to claim 20, see rejection of claim 2 above.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
Claims 6-11 and 15-17 are rejected under 35 U.S.C. 103 as being unpatentable over Aguilera et al. (US 2023/0031304 A1) in view of Zhou et al. (CN 111459648 A).
As to claim 6, Aguilera teaches the method of claim 1 further comprising:
determining, based on a dedicated memory parameter for the subsequent program, how much of the portion of dedicated memory to assign the subsequent program (One or more allocation policies can be stored on the computing device and referenced by the operating system 116 to determine which physical pages 113 in a memory 109 to allocate to a process; paragraph [0017], [0023]-[0024], recommended amount of memory; [0063]-[0066] and a process can represent a sub-routine or sub-component of a program; paragraph [0016]).
Aguilera does not teach identifying, in response to completing the program, a subsequent program in a sequence of programs.
However, Aguilera teaches the process is a sub-routine of a program.
Zhou teaches identifying, in response to completing the program, a subsequent program in a sequence of programs; and determining, based on a dedicated memory parameter for the subsequent program, how much of the portion of dedicated memory to assign the subsequent program (“using the input order of the application program, orderly distributing the calculating resource for the application program, calculating the class, controlling the class application program to respectively correspond to the calculating class, controlling the class calculating resource to correspondingly distribute. When the application program is executed, entering step S3 to recycle the calculation resource occupied by the application program, and performing the secondary distribution to the resource”; page 11, 3rd – 4th paragraphs and “firstly, the memory requirements of each application program y1, y2, y3, ..., yN are ordered from small to large, and divided into n groups with the same memory specification, respectively is Y1, Y2, ..., Yn; then determining a memory specification in each group of memory requirements, the memory specification xi = MAX (Yi). Using the mode of memory resource management, can realize non-fragmentation management of the memory, when the application program applies memory, according to the predetermined memory rule to distribute it, for example, application program memory application of Yi group should be corresponding to the memory specification is xi. when the application program is finished, recycling the fast memory area, when other application program in the group applies for memory, firstly using the recycled memory resource, if there is no memory resource suitable for specification size, orderly expanding backwards”; page 12, 7th – 9th paragraphs).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply the teaching of Zhou to the system of Aguilera because Zhou teaches a method to recover the released computing resource and the memory resource of a finished application and when the new application program again applies resource, preferentially performing secondary distribution to the recovered resource. This can effectively reduce the design requirement of calculating resource; it can realize the efficient memory resource fully using the application program with high importance, realizing the non-fragmentation management of the memory through memory recycling and redistributing (abstract).
As to claim 7, Aguilera as modified by Zhou teaches the method of claim 6, wherein the program (sub-routine) and the subsequent program (sub-routine) are job steps of a job (a program; paragraph [0026]).
As to claim 8, Aguilera as modified by Zhou teaches wherein at least some of the portion of dedicated memory is assigned to the subsequent program (see Zhou: when other application program in the group applies for memory, firstly using the recycled memory resource, if there is no memory resource suitable for specification size, orderly expanding backwards”; page 12, 9th paragraph).
As to claim 9, Aguilera as modified by Zhou does not clearly teach wherein at least some of the portion of dedicated memory is freed based on a target amount of dedicated memory for the subsequent program.
However, Zhou teaches each application requires different amount of memory (according to the attribute setting result, according to the input order, respectively calculating resource and memory resource optimization distribution for each application program, managing and executing; page 10, 5th paragraph), and the resources returned from finished application is recycled to allocate to new application (when other application program in the group applies for memory, firstly using the recycled memory resource; page 12, 9th paragraph).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention that when the required memory of the subsequence program is less than the memory returned from the completed process/program, part of the memory returned from the completed process/program is free.
As to claim 10, Aguilera as modified by Zhou teaches the method of claim 8, wherein an additional portion of dedicated memory is assigned to the subsequent program based on a target amount of dedicated memory for the subsequent program (see Zhou: when other application program in the group applies for memory, firstly using the recycled memory resource, if there is no memory resource suitable for specification size, orderly expanding backwards”; page 12, 9th paragraph).
As to claim 11, Aguilera as modified by Zhou does not teach wherein the subsequent program is canceled when there is insufficient available dedicated memory to satisfy a minimum amount of dedicated memory for the subsequent program (see Zhou: when a certain time, the important application program is prepared in the memory resource space with high importance, the current memory resource is insufficient, then the application program is assigned to the general priority memory space operation; page 9, 5th paragraph. Thus, the application is cancelled in the high important priority group).
As to claims 15-17, see rejections of claims 6-8 above, respectively.
Response to Arguments
Applicant's arguments filed 4/16/2026 have been fully considered but they are not persuasive.
In response to Applicant’s arguments regarding Aguilera does not teach “defining an area of dedicated memory”, “frames of the dedicated memory”, and “determining, in response to a program initializing, and amount of dedicated memory to assign to the program”, examiner respectfully disagrees.
The rejection has been clarified to clearly show how Aguilera teaches the above limitations.
Therefore, the arguments are not persuasive and the rejection is maintained.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to DIEM K CAO whose telephone number is (571)272-3760. 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.
/DIEM K CAO/Primary Examiner, Art Unit 2196
DC
June 16, 2026