IP Library Granted Patent US 8,997,102
Granted Patent B2
US 8,997,102 · App. 11/144,453 · Granted Mar 31, 2015

Prioritization of processes for deactivating processes to reduce memory pressure condition

Inventors: William Pohl (Morgan Hill, CA); Walter J. Searle (Gilroy, CA); Chukwuma Valentine Akpuokwe (Sunnyvale, CA); Bradd William Szonye (San Jose, CA)
Assignee: Hewlett-Packard Development Company, L.P.
G06F9/485G06F9/4818G06F9/5016
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 8,997,102
App. No.
11/144,453
Granted
Mar 31, 2015
Kind
B2
Abstract

It is determined that a memory pressure condition exists which limits how many active processes are allowed. There is generated and stored of a set of values corresponding to parameters for each process where the parameters are related to priority factors assigned to the associated process. There is calculated a prioritization score for each process based on the corresponding set of values. There is determined a first active process with the lowest priority based on the prioritization scores. The first active process is deactivated to reduce the memory pressure condition.

Claims (51)

1. A method for setting priorities for deactivating and reactivating processes in a computing system, the method comprising the steps of:

determining that a memory pressure condition exists which limits how many active processes are allowed;

generating and storing a set of values for each process related to priority factors assigned to the associated process, wherein generate and storing the set of values includes generating and storing for each process at least a value that is proportional to a measure of parent-child descendent where the measure is a number of generates between the process and original start-up processes;

calculating a prioritization score for each process based on the corresponding set of values;

determining a first active process with lowest priority based on the prioritization scores; and

deactivating the first active process to reduce the memory pressure condition by transferring the first active process from a random access memory that contains active processes to a virtual memory storage location.

2. The method of claim 1 , wherein the generating and storing of the set of values comprises generating and storing for each process at least another value that is proportional to a length of time the process has been in its current active or deactivated state.

3. The method of claim 1 , wherein the generating and storing of the set of values comprises generating and storing for each process at least another value that is proportional to an amount of memory occupied by the process.

4. The method of claim 1 , wherein the step of calculating the prioritization score for each process further comprises the step of calculating further values based on applying weighting factors to said set of values, and using the further values to determine a prioritization score to be utilized.

5. The method of claim 1 , wherein generating and storing of the set of values comprises generating and storing for each processor at least another value that is based on an input set by a user, the method further comprising the steps of:

receiving more than one of said user inputs;

determining which of the user inputs will be used to provide a basis for deriving the at least another value.

6. The method of claim 1 , further comprising the steps of:

determining a deactivated process with highest priority based on the prioritization scores;

activating the deactivated process with the highest priority if said activating will not increase the memory pressure condition.

7. A computing apparatus, comprising:

a processor;

random access memory of a given size coupled to the processor adapted to store active processes;

the processor adapted to determine that a memory pressure condition exists which limits how many active processes are allowed;

the processor adapted to generate and causes to be stored a set of values for each process related to priority factors assigned to the associated process, wherein the processor generates and causes the storing for each process at least a value that is proportional to a measure of parent-child descendent where the measure is a number of generations between the process and original start-up processes;

the processor adapted to calculate a prioritization score for each process based on the corresponding set of values;

the processor adapted to identify a first active process with lowest priority based on the prioritization scores;

the processor adapted to deactivate the first active process to reduce the memory pressure condition;

the processor adapted to determine a deactivated process with highest priority based on the prioritization scores; and

the processor adapted to activate the deactivated process with the highest priority if said activating will not increase the memory pressure condition.

8. The computing apparatus of claim 7 , wherein the processor transfers the first active process from the random access memory that contains active processes to a virtual memory storage location.

9. The computing apparatus of claim 7 , wherein the processor generates and causes the storing for each process at least another value that is proportional to a length of time the process has been in its current active or deactivated state.

10. The computing apparatus of claim 7 , wherein the processor generates and causes the storing for each process at least another value that is proportional to an amount of memory occupied by the process.

11. The computing apparatus of claim 7 , wherein the processor calculates further values based on applied weighting factors to said values, and uses the further values to determine a prioritization score to be utilized.

12. The computing apparatus of claim 7 , wherein the processor generates and causes the storing for each process at least another value that is based on an input set by a user.

13. The computing apparatus of claim 12 , further comprising:

means for receiving more than one of said user inputs;

the processor adapted to determine which of the user inputs will be used to provide a basis for deriving the at least another value.

14. An article, comprising:

one or more non-transitory computer-readable media comprising:

instructions for determining that a memory pressure condition exists which limits how many active processes are allowed;

instructions for generating and storing a set of values for each process related to priority factors assigned to the associated process, wherein instructions for generating and storing the set of values for each process comprises instructions for generating and storing for each process at least a value that is proportional to a measure of parent-child descendent where the measure is a number of generations between the process and original start-up processes;

instructions for calculating a prioritization score for each process based on the corresponding set of values;

instructions for determining a first active process with lowest priority based on the scores; and

instructions for deactivating the first active process to reduce the memory pressure condition;

wherein the instructions for deactivating the first active process comprises instructions for transferring the first active process from a random access memory that contains active processes to a virtual memory storage location.

15. The article of claim 14 , wherein the instructions for generating and storing the set of values comprises instructions for generating and storing for each process at least another value that is proportional to length of time the process has been in its current active or deactivated state.

16. The article of claim 14 , wherein the instructions for the generating and storing the set of values comprises instructions for generating and storing for each process at least a value that is proportional to an amount of memory occupied by the process.

17. The article of claim 14 , wherein the instructions for calculating the prioritization score for each process further comprises the instructions for calculating further values based on applying weighting the factors to said set of values, and using the further values to determine a prioritization score to be utilized.

18. The article of claim 14 , wherein the instructions for generating and storing the set of values comprises instructions for generating and storing for each process at least another value that is based on an input set by a user.

19. The article of claim 18 , further comprising:

instructions for receiving more than one of said user inputs;

instructions for determining which of the user inputs will be used to provide a basis for deriving the at least another value.

20. The article of claim 14 , further comprising:

instructions for determining a deactivated process with the highest priority based on the prioritization scores;

instructions for activating the deactivated process with the highest priority if said activating will not increase the memory pressure condition.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 058897/0262 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2005
From: POHL, WILLIAM; SEARLE, WALTER J.; AKPUOKWE, CHUKWUMA VALENTINE; SZONYE, BRADD WILLIAM
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 016657/0228 →
Continuity (1)
Related Publication 20060277373A1 · Dec 7, 2006