Policy based application suspension and termination
AssigneeMicrosoft Technology Licensing, LLC
InventorsBenjamin Salim Srour, Michael H. Krause, Haseeb Ahmed, Zinaida A. Pozen
Life of this patent
Estimating the term…
Abstract
In accordance with one or more aspects, an application that is to be suspended on a computing device is identified based on a policy. The policy indicates that applications that are not being used are to be suspended. The application is automatically suspended, and is allowed to remain in memory but not execute while suspended. Additionally, when memory is to be freed one or more suspended applications to terminate are automatically selected based on the policy, and these one or more selected applications are terminated.
Claims20
A method comprising:
- allowing, by an operating system of a computing device, a number of windows to be displayed on a display device of the computing device;
- identifying, based on a policy and the allowable number of windows to be displayed, an application to be suspended on a computing device, the policy indicating that applications that are not being used are to be suspended;
- responsive to determining that the application is being used, enabling execution of the application by a processor of the computing device;
- responsive to determining that the application is not being used and is not being displayed as one of the allowed number of windows, automatically suspending the application, the automatically suspended application being allowed to remain in memory but not execute;
- determining when memory in the computing device is to be freed;
- identifying multiple applications on the computing device that are suspended;
- and
- selecting one or more of the multiple applications that are suspended to terminate, the selecting including:
- accessing a first list of recently used applications of the multiple applications;
- accessing a second list of recently used applications of the multiple applications, each of the applications in the second list being less frequently used than each of the applications in the first list;
- and
- selecting as the one or more of the multiple applications to terminate one or more applications in the second list that are using a largest amount of memory among the applications in the second list.
One or more computer readable storage memories encoded with instructions that, responsive to execution on a computing device, cause the computing device to perform operations comprising:
- allowing, by an operating system of a computing device, a number of windows to be displayed on a display device of the computing device;
- identifying, based on a policy and the allowable number of windows to be displayed, an application to be suspended on a computing device, the policy indicating that applications that are not being used are to be suspended;
- responsive to determining that the application is being used, enabling execution of the application by a processor of the computing device;
- responsive to determining that the application is not being used and is not being displayed as one of the allowed number of windows, automatically suspending the application, the automatically suspended application being allocated in memory but not allowed to execute;
- determining when memory in the computing device is to be freed;
- identifying multiple applications on the computing device that are suspended;
- and
- selecting one or more of the multiple applications that are suspended to terminate, the selecting including:
- accessing a first list of recently used applications of the multiple applications;
- accessing a second list of recently used applications of the multiple applications, each of the applications in the second list being less frequently used than each of the applications in the first list;
- and
- selecting as the one or more of the multiple applications to terminate one or more applications in the second list that are using a largest amount of memory among the applications in the second list.
A system comprising:
- one or more modules implemented at least partially in hardware, the one or more modules configured to perform operations comprising:
- allowing, by an operating system of a computing device, a number of windows to be displayed on a display device of the computing device;
- identifying, based on a policy and the allowable number of windows to be displayed, an application to be suspended on a computing device, the policy indicating that applications that are not being used are to be suspended;
- responsive to determining that the application is being used, enabling execution of the application by a processor of the computing device;
- responsive to determining that the application is not being used and is not being displayed as one of the allowed number of windows, automatically suspending the application, the automatically suspended application being allowed to remain in memory but not execute;
- determining when memory in the computing device is to be freed;
- identifying multiple applications on the computing device that are suspended;
- and
- selecting one or more of the multiple applications that are suspended to terminate, the selecting including:
- accessing a first list of recently used applications of the multiple applications;
- accessing a second list of recently used applications of the multiple applications, each of the applications in the second list being less frequently used than each of the applications in the first list;
- and
- selecting as the one or more of the multiple applications to terminate one or more applications in the second list that are using a largest amount of memory among the applications in the second list.
Dependencies are inferred from the claim text.