IP Library Granted Patent US 11,966,787
Granted Patent B2
US 11,966,787 · App. 17/219,620 · Granted Apr 23, 2024

Dynamic process criticality scoring

Inventors: Raghavendra Satyanarayana Hebbalalu (Karnataka, IN); Dattatraya Kulkarni (Bangalore, IN); Srikanth Nalluri (Karnataka, IN); Partha Sarathi Barik (Bangalore, IN); Raja Sinha (Bangalore, IN); Anjan Kumar Nayak (Bangalore, IN)
Assignee: McAfee LLC
G06F9/505
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 11,966,787
App. No.
17/219,620
Granted
Apr 23, 2024
Kind
B2
Abstract

There is disclosed in one example a computer apparatus, including: a hardware platform including a central processor unit (CPU) and a memory; and instructions encoded within the memory to instruct the CPU to: enumerate a plurality of running processes, and associate resource demands with the running processes; predict a resource starvation condition for at least one process; rank the plurality of running processes according to a dynamic ranking algorithm, wherein the ranking algorithm includes user engagement as an input for ranking a process; and according to the ranking and a safeguard algorithm, deallocate resources from a process ranked lower than the at least one process and assign the deallocated resources to the at least one process to mitigate the predicted resource starvation condition.

Claims (35)

1. A computing apparatus, comprising:

an endpoint hardware platform comprising a central processor unit (CPU) circuit and a memory; and

instructions encoded within the memory to instruct the CPU circuit to:

enumerate a plurality of running user processes, and associate resource demands with the running user processes;

predict a resource starvation condition for a selected user process, selected from the running user processes;

rank the plurality of running user processes according to a multi-factor resource-wise process prioritization topology, wherein ranking comprises including device-local user interaction as an input for ranking the selected user process; and

according to the ranking and a safeguard algorithm, deallocate resources from a process ranked lower than the selected user process and assign the deallocated resources to the selected user process to mitigate the predicted resource starvation condition.

2. The computing apparatus of claim 1 , wherein the instructions are further to build a topologically-ordered process graph to use as an input to the multi-factor resource-wise process prioritization topology.

3. The computing apparatus of claim 2 , wherein the topologically-ordered process graph comprises a two-dimensional matrix of process priority and resource priority.

4. The computing apparatus of claim 1 , wherein user engagement is a function of user focus time.

5. The computing apparatus of claim 1 , wherein user engagement is a function of user interactions with a user interface.

6. The computing apparatus of claim 1 , wherein user engagement is a function of data streaming duration.

7. The computing apparatus of claim 1 , wherein user engagement is a function of a usage mode.

8. The computing apparatus of claim 7 , wherein the usage mode is selected from work, leisure, or kids.

9. The computing apparatus of claim 1 , wherein the multi-factor resource-wise process prioritization topology includes a static user-assigned ranking as an input.

10. The computing apparatus of claim 1 , wherein the multi-factor resource-wise process prioritization topology includes system criticality as an input.

11. The computing apparatus of claim 1 , wherein at least some of the plurality of running user processes have a pre-assigned priority.

12. The computing apparatus of claim 1 , wherein deallocating comprises deallocating resources from a process with a higher pre-assigned priority to a process with a lower pre-assigned priority or without a pre-assigned priority.

13. At least one tangible, non-transitory computer-readable storage medium having stored thereon executable instructions to:

enumerate, on an endpoint device, a plurality of running user processes having user-assigned static rankings;

identify a resource starvation condition for a selected process, selected from the running user processes;

dynamically rank the plurality of running user processes via a multi-factor resource-wise process prioritization topology that includes a user engagement score, wherein the user engagement score accounts for device-local user interaction with running user processes; and

apply a safeguard algorithm to shift resources to the selected process from a process ranked lower by the multi-factor resource-wise process prioritization topology.

14. The at least one tangible, non-transitory computer-readable storage medium of claim 13 , wherein identifying the resource starvation condition comprises examining a process's resource utilization over a window, and resource availability over a window, and predicting a starvation condition if a difference between a maximum usage and a minimum availability within the window is less than a threshold.

15. The at least one tangible, non-transitory computer-readable storage medium of claim 13 , wherein the plurality of running user processes have a pre-assigned rank selected from 0, 1, and 2.

16. The at least one tangible, non-transitory computer-readable storage medium of claim 13 , wherein the safeguard algorithm uses a minimum of 20% availability for a resource for a process with a pre-assigned rank of 0.

17. The at least one tangible, non-transitory computer-readable storage medium of claim 13 , wherein the safeguard algorithm uses a minimum of 15% availability for a resource for a process with a pre-assigned rank of 1.

18. The at least one tangible, non-transitory computer-readable storage medium of claim 13 , wherein the safeguard algorithm uses a minimum of 5% availability for a resource for a process with a pre-assigned rank of 2.

19. A method of providing process management for an endpoint computing system, comprising:

receiving static priority assignments for a plurality of n user processes of the endpoint, wherein n is an integer greater than 1;

predicting that a selected process from among the plurality of user processes will encounter a resource shortage;

dynamically ranking the plurality of user processes according to a multi-factor resource-wise process prioritization topology, wherein the multi-factor resource-wise process prioritization topology accounts for device-local user interaction with user processes;

selecting a lower-ranked process according to the multi-factor resource-wise process prioritization topology; and

shifting a resource allocation from the lower-ranked process to the selected process.

20. The method of claim 19 , wherein 2≤n≤10.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2024
From: HEBBALALU, RAGHAVENDRA SATYANARAYANA; KULKARNI, DATTATRAYA; NALLURI, SRIKANTH; BARIK, PARTHA SARATHI; SINHA, RAJA; NAYAK, ANJAN KUMAR
To: MCAFEE, LLC
Reel/Frame 066071/0783 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →