The date 18 months after sept 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 § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claim 18 recites the limitation "“the first control endpoint” . There is insufficient antecedent basis for this limitation in the claim(s) for which claim 18 depends. The examiner recommends to revise the parent claim to remove the antecedent problem or to make an explicit reference to the specification.
Claim Rejections - 35 USC § 101
6. 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.
Claim 19 is rejected under 35 U.S.C. 101 because the claimed invention is directed to nonstatutory subject matter. The claim(s) does/do not fall within at least one of the four categories of patent eligible subject matter because the broadest reasonable interpretation of the claimed “computer-readable media” encompasses transitory signals (“signals per se”) which is not one of the four statutory categories. The Examiner recommends amending the claims to recite a “non-transitory computer-readable media” to overcome the rejection.
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.
Claim(s) 1,2,3,5,6,7,8,9,19, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over CN116501438,Container loading method and device, HUAWEI TECH CO LTD, 2023-07-28 (HUAWEI hereafter) in view of Synchronization Primitives for a Multiprocessor: A Formal Specification, A. D. Birrell, et all, Digital Equipment Corporation, Systems Research Center, 1987 (Birrell hereafter).
HUAWEI teaches the invention substantially as claimed including:
1. A computer implemented method comprising:
a. executing a component-based code including a set of instructions comprising multiple threads
Regarding limitation 1a: HUAWEI Page 3, paragraph 3: “The multi-threaded container loading method provided in the embodiment of the present application uses the pre-prepared function container as the final running environment of the function.” Page 3, Paragraph 4: “In a possible implementation manner, before receiving the function call sent by the user, the method further includes: receiving the function code and the function dependency sent by the user; and deploying the function code and the function dependency of the function into a function container.” Page 3, Paragraph 2: “the method comprising: receiving a function call request sent by a user, the function call request including function information” Page 3 Paragraph 6: “In a possible implementation manner, the function information includes: at least one of a function name, a function type, and a function ID.” The function code of HUAWEI constitutes an element analogous to the component-based code. Both are described to be multithread capable; both are described to come pre-configured, and both are described to be executed by a user.
b. of the component-based code maintains one or more of the multiple threads
Regarding limitation 1b. HUAWEI Page 3, paragraph 3; Page 7, paragraph 6: “in a possible implementation manner, before forking the main thread of the language runtime process in the template container according to the process number of the function container to obtain the target subprocess, the method further includes: when the language runtime of the function is multi-threaded, obtaining the state information of each worker thread in at least one worker thread”. The state information of each thread besides the main thread is obtained and thereby maintained.
c. and wherein the component-based code is controlled by a controlling process on a computing system
Regarding limitation 1c: Page 3, paragraph 3; HUAWEI Page 4, paragraph 6: “The control process triggers the main thread of the template container to call a fork operation to obtain the target child process”.
d. receiving a request from the controlling process to perform a fork operation on the component-based code at an instruction within the component-based code
Regarding limitation 1d: HUAWEI Page 4, paragraph 6; “The control process triggers the main thread of the template container to call a fork operation to obtain the target child process”.
e. and direct the fork operation on the component-based code at the instruction by causing the component-based code to execute only one primary thread of the multiple threads by stopping execution of the other multiple threads
Regarding limitation 1e: HUAWEI Page 4, paragraph 9: “during the fork process of the main thread of the template container, for a multi-threaded parent process, fork will only copy the thread that actually called fork (in the embodiment of this application, referring to the main thread of the language runtime process in the template container), while other processes will disappear in the child processes generated after the fork” . Page 14, paragraph 4,: “in a possible example, the template container obtains the working state information of each worker thread, and when it is in the first state, the control thread triggers the main thread of the template container to call a fork operation, and closes the worker thread of the template container during the fork operation.”. A main thread calls the fork, and the other threads disappear I.E. stop.
f. duplicating the component-based code at the instruction to create a child process comprising a copy of the primary thread
Regarding limitation 1f: HUAWEI Page 4, paragraph 9: “during the fork process of the main thread of the template container, for a multi-threaded parent process, fork will only copy the thread that actually called fork (in the embodiment of this application, referring to the main thread of the language runtime process in the template container), while other processes will disappear in the child processes generated after the fork”.
g. restarting execution of the other multiple threads in the component-based code
Regarding limitation 1g: Page 14, paragraph 4: “in a possible example, the template container obtains the working state information of each worker thread, and when it is in the first state, the control thread triggers the main thread of the template container to call a fork operation, and closes the worker thread of the template container during the fork operation.”. Page 9, paragraphs 1-2: “In a possible implementation, the processing module is also used to: Initialize the data structure used to manage the worker thread, and create the worker thread of the target child process”.
i. and creating multiple threads of the child process
Regarding limitation 1i: HUAWEI Page 13, paragraph 12, “After the target child process is migrated to the function container, the target child process initializes the data structure used to manage the worker threads in the memory, and reuses the process of language runtime process initialization to recreate various worker threads. At this point, the target child process resumes the multi-threaded running state”
j. wherein the created multiple threads of the child process mirror the multiple threads of the component-based code
Regarding limitation 1j: HUAWEI Page 13, paragraph 12, “After the target child process is migrated to the function container, the target child process initializes the data structure used to manage the worker threads in the memory, and reuses the process of language runtime process initialization to recreate various worker threads. At this point, the target child process resumes the multi-threaded running state”.
While Huawei discusses synchronization in at least Page 17, paragraph 4, Huawei does not explicitly teach limitation 1h:
h. performing a correction on the child process.
Birrel does teach this however.
Birrell, Page 2, Column 1, Paragraph 1: “The synchronization facilities use three main types: Mutex, Condition, and Semaphore.” Page 2, Column 2, Paragraphs 3 and 4: “The normal paradigm for using condition variables is as follows. A condition variable "c" is always associated with some shared variables protected by a mutex "m" and a predicate based on those shared variables. A thread acquires m (i.e., enters a critical section) and evaluates the predicate to see if it should call Wait(m, c) to suspend its execution. This call atomically releases the mutex (i.e.,ends the critical section) and suspends execution of that thread. After any thread changes the shared variables so that o's predicate might be satisfied, it calls Signal(c) or Broadcast(c). (Although the changes may be made only within a critical section, the thread may exit the critical section before this call.) Signal and Broadcast allow blocked threads to resume execution and re-acquire the mutex.” Here the re-acquiring of the mutex is analogous to the step of recreating synchronization primitives of the child process described in the 112b rejection above . Therefore, it would have been obvious to one of ordinary skill in the art at the time of this application’s filing to implement mutexes and condition variables into HUAWEI’s design: as they represent proven means of facilitating thread execution. Mutexes ensure exclusive access to a resource, while condition variables allow threads to wait for specific data states without wasting CPU cycles. Together these could be relied upon to achieve synchronization.
The reasoning cited for the rejection of Claim 1’s limitations extends to its child, Claim 2.
HUAWEI teaches the invention substantially as claimed including :
2. The computer implemented method of claim 1, wherein causing the component-based code to execute only one primary thread of the multiple threads by stopping execution of the other multiple threads includes:
a. sending a first callback function by the primary thread to all components of the component-based code to stop execution of the one or more multiple threads that the at least one component maintains.
Regarding limitation 2a: HUAWEI Page 14, paragraph 4, lines 1-3: “in a possible example, the template container obtains the working state information of each worker thread, and when it is in the first state, the control thread triggers the main thread of the template container to call a fork operation, and closes the worker thread of the template container during the fork operation.”
The reasoning cited for the rejection of Claim 2’s limitations extends to its child, Claim 3.
HUAWEI teaches the invention substantially as claimed including :
3. The computer implemented method of claim 2,
a. wherein the primary thread comprises a central scheduler of the component-based code.
Regarding limitation 3a: While HUAWEI does not explicitly state limitation 3a, it is implied.
HUAWEI Page 4, paragraph 9: “it should be noted that, in the embodiment of this application, the template container "closes" the worker thread, and the action of "close" does not really exist. Instead, during the fork process of the main thread of the template container, for a multi-threaded parent process, fork will only copy the thread that actually called fork (in the embodiment of this application, referring to the main thread of the language runtime process in the template container), while other processes will disappear in the child processes generated after the fork.” Page 7 , paragraph 11: “the main thread of the template container can directly call the forking operation to copy the state of the main thread, and restore the multi-threaded state after the forking operation,”. HUAWEI does not explicitly refer to a central schedular attached to a primary thread within its scope. However, it does describe a main thread of a template container which is said to handle the closing of other threads as well as the restoring of the multi-threaded state after the forking operation, this functionality matches that of the described central schedular/primary thread. The specification of the application identifies that the primary thread and the central schedular can be one in the same component. Therefore, it would have been obvious to one of ordinary skill in the art at the time of this application’s filing that the respective components are analogous.
The reasoning cited for the rejection of Claim 1’s limitations extends to its child, Claim 5.
HUAWEI teaches the invention substantially as claimed including :
5. The computer implemented method of claim 1,
a. wherein duplicating the component-based code at the instruction is performed by a fork function call of an operating system of the computing system.
Regarding limitation 5a: HUAWEI Page 11 paragraph 6, line 1: “The second solution is based on the virtualization technology that requires fork implementation at the operating system (OS) layer”.
The reasoning cited for the rejection of claim 1 extends to its child Claim 6.
Huawei does not explicitly teach limitation 6a:
6. The computer implemented method of claim 1
a. wherein performing a correction on the child process before starting execution of the multiple threads of the child process comprises recreating synchronization primitives of the child process.
Birrel does teach this however.
This limitation is rejected for the reasoning stated above for the rejection of limitation 1h.
The reasoning cited for the rejection of claim 6 extends to its child Claim 7.
Huawei does not explicitly teach limitation 6a:
7. The computer implemented method of claim 1
a. wherein the synchronization primitives are mutexes and condition variables.
Birrel does teach this however.
This limitation is rejected for the reasoning stated above for the rejection of limitation 1h.
The reasoning cited for the rejection of Claim 1’s limitations extends to its child, Claim 8.
HUAWEI teaches the invention substantially as claimed including :
8. The computer implemented method of claim 1,
a. wherein restarting execution of the other multiple threads in the component-based code includes sending a second callback function by the primary thread to all components of the component-based code to start execution of the one or more multiple threads that the at least one component maintains.
Regarding limitation 8a: HUAWEI Page 18 , paragraph 2 lines 2-8: “When the language runtime of the function is multi-threaded, it is necessary to process the working thread of the template container corresponding to the language runtime of the function. Then, the main thread of the template container is used as the parent process, and the new process is obtained by calling POSIX fork twice, and the namespace and control group of the new process are switched to the function container. Furthermore, after calling POSIX fork twice to obtain the target child process, the newly generated process also needs to initialize the data structure used to manage the worker threads in the memory, and reuse the process initialization process of the current language to recreate various worker threads, so that the newly generated process can restore the multi-threaded running state.,” The reference describes a process by which a main thread initializes multiple layers of function calls to restore a multi-threaded state to working threads processed according to the language runtime or “maintained threads”. Here the restoration of multi-threaded state is analogous to starting the execution of the created multiple threads.
The reasoning cited for the rejection of Claim 1’s limitations extends to its child, Claim 9.
HUAWEI teaches the invention substantially as claimed including :
9. The computer implemented method of claim 1,
a. wherein restarting execution of the other multiple threads in the component-based code includes sending a second callback function by the primary thread to all components of the component-based code to start execution
Regarding limitation 9a: This limitation is likewise rejected for the reasoning stated above for the rejection of limitation 8a.
HUAWEI in view of Birrell teaches the invention substantially as claimed including :
19. A computer-readable storage medium having instructions stored thereon for a computer system that when executed by a host computing system directs the host computing system to, execute a component-based code including a set of instructions comprising multiple threads, wherein at least one component of the component-based code maintains one or more of the multiple threads, and wherein the component-based code is controlled by a controlling process on the computing system; receive a request from the controlling process to perform a fork operation on the component-based code at an instruction within the component-based code; and direct the fork operation on the component-based code at the instruction by: causing the component-based code to execute only one primary thread of the multiple threads by stopping execution of the other multiple threads, duplicating the component-based code at the instruction to create a child process comprising a copy of the primary thread, restarting execution of the other multiple threads in the component-based code, performing a correction on the child process, and creating multiple threads of the child process, wherein the created multiple threads of the child process mirror the multiple threads of the component- based code.
Regarding the limitations of 19: The limitations of claim 19 correspond to those of claim 1 and are therefore rejected for the same reasoning stated above.
HUAWEI in view of Birrell teaches the invention substantially as claimed including :
20. A computer-readable storage medium having instructions stored thereon for a computer system that when executed by a host computing system directs the host computing system to, execute a component-based code including a set of instructions comprising multiple threads, wherein at least one component of the component-based code maintains one or more of the multiple threads, and wherein the component-based code is controlled by a controlling process on the computing system; receive a request from the controlling process to perform a fork operation on the component-based code at an instruction within the component-based code; and direct the fork operation on the component-based code at the instruction by: causing the component-based code to execute only one primary thread of the multiple threads by stopping execution of the other multiple threads, duplicating the component-based code at the instruction to create a child process comprising a copy of the primary thread, restarting execution of the other multiple threads in the component-based code, performing a correction on the child process, and creating multiple threads of the child process, wherein the created multiple threads of the child process mirror the multiple threads of the component- based code.
Regarding the limitations of 20: The limitations of claim 20 correspond to those of claim 1 and are therefore rejected for the same reasoning stated above.
Claim(s) 4 is/are rejected under 35 U.S.C. 103 as being unpatentable over CN116501438,Container loading method and device, HUAWEI TECH CO LTD, 2023-07-28 in view of Synchronization Primitives for a Multiprocessor: A Formal Specification, A. D. Birrell, et all, Digital Equipment Corporation, Systems Research Center, 1987, as well as in further view of US20170308403, Coordinated Scheduling between Real-Time Processes, TELEFONAKTIEBOLAGET LM ERICSSON, 2017-10-26. (TELEFONAKTIEBOLAGET hereafter)
The reasoning cited for the rejection of Claim 3’s limitations extends to its child, Claim 4.
While HUAWEI in view of A. D. Birrell, describes an application of an analogous component, it does not explicitly teach limitation 4a:
4. The computer implemented method of claim 3
a. wherein the first callback function is sent by the central scheduler of the component-based code via a broadcast mechanism.
TELEFONAKTIEBOLAGET however, does teach this.
TELEFONAKTIEBOLAGET Page 3, column 1, paragraph 2, lines 3-5, 11-12 : “The central scheduler 20 of FIG. lb comprises a number of functional modules; … a send/receive module” The broadest reasonable interpretation of a broadcast mechanism would entail such a module in the context of these systems. It would have been therefore obvious to one of ordinary skill in the art at the time of this application’s filing to implement the above into HUAWEI’s design as it would facilitate function execution within the system. Therefore, the limitation is rejected.
Claim(s) 10-12,16 is/are rejected under 35 U.S.C. 103 as being unpatentable over CN116501438,Container loading method and device, HUAWEI TECH CO LTD, 2023-07-28 in view of Synchronization Primitives for a Multiprocessor: A Formal Specification, A. D. Birrell, et all, Digital Equipment Corporation, Systems Research Center, 1987, as well as in further view of US 20070240115 A1, DEBUGGING IN AN OPERATING SYSTEM WITH MULTIPLE SUBSYSTEMS, Microsoft Corporation, 2007-10-11. (MICROSOFT hereafter).
The reasoning cited for the rejection of Claim 1’s limitations extends to its child, Claim 10.
HUAWEI in view of A. D. Birrell, does not explicitly state limitation 10a,.
10. The computer implemented method of claim 1
a. wherein the request from the controlling process is received by the component-based code via a first control endpoint in the controlling process,
MICROSOFT however, does teach this.
MICROSOFT Page 1, Column 2 , Paragraph 10 “A facility is provided for debugging in an operating system with multiple subsystems. In various embodiments, the facility enables a debugger that is designed for use with a subsystem ("native subsystem") to debug an application program that is designed for use with another subsystem. As an example, the facility enables a debugger designed for use with the WINDOWS subsystem (such as MICROSOFT's "windbg" tool or MICROSOFT VISUAL STUDIO's debugger) to debug an application program designed for the POSIX subsystem. An extensibility mechanism of the debugger is employed to extend the debugger by providing an extension component that recognizes additional commands relating to debugging a software application on a subsystem other than the native subsystem of the debugger. As an example, an extension dynamic load library may be added to MICROSOFT windbg. Alternatively, an "add-in" may be added to the MICROSOFT VISUAL STUDIO integrated development environment's debugger. The extension component may recognize commands such as to attach to a POSIX application instead of the POSIX.EXE component, to attach to forked processes, or to route exceptions to the subsystem corresponding to the application program being debugged. When the extension component receives a command that it is configured to accept, the extension component may request the debugger via the debugger's API to add a thread for communicating with a listener thread that is added to the subsystem of the application program being debugged. Because the debugger and the subsystem of the application program being debugged are now capable of communicating with one another, the debugger is adapted for debugging in an operating system with multiple subsystems.” Page 2, Column 1, Paragraph 3: “In various embodiments, the extension component is configured to accept a command to attach to processes that are forked by the process being debugged. As an example, the extension component may be configured to accept a command from a user, such as "FORK DEBUG." When the extension component receives this command, it may start a debugger thread for communicating with a listener thread of the POSIX subsystem. The listener thread may be added to the POSIX subsystem by the facility for debugging purposes. When the POSIX application being debugged issues a fork program instruction, the listener thread notifies the debugger thread of the new process and provides the PID of the new process. The debugger thread then attaches to the newly forked process without detaching from the POSIX application being debugged. The debugger may maintain an indication of relationships between processes being debugged. As an example, the debugger may maintain a hierarchical list of forked processes. The hierarchical list may start with the original application program being debugged as a root of the hierarchy and each forked process as a child of the process that issued the fork instruction. In so doing, the debugger enables an application developer to debug each newly forked process in addition to the originally debugged application program. As an example, the debugger may provide a hierarchical representation of the forked process to the software developer in a user interface, such as in a tree view.” This reference describes a debugger I.E a controlling process from the spec, capable of communicating between subsystems (including between parent and child processes of a fork operation) ,via an extension component which is said to be able to receive and request commands. As a control endpoint is described as an endpoint for sending and receiving data across an inter-process connection. This extension component is therefore an analogous element. It would have been obvious to one of ordinary skill in the art at the time of this applications filing to allow for HUAWEI’s design to support the use of these control endpoints as it would in turn allow one to debug child threads through their parent, streamlining the process and reducing downtime.
HUAWEI in view of A. D. Birrell, does not explicitly state limitation 10b.
b. and further comprising duplicating, by the controlling process, the first control endpoint to create a second control endpoint for the child process
MICROSOFT however, does teach this.
Page 2, Column 1, Paragraph 3; The extension component from MICROSOFT is described to be configured to accept a command from the debugger to attach to processes that are forked by the process being debugged. This represents an analogous process to duplicating, by the controlling process, the first control endpoint to create a second control endpoint for the child process. The reasoning provided for the obviousness rejection of limitation 10a above applies to limitation 10b.
The reasoning cited for the rejection of Claim 10’s limitations extends to its child, Claim 11.
HUAWEI in view of A. D. Birrell, does not explicitly state limitation 11a.
11. The computer implemented method of claim 1
a. further comprising duplicating, by the controlling process, meta information of the component-based code from the first control endpoint to the second control endpoint
MICROSOFT however, does teach this.
MICROSOFT Page 2, Column 1, Paragraph 3; Page 5, Column 2, Paragraph 7: “The debugger provides the POSIX.EXE component with an indication of the application program being debugged, as illustrated by operational flow 514. As an example, the debugger may determine that an application program having a name "app.out" is to be debugged. The debugger may make this determination based on a software developer's input, such as a target of a "make" file or an indication of the application program provided by the software developer using the command line interface or graphical user interface. A "make" file is used by build tools associated with compilers and linkers to determine which files, such as source files, header files, and libraries, are to be used to create the application program.” This limitation is implicit to the process of being attached to forked child processes described by Microsoft. Furthermore, the debugger of Microsoft is described to be capable of providing a subprocess (a child process) with an indication of the application program being debugged. A program name is cited as an example. This is analogous to the application’s description from the specification of meta information, which is said to be able to include the names of the components of the component-based code. The reasoning provided for the obviousness rejection of limitation 10a above applies to limitation 11a.
The reasoning cited for the rejection of Claim 10’s limitations extends to its child, Claim 12.
HUAWEI teaches the invention substantially as claimed including :
12. The computer implemented method of claim 1
a. further comprising prior to duplicating the component-based code at the instruction, saving state information of each of the other multiple threads to memory.
Regarding limitation 12a: HUAWEI, Page 17, paragraph 3, lines 1-3: “In a possible example, the template container obtains the working state information of each worker thread, and when all are in the first state, the control thread triggers the main thread of the template container to call a fork operation, and closes the worker thread of the template container during the fork operation.” HUAWEI describes an instance whereby the state information of each other thread is preserved prior to the fork, or duplication, taking place.
The reasoning cited for the rejection of Claim 1’s limitations extends to its child, Claim 16.
HUAWEI in view of A. D. Birrell, does not explicitly state limitation 16a:
16. The computer implemented method of claim 1
a. wherein the controlling process is a debug process of a debugger.
The reasoning provided for the rejection of limitation 10a above applies to limitation 16a.
Claim(s) 13,14, 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over CN116501438,Container loading method and device, HUAWEI TECH CO LTD, 2023-07-28 in view of Synchronization Primitives for a Multiprocessor: A Formal Specification, A. D. Birrell, et all, Digital Equipment Corporation, Systems Research Center, 1987, in view of US 20070240115 A1, DEBUGGING IN AN OPERATING SYSTEM WITH MULTIPLE SUBSYSTEMS, Microsoft Corporation, 2007-10-11. (MICROSOFT hereafter), as well as in further view of JP 2001282549 A, DEVICE AND METHOD FOR CONVERTING PROGRAM AND RECORDING MEDIUM, SAKAI JUNJI, 2001-10-12. (SAKAI Hereafter)
The reasoning cited for the rejection of Claim 10’s limitations extends to its child, Claim 13.
HUAWEI in view of A. D. Birrell, Microsoft, does not explicitly state limitation 13a,.
13. The computer implemented method of claim 10
a. wherein the child process is terminated and deleted from memory by the controlling process via the second control endpoint.
SAKAI however, does teach this.
SAKAI Page 17, paragraph 3, lines 1-3: “In a possible example, the template container obtains the working state information of each worker thread, and when all are in the first state, the control thread triggers the main thread of the template container to call a fork operation, and closes the worker thread of the template container during the fork operation.” It would have been obvious to one of ordinary skill in the art at the time of this application’s filling to allow for the design of HUAWEI in view of, Birrell, Microsoft, to facilitate an expedited termination of a child process to quickly free the up resources.
The reasoning cited for the rejection of Claim 13’s limitations extends to its child, Claim 14.
HUAWEI in view of A. D. Birrell, Microsoft, does not explicitly state limitation 14a.
14. The computer implemented method of claim 10
a. wherein the child process is terminated without executing a standard shutdown sequence SAKAI however, does teach this.
The reasoning provided for the obviousness rejection of limitation 10a above applies to limitation 10b.
The reasoning cited for the rejection of Claim 1’s limitations extends to its child, Claim 18.
HUAWEI teaches the invention substantially as claimed including :
18. The computer implemented method of claim 1
a. further comprising: saving state information prior to duplicating the component-based code at the instruction;
The reasoning provided for the rejection of limitation 12a above applies to limitation 18a.
HUAWEI in view of A. D. Birrell, does not explicitly state limitation 18b:
b. duplicating, by the controlling process, the first control endpoint to create a second control endpoint for the child process;
MICROSOFT however, does teach this.
The reasoning provided for the rejection of limitation 10b above applies to limitation 18b.
HUAWEI in view of A. D. Birrell, Microsoft, does not explicitly state limitation 18c:
c. resuming execution with the child process; when the child process finishes execution: discarding the child process,
SAKAI however, does:
SAKAI Page 7 Paragraph 2: “After loading, if the parent thread that created the own thread stores the value in the same memory area, at least the processing result of the own thread after the load is discarded, and the data-dependent speculative mode in which those processes are re-executed” It would have been obvious to one of ordinary skill in the art at the time of this application’s filing to allow for the design of HUAWEI’ in view of Birrell, Microsoft, to discard a child process following its execution quickly free up system resources and to immediately move on to the next sequence of operations.
HUAWEI in view of A. D. Birrell, Microsoft, does not explicitly state limitation 18d:
d. and resuming execution of the component-based code at the instruction.
SAKAI however, does:
SAKAI Page 7 Paragraph 2; It would have been obvious to one of ordinary skill in the art at the time of this application’s filing to allow for the design of HUAWEI’ in view of Birrell, Microsoft, to resume execution of its equivalent of component-based code to facilitate the next sequence of operations to take place immediately.
Claim(s) 15 is/are rejected under 35 U.S.C. 103 as being unpatentable over CN116501438,Container loading method and device, HUAWEI TECH CO LTD, 2023-07-28 in view of Synchronization Primitives for a Multiprocessor: A Formal Specification, A. D. Birrell, et all, Digital Equipment Corporation, Systems Research Center, 1987, as well as in further view of A SIMULATOR FOR A MULTITHREADED PROCESSOR, M. ADDA et all, *Richmond American University (London), 1999. ( ADDA Hereafter)
The reasoning cited for the rejection of Claim 1’s limitations extends to its child, Claim 15.
HUAWEI in view of A. D. Birrell, does not explicitly state limitation 15a:
15. The computer implemented method of claim 3
a. wherein the component-based code is simulator code of a computer system simulator.
ADDA however, does teach this.
ADDA, Page 1, Abstract “This paper presents a simulator of a multithread
processor, which is developed, with a minimum architectural impact, on a conventional RISC platform. The multithread processor supports a mixture of control and data-flow model of execution with hardware primitives for scheduling and synchronization. The simulator permits, by changing the processor parameters such as the cache size, the number of contexts and the number of resources, to design, debug, test and evaluate the performance of multithreaded programs with a minimum effort”. It would have been obvious to one of ordinary skill in the art at the time of this application’s filing that to allow for HUAWEI’s design to be compatible with a simulator as it would confer the advantage of reducing the overhead for testing and debugging the system.
Claim(s) 17 is/are rejected under 35 U.S.C. 103 as being unpatentable over CN116501438,Container loading method and device, HUAWEI TECH CO LTD, 2023-07-28 in view of Synchronization Primitives for a Multiprocessor: A Formal Specification, A. D. Birrell, et all, Digital Equipment Corporation, Systems Research Center, 1987, as well as in further view of US 20140351520 A1, VALIDATION OF CACHE LOCKING USING INSTRUCTION FETCH AND EXECUTION, International Business Machines Corporation, 2014-11-27 (IBMC Hereafter) and ES 2675512 T3, Instruction To Calculate The Distance To A Specific Memory Limit, Bradbury et all, 2018-07-11 (Bradbury hereafter).
The reasoning cited for the rejection of Claim 1’s limitations extends to its child, Claim 17.
HUAWEI in view of A. D. Birrell, does not explicitly state limitation 17a:
17. The computer implemented method of claim 3
a. wherein the controlling process is a validation tool process which includes a branch instruction
IBMC however, does teach this.
IBMC, Page 5, column 1, paragraph 3: “To further explain this embodiment of the checking process, step S511 includes verification of the content in the locked way by jumping to the branch instruction in one of the randomly picked cache lines in locked way, traversing the way and returning control to the caller function in the validation tool.” It would have been obvious to one of ordinary skill in the art at the time of this application’s filing to allow for HUAWEI’s design to feature a validation tool including a branch instruction to ensure capability within the system and to facilitate preprocessing of anticipated actions.
HUAWEI in view of A. D. Birrell, IBMC, does not explicitly state limitation 17b:
17. The computer implemented method of claim 3
b. and wherein the fork operation is requested prior to the branch instruction.
Bradbury however, does teach this.
Bradbury, Page 20, Paragraph 2, “With reference to Figure 12B, the branch instruction information for executing a branch instruction is typically sent to a branch unit 5058 that frequently employs a branch prediction algorithm such as a historical branch table 5082 to predict the result of the fork before other conditional operations are completed. The objective of the current fork instruction will be preloaded and speculatively executed prior to the completion of conditional operations. When conditional operations have been completed, the speculatively executed branch instructions are completed or discarded based on the conditions of the conditional operation and the speculated result.” It would have been obvious to one of ordinary skill in the art at the time of this application’s filing to allow for the design of HUAWEI in view of A. D. Birrell, IBMC, to allow for a fork operation to take place in advance of a branch instruction as forking before branching as this order would make the program’s behavior more predictable, reducing the need for complex fork-safety checks.
IBMC Conclusion
Any inquiry concerning this communication or earlier communications from the examiner
should be directed to Luke Absher whose telephone number is (571) 270-1057. The examiner can
normally be reached M-F: 8:00 am - 4:00 pm.
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 US PTO Automated Interview Request (AIR) at http:/ /www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner's supervisor,
Kevin Young can be reached at 571-270-3180.
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.
/LUCAS DONALD ABSHER/Examiner, Art Unit 2194 /KEVIN L YOUNG/Supervisory Patent Examiner, Art Unit 2194