Preserving web browser child processes by substituting a parent process with a stub process

US10289446B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10289446-B1
Application numberUS-201514855305-A
CountryUS
Kind codeB1
Filing dateSep 15, 2015
Priority dateSep 15, 2015
Publication dateMay 14, 2019
Grant dateMay 14, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods are provided for increasing the likelihood that a set of linked processes related to an application will not be terminated while operating in a background state by substituting a stub process for a main process in the set of linked applications. In response to detecting that the computing device is likely running low on memory, a stub process is created. In some embodiments, the stub process has limited or no functionality and requires less memory than the main process. Process handles of child processes dependent on the main process are transferred to the stub process from the main process. After the transfer, the main process is terminated. In some embodiments, the process may be reversed by transferring process handles for the child process back to the main process and terminating the stub process, such as in response to detecting that the main process has restarted.

First claim

Opening claim text (preview).

What is claimed is: 1. A computing device comprising: a memory having a finite size for storing one or more processes utilized in the execution of a software application, wherein the memory comprises a browser application having a set of linked processes that are dependent on a main process; and a processor coupled to the memory and configured to execute processor-executable instructions to perform operations comprising: determining that multiple applications are operating on the computing device and that there is a low amount of memory available for the set of linked processes of the browser application; creating a stub process corresponding to the main process of the browser application; associating the stub process with less memory than an amount of memory associated with the main processes; initiating transfer of process handles of a first child process and a second child process of the set of linked processes from the main process to the stub process; assigning a first background importance level to the first child process; assigning a second background importance level to the second child process, the second background importance level being lower than the first background importance level; assigning a high importance level to the stub process, wherein the high importance level prevents the stub process from being terminated; and subsequent to the transfer of the process handles of the child processes to the stub process, causing a termination of the main process. 2. The computing device of claim 1 , wherein the processor is configured to execute processor-executable instructions to perform operations further comprising: determining that the main process of the browser application has restarted; initiating transfer of the process handles of the child processes from the stub process to the restarted main process; and subsequent to the transfer of the process handles of the child processes to the restarted main process, causing termination of the stub process. 3. The computing device of claim 2 , wherein the processor is configured to execute processor-executable instructions to perform operations such that causing termination of the main process further comprises storing state information of the main process on the computing device. 4. The computing device of claim 3 , wherein the processor is configured to execute processor-executable instructions to perform operations such that determining that the main process of the browser application has restarted further comprises: retrieving the stored state information of the main process; and loading the retrieved stored state information. 5. A method for managing software applications on a computing device, wherein individual software applications are executed on the computing device, the method comprising: determining that a low-memory triggering event has occurred for an application having a set of linked processes and memory associated with each process of the set of linked processes; creating a second process linked to the set of linked processes, wherein the second process utilizes less memory than a first process of the set of linked processes and has reduced functionality relative to the first process; initiating transfer of process handles of a first child process and a second child process of the set of linked processes from the first process to the second process; assigning a first background importance level to the first child process; assigning a second background importance level to the second child process, the second background importance level being lower than the first background importance level; assigning a high importance level to the second process, wherein the high importance level prevents the second process from being terminated; and causing termination of the first process. 6. The method of claim 5 , further comprising storing state information associated with at least one of the first child process and the second child process. 7. The method of claim 5 , wherein determining that a low-memory triggering event has occurred for an application having a set of linked processes comprises determining that at least one of the first child process and the second child process was created using a low-memory flag. 8. The method of claim 5 , wherein the application is a browser application operating on the computing device. 9. The method of claim 8 , wherein at least one of the first child process and the second child process corresponds to at least one of a tab, a web page having a transient state, or a user interface element of the browser application. 10. The method of claim 5 , wherein creating the second process comprises: determining an amount of memory resources required to create the second process; de-allocating the determined amount of memory resources from memory resources allocated to the first process; and creating the second process using at least a portion of the de-allocated memory resources. 11. The method of claim 5 , wherein initiating transfer of the process handle of each child process from the first process to the second process comprises: establishing an inter-process communication channel between the first process and the second process; and transferring the process handle of the child process from the first process to the second process via the inter-process communication channel. 12. The method of claim 5 , wherein initiating transfer of the process handle of each child process from the first process to the second process comprises: determining a service name of the child process; and transferring the process handle of the child process from the first process to the second process using the service name of the child process. 13. The method of claim 5 , wherein initiating transfer of the process handle of each child process from the first process to the second process comprises: opening a shared memory location available to both the first process and the second process; causing the first process to store the process handle of the child process at the shared memory location; and notifying the second process that the first process has stored the process handle of the child process at the shared memory location. 14. The method of claim 13 , wherein the shared memory location is a shared memory file having a predetermined naming schedule. 15. The method of claim 5 further comprising: determining that the first process has restarted subsequent to the termination of the first process; initiating transfer of the process handles of the child processes from the second process to the restarted first process; and causing termination of the second process. 16. The method of claim 15 , wherein initiating transfer of the process handles of the child processes from the second process to the restarted first process further comprises determining that the restarted first process is associated with the second process. 17. The method of claim 5 , wherein causing termination of the first process comprises: storing state information of the first process on the computing device; and causing termination of the first process subsequent to storing the state information. 18. The method of claim 17 further comprising: retrieving the stored state information of the first process; and loading the retrieved stored state information. 19. The method of claim 5 further comprising forwarding data intended for the second process to a server. 20. The method of claim 19 further comprising: receiving th

Assignees

Inventors

Classifications

  • Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title

  • G06F9/4831Primary

    with variable priority · CPC title

  • G06F9/4887Primary

    involving deadlines, e.g. rate based, periodic · CPC title

  • Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence) · CPC title

  • the resource being the memory · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10289446B1 cover?
Systems and methods are provided for increasing the likelihood that a set of linked processes related to an application will not be terminated while operating in a background state by substituting a stub process for a main process in the set of linked applications. In response to detecting that the computing device is likely running low on memory, a stub process is created. In some embodiments,…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/4831. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 14 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).