IP Library Granted Patent US 10,133,601
Granted Patent B2
US 10,133,601 · App. 15/086,631 · Granted Nov 20, 2018

Memory management

Inventors: Padmashree K. Apparao (Portland, OR); Zhen Zhou (Shanghai, CN); Thomas L. Carr (Newberg, OR)
Assignee: Intel Corporation
G06F9/5016G06F9/45558G06F9/485G06F9/5022G06F12/023G06F2009/45583G06F2209/5019G06F2209/542G06F2212/1044
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,133,601
App. No.
15/086,631
Granted
Nov 20, 2018
Kind
B2
Abstract

System and techniques for memory management are described herein. A request for an adjusted process-value for a process may be received. Here, the adjusted process-value may be used to compare resident processes to determine which resident process will be terminated in certain circumstances. In response to the request for the adjusted process-value, a launch-time weight for the process may be obtained. The launch-time weight may be combined with a process-value to create an adjusted process-value. The adjusted process-value may then be returned to the requestor.

Claims (47)

1. A component for memory management in a device, the component comprising:

an out-of-memory (OOM) adjustor to:

obtain a launch-time weight for a process, including the OOM adjustor to:

obtain a launch time for the process, the launch time being the time taken to launch the process; and

calculate the launch-time weight from the launch time, including division of a square root of the launch-time by a platform constant and then subtraction of a launch-time threshold; and

combine the launch-time weight with a process-value to create an adjusted process-value; and

a low-memory killer to:

receive a memory subsystem request to free memory;

identify a process from a plurality of resident processes based on the launch-time weight; and

terminate the process.

2. The component of claim 1 comprising an operating system (OS) event parser to:

observe OS event messages, the event messages including process start time and process start completion time; and

record the event messages in a history database, wherein the OOM adjustor is to:

calculate the launch time from the process start time and the process start completion time form the history database; and

record the launch time for the process in a fine-tuning table.

3. The component of claim 2 , wherein the event messages include a process start type of either warm launch or cold launch, and wherein to record the launch time includes the OS event parser to record the process start type.

4. The component of claim 3 , wherein to calculate the launch-time weight includes the OOM adjustor to modify the calculation by a value corresponding to the process start type.

5. The component of claim 1 , wherein the launch-time threshold is based on the time to resume a suspended application.

6. The component of claim 5 , wherein the launch-time threshold is an average of resume times for applications in the device.

7. The component of claim 1 , wherein to combine the launch-time weight with the process-value includes the OOM adjustor to subtract the launch-time weight from the process-value.

8. The component of claim 7 , wherein the weight is multiplied by a constant prior to being subtracted, the constant being a scaling factor based on the process-value.

9. A method for memory management in a system, the method comprising:

receiving a request for an adjusted process-value for a process, the adjusted process-value used to compare resident processes to determine which resident process will be terminated;

obtaining, in response to the request for the adjusted process-value, a launch-time weight for the process, wherein obtaining the launch-weight for the process includes:

obtaining a launch time for the process, the launch time being the time taken to launch the process; and

calculating the launch-time weight from the launch time by dividing a square root of the launch-time by a platform constant and then subtracting a launch-time threshold;

combining the launch-time weight with a process-value to create an adjusted process-value; and

returning the adjusted process-value to the requestor.

10. The method of claim 9 , wherein the launch-time threshold is based on the time to resume a suspended application.

11. The method of claim 9 , wherein combining the launch-time weight with the process-value includes subtracting the launch-time weight from the process-value.

12. At least one machine readable medium including instructions for memory management in a system, the instructions, when execute by a machine, cause the machine to:

receive a memory system request for a adjusted process-value for a process, the adjusted process-value used by the memory subsystem to compare resident processes to determine which resident process will be terminated;

obtain, in response to the request for the adjusted process-value, a launch-time weight for the process wherein to obtain the launch-weight for the process, the instructions cause the machine to:

obtain a launch time for the process, the launch time being the time taken to launch the process; and

calculate the launch-time weight from the launch time by dividing a square root of the launch-time by a platform constant and then subtracting a launch-time threshold;

combine the launch-time weight with a process-value to create an adjusted process-value; and

return the adjusted process-value to the memory subsystem.

13. The at least one machine readable medium of claim 12 , wherein the instructions to obtain the launch time for the process include instructions that cause the machine to:

observe operating system event messages, the event messages including process start time and process start completion time;

calculate the launch time from the process start time and the process start completion time; and

record the launch time for the process.

14. The at least one machine readable medium of claim 13 , wherein the event messages include a process start type of either warm launch or cold launch, and wherein the instructions to record the launch time include instructions that cause the machine to record the process start type.

15. The at least one machine readable medium of claim 14 , wherein the instructions to calculate the launch-time weight include instructions that cause the machine to modify the calculation by a value corresponding to the process start type.

16. The at least one machine readable medium of claim 12 , wherein the launch-time threshold is based on the time to resume a suspended application.

17. The at least one machine readable medium of claim 16 , wherein the launch-time threshold is an average of resume times for applications in the system.

18. The at least one machine readable medium of claim 12 , wherein the instructions to combine the launch-time weight with the process-value include instructions that cause the machine to subtract the launch-time weight from the process-value.

19. The at least one machine readable medium of claim 18 , wherein the weight is multiplied by a constant prior to being subtracted, the constant being a scaling factor based on the process-value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2018
From: APPARAO, PADMASHREE K.; ZHOU, ZHEN; CARR, THOMAS L.
To: INTEL CORPORATION
Reel/Frame 046802/0478 →
Continuity (1)
Related Publication 20170286171A1 · Oct 5, 2017
Cited By (2)
US 12,498,968 US 12,656,952