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 .
No claims have been amended. No new claims have been added. No claims have been canceled. Claims 1-20 are currently pending for examination.
Response to Arguments
As per applicant’s arguments, pg.2, regarding the rejection of the limitation of “execute a root process of the first application to an initial point according to the pattern of prior executions of the first application” under Segger, the examiner has carefully considered these arguments and respectfully disagrees. The breakpoint of Segger is indeed based upon a historical pattern of prior executions; see [0035] : “Firstly, it is possible to carry out statistics of the program instructions started in an analysis cycle by the processor of the system to be tested (target system) and determine the program instructions as the most frequent program instructions which were started most frequently in past analyses. In this method the prediction, that is the prediction of the next program breakpoint is simply extrapolated from the past” ; [0031]: “The minimisation of the flash ROM write cycles can be even more efficient by predictive determination of the breakpoint which is most frequently started in a debug cycle by the processor in the target system.”. Segger discloses determining the instructions which were started the most frequently in past analysis, and from that predictively determining the next breakpoint. Tracking the instructions which were started most frequently equates to generating a pattern of prior executions, and the breakpoint- or initial point- is determined using this historical data. As such the rejection of the independent claims under Briggs in view of Segger in further view of Portner is maintained, and accordingly the rejection of claims 1-20 under 35 USC 103 is maintained.
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.
Claims 1, 2, 5, 13, 14, 15 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Briggs (US 8402061 B1) in view of Segger (US 20070226702 A1) in further view of Portner (US 10419486 B1).
As per claim 1, Briggs discloses:
A device, comprising: a controller; a memory connected to the controller and having non-transitory computer-readable instructions stored thereon, that upon execution cause the device to: generate a pattern of prior executions of a first application of the device according to a frequency or a recency of reads from or writes to the memory for the first application (see fig.1- processor(s) 118 and Memory 120 ; “In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable memory that, when executed by one or more processors, perform the recited operations.”, col.42, lines 18-22 ; "the directed routing component 130 may include an analysis algorithm that monitors and analyzes the patterns of data transactions for the application 114(1). For example, the patterns may include a frequency of the data transactions, size of the data being transacted, duration of the data transactions, time passed since the previous read or write, and/or the like.", col.6, lines 61-66 ; Examiner Note: a processor equates to a controller, and data transactions equate to reads or writes from memory)
Briggs discloses the above limitations of claim 1, but does not disclose the execution of an application to an initial point according to the pattern of prior executions, nor the forking of a root process or starting of applications.
However, Segger discloses:
execute a root process of the first application to an initial point according to the pattern of prior executions of the first application (“The program to be tested is initially executed until the processor comes across the memory location #008030f8h where there is a stop instruction, in this case arbitrarily designated as BRKPOINT", 0056 ; see table 0001- "Software Breakpoint - Program break point triggered by an instruction or by a bit pattern on the data bus", "Hardware breakpoint - Program break point triggered by a monitoring of the program pointers of a processor", 0065 ; Examiner Note: the stop instruction is a software breakpoint, and the bit pattern on the data bus equates to a pattern of prior executions)
The combination of Briggs in view of Segger would provide a system capable of executing an application up until an initial point which is informed by a pattern of prior executions of the application which has been stopped. It would have been obvious to one of ordinary skill in the art, before the effective filing date, to combine the systems of Briggs and Segger to provide a stop instruction written over another an application code, thereby eliminating the need for time-consuming rewrite cycles (Segger, [0059]).
Briggs in view of Segger discloses the above limitations of claim 1, but does not disclose the forking of a root process or starting a first and second application using a first and second process.
However, Portner discloses:
fork the root process into multiple processes; start the first application using a first process of the multiple processes; and start a second application using a second process of the multiple processes. ("In one embodiment, one of the native daemons can be a Zygote, and the Zygote process 720 may be initiated via an executable located under a specific directory, for example, “/system/bin/app_process”. Generally, the Zygote may be responsible for starting and managing applications processes, and may also be referred to as the parent process or the master process. For example, the Zygote may preload any shared libraries and fork off the applications processes for any applications that are started up.", col.10, lines 28-37 ; "In some embodiments, the Service Layer is installed on the mobile device and is part of the software stack. Installing the Service Layer may involve a process of replacing an existing Zygote process start executable (e.g., “system/bin/app_process”) with an extended (i.e., modified or altered) executable. .. When the extended executable runs, it may load a JAR file 782 onto a runtime environment such as, for example, the Android Runtime (ART). This process may modify or alter how the Zygote forks processes to load software hooks for each process. For instance, software hooks may be used to modify the binder (783) (which may be the mechanism that is used to start all other apps on the device)", col.10, lines 38-55 ; Examiner Note: the first application is one of the more than one applications that are started by zygote using software hooks, and the second application is the zygote, implemented with a start executable equating to the second process.)
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to combine the system of Briggs in view of Segger with that of Portner in order to provide a Service Layer which allows for dynamic customization of applications, and provide an additional level of security by assuring only trusted code may be activated as a software hook (Portner, [col.4, lines 25-34]).
As per claim 2, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 1.
Furthermore, Portner discloses:
wherein the device is a mobile computing device ("According to another aspect of some embodiments, the computing device may be a mobile device. The mobile device may be an Android device running an Android operating system.", col.2, lines 21-23)
As per claim 5, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 1.
Furthermore, Portner discloses:
an operating system of the device forks the root process into the multiple processes (" FIG. 7 is a sequence diagram 700 illustrating a boot up sequence for an OS with the Service Layer components installed in accordance with some embodiments described herein. In some embodiments, the OS is the Android operating system, and the initialization process may be referred to as the “init process” 781. After the init process is invoked 781, a script file (e.g., “/init.rc”), which describes the file system and other parameters that need to be set up, may be executed. The init process 781 may start native daemons. A deamon may refer to a program that runs as a background process, rather than being under the direct control of an interactive user. For example, daemons may serve the function of responding to network requests, hardware activity, or other programs by performing some task. In one embodiment, one of the native daemons can be a Zygote, and the Zygote process 720 may be initiated via an executable located under a specific directory, for example, “/system/bin/app_process”. Generally, the Zygote may be responsible for starting and managing applications processes, and may also be referred to as the parent process or the master process. For example, the Zygote may preload any shared libraries and fork off the applications processes for any applications that are started up.", col.10, lines 15- 28 ; Examiner Note: the Zygote is a native daemon of the operating system, equating to the operating system)
As per claim 13, Briggs discloses:
a memory connected to the controller and having non-transitory computer-readable instructions stored thereon, that upon execution cause the device to: generate a pattern of prior executions of an application of the device according to a frequency or a recency of reads from or writes to the memory for the application (see fig.1- processor(s) 118 and Memory 120 ; “In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable memory that, when executed by one or more processors, perform the recited operations.”, col.42, lines 18-22 ; "the directed routing component 130 may include an analysis algorithm that monitors and analyzes the patterns of data transactions for the application 114(1). For example, the patterns may include a frequency of the data transactions, size of the data being transacted, duration of the data transactions, time passed since the previous read or write, and/or the like.", col.6, lines 61-66 ; Examiner Note: a processor equates to a controller, and data transactions equate to reads or writes from memory)
Briggs discloses the above limitations of claim 1, but does not disclose the execution of an application to an initial point according to the pattern of prior executions, nor the forking of a root process or starting of applications.
However, Segger discloses:
execute a root process of the first application to an initial point according to the pattern of prior executions of the first application (“The program to be tested is initially executed until the processor comes across the memory location #008030f8h where there is a stop instruction, in this case arbitrarily designated as BRKPOINT", 0056 ; see table 0001- "Software Breakpoint - Program break point triggered by an instruction or by a bit pattern on the data bus", "Hardware breakpoint - Program break point triggered by a monitoring of the program pointers of a processor", 0065 ; Examiner Note: the stop instruction is a software breakpoint, and the bit pattern on the data bus equates to a pattern of prior executions)
Briggs in view of Segger discloses the above limitations of claim 1, but does not disclose the forking of a root process or starting a first and second application using a first and second process, wherein the second process is a process of an operating system.
However, Portner discloses:
fork the root process into multiple processes; start the application using a first process of the multiple processes; and implement a process of an operating system of the device using a second process of the multiple processes ("In one embodiment, one of the native daemons can be a Zygote, and the Zygote process 720 may be initiated via an executable located under a specific directory, for example, “/system/bin/app_process”. Generally, the Zygote may be responsible for starting and managing applications processes, and may also be referred to as the parent process or the master process. For example, the Zygote may preload any shared libraries and fork off the applications processes for any applications that are started up.", col.10, lines 28-37 ; "In some embodiments, the Service Layer is installed on the mobile device and is part of the software stack. Installing the Service Layer may involve a process of replacing an existing Zygote process start executable (e.g., “system/bin/app_process”) with an extended (i.e., modified or altered) executable. .. When the extended executable runs, it may load a JAR file 782 onto a runtime environment such as, for example, the Android Runtime (ART). This process may modify or alter how the Zygote forks processes to load software hooks for each process. For instance, software hooks may be used to modify the binder (783) (which may be the mechanism that is used to start all other apps on the device)", col.10, lines 38-55 ; Examiner Note: the first application is one of the more than one applications that are started by zygote, and the zygote is a process of an operating system implemented with an executable equating to the second process.)
As per claim 14, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 13.
Furthermore, Portner discloses:
the non-transitory computer-readable instructions further cause the device to store data for the root process of the application in flash memory ("The boot loader code may initialize the necessary memory, clock, or network required to run the kernel. Next, as the kernel is launched, it initializes its various subsystems and may proceed to launch root process or the first process of the system", col.10, lines 10-14 ; "The computer system 1101 also includes memory or memory location 1110 (e.g., random-access memory, read-only memory, flash memory)", col.14, lines 3-5)
As per claim 15, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 13.
Furthermore, Portner discloses:
the non-transitory computer-readable instructions further cause the device to store data for the root process of the application in non-volatile random-access memory ("The boot loader code may initialize the necessary memory, clock, or network required to run the kernel. Next, as the kernel is launched, it initializes its various subsystems and may proceed to launch root process or the first process of the system", col.10, lines 10-14 ; "The computer system 1101 also includes memory or memory location 1110 (e.g., random-access memory, read-only memory, flash memory)", col.14, lines 3-5)
As per claim 18, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 13.
Furthermore, Briggs discloses:
the predetermined condition is based on or updated by the pattern of prior executions ("In alternative embodiments, the directed routing component 130 may make its own determination regarding the routing of the data transactions. In such embodiments, the directed routing component 130 may include an analysis algorithm that monitors and analyzes the patterns of data transactions for the application 114(1). For example, the patterns may include a frequency of the data transactions, size of the data being transacted, duration of the data transactions, time passed since the previous read or write, and/or the like. ", col.6, lines 58-66; Examiner Note: the patterns of prior executions/data transactions are conditions used in the determination of routing decisions made by the routing component)
Claims 3 and 4 are rejected under 35 U.S.C. 103 as being unpatentable over Briggs (US 8402061 B1) in view of Segger (US 20070226702 A1) in further view of Portner (US 10419486 B1) in further view of Lindquist (US 20210011826 A1).
As per claim 3, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 2, but does not disclose the patterns of prior executions being associated with any user.
However, Lindquist discloses:
the patterns of prior executions of the first application are from use of the first application on the mobile computing device by a user and other users ("A query that includes an identifier on a target computing resource can cause the historical extract application 145 to extract usage data associated with any user of the computing resource.", 0023)
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to combine the system of Briggs in view of Segger in further view of Portner with that of Lindquist in order to provide usage data which could highlight system objects which could be potential security risks to the system (Lindquist, [0033]).
Lindquist discloses a pattern of prior executions associated with any user of the first application on the mobile computing device, but does not disclose the root process being customized.
However, Portner discloses:
the root process is customized for use of the first application on the mobile computing device by any user ("The SL module may contain software hooks that are configured to customize a mobile device, as described in FIG. 1.", col.8, lines 22-24 ; "This process may modify or alter how the Zygote forks processes to load software hooks for each process. For instance, software hooks may be used to modify the binder (783) (which may be the mechanism that is used to start all other apps on the device). ", col.10, lines 50-55)
As per claim 4, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 2, but does not disclose the patterns of prior executions being associated with any user.
However, Lindquist discloses:
the patterns of prior executions of the first application are from use of the first application on the mobile computing device by the user so that the root process is customized for use of the first application on the mobile computing device by the user ("A query that includes both an identifier of a user and an identifier of target computing resource can cause the historical extract application 145 to extract usage data associated with the target user of the target computing resource", 0023)
Lindquist discloses a pattern of prior executions associated with a target user of the first application on the mobile computing device, but does not disclose the root process being customized for that user.
However, Portner discloses:
the root process is customized for use of the first application on the mobile computing device by any user ("The SL module may contain software hooks that are configured to customize a mobile device, as described in FIG. 1.", col.8, lines 22-24 ; "This process may modify or alter how the Zygote forks processes to load software hooks for each process. For instance, software hooks may be used to modify the binder (783) (which may be the mechanism that is used to start all other apps on the device). ", col.10, lines 50-55)
Claim 6 is rejected under 35 U.S.C. 103 as being unpatentable over Briggs (US 8402061 B1) in view of Segger (US 20070226702 A1) in further view of Portner (US 10419486 B1) in further view of Sugihara (US 20180295314 A1).
As per claim 6, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 1, but does not disclose the first application being started upon a user request.
However, Sugihara discloses:
the first application is started based on a user request to start the first application ("In response to a user's request to start up an application made via the touch panel 13, the processing unit 10 reads the application from the storage unit 11 to the storage unit 11 and executes the application.", 0019)
It would have been obvious to combine the system of Briggs in view of Segger in further view of Portner with the method of Sugihara in order to provide a means for a user to be able to start an application through a convenient touch panel (Sugihara, [0020]).
Claim 7 is rejected under 35 U.S.C. 103 as being unpatentable over Briggs (US 8402061 B1) in view of Segger (US 20070226702 A1) in further view of Portner (US 10419486 B1) in further view of Chapman (US 20110252430 A1).
As per claim 7, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 1, but does not disclose the second application being started upon a user request.
However, Chapman discloses:
user request is a first user request, and wherein the second application is started based on a second user request to start the second application ("Referring to FIG. 2, illustrative Task Completion operation 200 begins when notice that a non-foreground user application (SECOND APP) is to be brought into the foreground (block 205). This may result from, for example, a user's request to start a second user application or an incoming call to a VOIP user application.", 0039)
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to combine the system of Briggs in view of Segger in further view of Portner with the second application request started upon a second user request of Chapman in order to leverage the advantages of background processing without negative consequences to the user experience (Chapman, [0004]).
Claim 8 is rejected under 35 U.S.C. 103 as being unpatentable over Briggs (US 8402061 B1) in view of Segger (US 20070226702 A1) in further view of Portner (US 10419486 B1) in further view of Chaiken (US 20200334045 A1).
As per claim 8, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 1, but does not disclose a request to end the first application, partially ending the first application, or continuing to run the root process upon receipt of the request.
However, Chaiken discloses:
the non-transitory computer-readable instructions further cause the device to: receive a user request to end the first application; at least partially end the first application upon receiving the request; ("then responding to the user request to stop the BIOS debug mode by not executing the supplemental BIOS component/s together with the system BIOS firmware during current and future system boots only if the second input has been received from the user to request stop of the BIOS debug mode.", clm.7 ; Examiner Note: the BIOS debug mode equates to the first application)
continue to run the root process of the application upon receipt of the request (“then responding to the absence of the removed flag in the non-volatile storage by not executing the supplemental BIOS component/s together with the system BIOS firmware during current and future system boots only if the flag is detected not to be present in the non-volatile storage”, clm.8 ; Examiner Note: the BIOS firmware without the supplemental BIOS component/debug mode equates to the root process which continues running upon receipt of the request)
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to combine the system of Briggs in view of Segger in further view of Portner with the partial ending of a first application of Chaiken in order to provide a more flexible and efficient system which allows the user to select whether or not the supplemental components of the root process (BIOS) are to be included during execution (Chaiken, [0009]).
Claim 9 is rejected under 35 U.S.C. 103 as being unpatentable over Briggs (US 8402061 B1) in view of Segger (US 20070226702 A1) in further view of Portner (US 10419486 B1) in further view of Borunda (US 10929081 B1).
As per claim 9, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 1, but does not disclose the patterns of prior executions being from use of first application across numerous devices.
However, Borunda discloses:
the patterns of prior executions of the first application are from use of the first application on the device and at least one other computing device by the user ("For example, when a user interacts with one device, the device (e.g., via the context manager) can have access to the user's prior communication or interaction with other devices in the same network. Therefore, the device “knows” what happened before and can communicate with the user with such knowledge.", col.3, lines 29-35 ; "In some embodiments, each of the multiple devices can manage a copy of the most current context information (e.g., which can be downloaded from the context manager).", col.3, lines 38-40)
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to combine the system of Briggs in view of Segger in further view of Portner with the context information across devices of Borunda in order to improve the user experience by tracking a user’s activity across devices without the user providing details or background information for every input (Borunda, [col.3, lines 28-33)
Borunda discloses tracking a pattern of prior executions across multiple user devices, but does not describe the root process being customized.
However, Portner discloses:
the root process is customized for use of the application on the device and the at least one other computing device by the user ("The SL module may contain software hooks that are configured to customize a mobile device, as described in FIG. 1.", col.8, lines 22-24 ; "This process may modify or alter how the Zygote forks processes to load software hooks for each process. For instance, software hooks may be used to modify the binder (783) (which may be the mechanism that is used to start all other apps on the device). ", col.10, lines 50-55)
Claim 10 is rejected under 35 U.S.C. 103 as being unpatentable over Briggs (US 8402061 B1) in view of Segger (US 20070226702 A1) in further view of Portner (US 10419486 B1) in further view of Chrabaszcz (6138179).
As per claim 10, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 1, but does not disclose the execution of the root process comprising the movement of data related to patterns of prior executions before initial writes.
However, Chrabaszcz discloses:
the execution of the root process of the first application comprises movement of data in the memory before any initial writes to the memory for the first application, wherein the moved data comprises data related to the patterns of prior executions of the first application ("an operating system program;...; a format module which automatically formats the primary active and extended DOS partitions so as to create a root directory and a file allocation table for each partition; a driver module which automatically copies a specified driver to the primary active DOS partition; a startup module which automatically copies customized CONFIG.SYS and AUTOEXEC.BAT startup files from a first memory device to the primary active DOS partition; ", col.3, lines 33-50 ; Examiner Note: copying the customized CONFIG.SYS and AUTOEXEC.BAT files equates to moving data pertaining to the prior executions before making initial writes)
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to combine the system of Briggs in view of Segger in further view of Portner with the movement of data before initial writes of Chrabaszcz in order to provide a system which requires minimal human interaction for configuring the system and formatting memory spaces, thereby reducing the amount of time required by the system operator to perform these tasks (Chrabaszcz, [col.3, lines 6-11]).
Claims 11 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over Briggs (US 8402061 B1) in view of Segger (US 20070226702 A1) in further view of Portner (US 10419486 B1) in further view of Meyers (US 5260689 A).
As per claim 11, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 1, but does not disclose executing the predicted initial writes for the first application.
However, Meyers discloses:
the non-transitory computer-readable instructions further cause the device to, after an operating system in the device forks the root process, execute predicted initial writes for the first application to customize the start of the first application using the first process ("in either of the two modes of operation, turning on the key switch will impress a waveshaped initialization pulse on the initialization channel, which will establish expected initial conditions to the memory elements and also set the initial condition of the counter, so that a predetermined sequence of time dependent events will occur in succession.", col.7, lines 20-27)
The system of Briggs in view of Segger in further view of Portner in further view of Meyers would be capable of executing the initial writes after forking the root process (Portner, [col.10, lines 28-37]). It would have been obvious to one of ordinary skill in the art, before the effective filing date, to combine the system of Briggs in view of Segger in further view of Portner with the writing of initial conditions to memory of Meyers in order to provide an initialization procedure which will render the state of the memory objects ascertainable (Meyers, [col.5, lines 60-62])
As per claim 12, Briggs in view of Segger in further view of Portner in further view of Meyers fully discloses the limitations of claim 11.
Furthermore, Meyers discloses:
the non-transitory computer-readable instructions further cause the device to, after the operating system in the device forks the root process, execute predicted initial writes for the second application to customize the start of the second application using the second process (“in either of the two modes of operation, turning on the key switch will impress a waveshaped initialization pulse on the initialization channel, which will establish expected initial conditions to the memory elements and also set the initial condition of the counter, so that a predetermined sequence of time dependent events will occur in succession.", col.7, lines 20-27 ; Examiner Note: the second mode of operation equates to the second application initialized with a second process)
The system of Briggs in view of Segger in further view of Portner in further view of Meyers would be capable of executing the initial writes for the second application, or mode of operation, after forking the root process (Portner, [col.10, lines 28-37]).
Claim 16 is rejected under 35 U.S.C. 103 as being unpatentable over Briggs (US 8402061 B1) in view of Segger (US 20070226702 A1) in further view of Portner (US 10419486 B1) in further view of Liu (US 20200394752 A1).
As per claim 16, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 13, but does not disclose the use of 3D XPoint memory.
However, Liu discloses:
non-volatile random-access memory comprises 3D XPoint memory ("As examples, the storage circuitry 908 may be implemented as hard disk drives (HDDs); a micro HDD; solid state drives (SSDs); solid state disk drive (SSDD); serial AT attachment (SATA) storage devices (e.g., SATA SSDs); flash drives; flash memory cards, such as SD cards, microSD cards, xD picture cards, and the like, and USB flash drives; three-dimensional cross-point (3D Xpoint) memory devices", 0090)
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to combine the system of Briggs in view of Segger in further view of Portner with the 3D XPoint memory of Liu in order to provide a known memory device with lower latency, higher throughput, and whose functionality is well-understood in the art to the system of Briggs in view of Segger in further view of Portner. One of ordinary skill in the art could have substituted any non-volatile random access memory within the system for 3D XPoint memory to reliably and predictably provide a computer memory system with lower latency and higher throughput.
Claim 17 is rejected under 35 U.S.C. 103 as being unpatentable over Briggs (US 8402061 B1) in view of Segger (US 20070226702 A1) in further view of Portner (US 10419486 B1) in further view of Chaiken (US 20200334045 A1) in further view of Chen (US 20180188770 A1).
As per claim 17, Briggs in view of Segger in further view of Portner fully discloses the limitations of claim 13, but does not disclose the partially ending of an application upon a user request, or partial re-execution of the root process according to a condition.
However, Chaiken discloses:
the non-transitory computer-readable instructions further cause the device to: receive a user request to end the application; at least partially end the application and the root process upon receiving the request; ("then responding to the user request to stop the BIOS debug mode by not executing the supplemental BIOS component/s together with the system BIOS firmware during current and future system boots only if the second input has been received from the user to request stop of the BIOS debug mode.", clm.7; see fig.6 )
Chaiken discloses partially ending an application upon receiving a user request, but does not disclose stopping and re-executing the root process upon the request.
However, Chen discloses:
after at least partially ending the application and the root process, at least partially re-execute the root process according to a predetermined condition ("To sum up, in the memory clock frequency adjusting method and the computer device provided by the embodiments of the invention, whether to lower the memory clock frequency by the BIOS and to re-execute the boot process are determined according to whether the computer device is successfully booted in the stable system and loads the OS. ", 0036 ; Examiner Note: the boot process equates to the root process, the condition is whether the device has been booted successfully in the stable system. it is inherent that the root process was at least partially ended before being re-executed)
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to combine the system of Briggs in view of Segger in further view of Portner in further view of Chaiken with the partial re-execution of the BIOS boot process of Chen in order to allow for the effective implementation of changes to the root process after the process has started (Chen, [0036])
Claims 19 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Briggs (US 8402061 B1) in view of Segger (US 20070226702 A1) in further view of Sultan (US 20160373481 A1)
As per claim 19, Briggs discloses:
A device, comprising: a controller; a memory connected to the controller and having non-transitory computer-readable instructions stored thereon, that upon execution cause the device to: generate a pattern of prior executions of a plurality of applications of the device according to a frequency or a recency of reads from or writes to the memory for the plurality of applications (see fig.1- processor(s) 118 and Memory 120 ; “In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable memory that, when executed by one or more processors, perform the recited operations.”, col.42, lines 18-22 ; "the directed routing component 130 may include an analysis algorithm that monitors and analyzes the patterns of data transactions for the application 114(1). For example, the patterns may include a frequency of the data transactions, size of the data being transacted, duration of the data transactions, time passed since the previous read or write, and/or the like.", col.6, lines 61-66 ; see fig.1- applications 114(1) through 114(N) Examiner Note: a processor equates to a controller, and data transactions equate to reads or writes from memory )
Briggs discloses the generation of pattern of prior executions, but does not disclose running an application up until an initial point based on a pattern of prior executions.
However, Segger discloses:
execute a root process of the first application of a plurality of applications to an initial point according to the pattern of prior executions of the first application (“The program to be tested is initially executed until the processor comes across the memory location #008030f8h where there is a stop instruction, in this case arbitrarily designated as BRKPOINT", 0056 ; see table 0001- "Software Breakpoint - Program break point triggered by an instruction or by a bit pattern on the data bus", "Hardware breakpoint - Program break point triggered by a monitoring of the program pointers of a processor", 0065 ; Examiner Note: the stop instruction is a software breakpoint, and the bit pattern on the data bus equates to a pattern of prior executions)
execute a second root process of a second application of the plurality of applications to a second initial point according to the pattern of prior executions (“FIG. 3 shows another method for testing programs.”, 0058 ; “The program to be tested is initially executed until the processor comes across the memory location #008030f8h where there is a stop instruction, in this case arbitrarily designated as BRKPOINT", 0056 ; see table 0001- "Software Breakpoint - Program break point triggered by an instruction or by a bit pattern on the data bus", "Hardware breakpoint - Program break point triggered by a monitoring of the program pointers of a processor", 0065 ; Examiner Note: the stop instruction is a software breakpoint, and the bit pattern on the data bus equates to a pattern of prior executions, multiple programs are tested within this system- equating to a second root process)
The combination of Briggs with Segger would provide a system capable of executing a second root process of a second application to a second initial point according to a pattern of prior executions (see Briggs fig.1, applications 114(1)-114(N)).
Briggs in view of Segger discloses the above limitations of claim 19, but does not disclose merging root processes.
However, Sultan discloses:
merge the first root process and the second root process into a single root process (“For example, the gathered information may detect that a child process was forked from a parent process at a first time and that a similar child process was forked from another instance of the parent process at a second time. Based on this information the two instances of the parent process may be merged into a node representing the unique parent process and the two child processes may be merged into a unique child process depending from the parent process, such as is illustrated by the process 302D (parent) and the process 302E (child)”, 0065 ; Examiner Note: a parent process equates to a root process)
start the first application using the single root process (“For example, a web server parent process may spawn a PHP Hypertext Preprocessor (PHP) child process, and rather than have a dozen web server processes linked to a dozen PHP child processes in the graph, the parent processes and child processes may be separately merged to have a single web server parent process linked to a single PHP child process”, 0065 ; Examiner Note: the PHP child process spawned by the merged parent process equates to a first application started using a single root process)
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to combine the teachings of Briggs in view of Segger with those of Sultan in order to provide the customer of a computing resource with the ability to monitor a wide variety of resource types from locations normally only accessible to the service provider (Sultan, [0016]).
As per claim 20, Briggs in view of Segger in further view of Sultan fully discloses the limitations of claim 19.
Furthermore, Sultan discloses:
start the second application using the single root process (“ if one of the aforementioned web server parent processes also spawns a second child process, that the other web servers do not, that second child process may still be linked to the merged web server parent node.”)
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Gilbert (US 5590356 A) – discloses a system for operating a monolithic synchronous processor (MeshSP) with a mesh parallel architecture. Discloses a root process which spawns a special thread.
Neema (US 8161436 B1) – discloses a system for the transformation of parallel blocks into synchronized parallel processes that can be simulated without incurring any computing overhead.
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 ROSS MICHAEL VINCENT whose telephone number is (703)756-1408. The examiner can normally be reached Mon-Fri 8:30AM-5:30PM.
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.
/Ross Vincent/
Examiner, Art Unit 2196
/APRIL Y BLAIR/Supervisory Patent Examiner, Art Unit 2196