IP Library Granted Patent US 10,860,369
Granted Patent B2
US 10,860,369 · App. 15/403,967 · Granted Dec 8, 2020

Self-adjusting system for prioritizing computer applications

Inventors: Jun Y. Du (Ningbo, CN); Luo Xu Min (Beijing, CN); Guang Shi (Beijing, CN); Rui Shi (Beijing, CN); Wei Lin C W Wu (Beijing, CN); Jian C D L Zhang (Beijing, CN)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/4881G06F11/302G06F11/3013G06F11/3409G06F11/3442G06F2209/482
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,860,369
App. No.
15/403,967
Granted
Dec 8, 2020
Kind
B2
Abstract

Prioritizing resource allocation to computer applications which includes: grouping the computer applications into groups according to an initial criteria; modifying the groups according to one or more criteria used to identify active computer applications; analyzing the groups to prioritize the groups in order of the active time of the computer applications in the groups; analyzing the computer applications in the groups to prioritize the computer applications in the groups in order of the active time of the computer applications in the groups; setting the highest priority for the computer applications that either (1) have high frequency of use, or (1) are active now; and prioritizing the computer applications according to the priority setting.

Claims (73)

1. A computer-implemented method of prioritizing resource allocation to a plurality of computer applications comprising:

grouping the computer applications into groups according to an initial, predefined criteria, wherein each of the groups comprises two or more computer applications;

modifying the groups according to one or more criteria used to identify foreground computer applications;

for each respective application:

determining a foreground time for the respective application;

determining a background time for the respective application; and

calculating a total run time by adding the foreground time and the background time for the respective application;

for each respective group:

calculating a total foreground time by adding the determined foreground times associated with the applications of the group;

calculating a group total run-time by adding the calculated total run-times associated with the applications of the group; and

calculating an average total run time by dividing the group total run time by the number of applications of the group;

analyzing the groups to prioritize the groups in order of the total foreground time of the groups;

subsequent to the analyzing, for each prioritized group further ordering the computer applications in its respective group by prioritizing the computer applications in the groups in order of the foreground times of the computer applications in the groups;

setting the highest priority for the computer applications that have a highest amount of foreground time over a predetermined time interval as measured by the total run time of the computer applications and a longest foreground time over the predetermined time interval as measured by the total run time of the computer applications

prioritizing the computer applications, according to the priority setting, while analyzing the total foreground time of all of the computer applications in the groups and analyzing the foreground time of the computer applications in the groups;

dynamically adjusting the priority of the computer applications, according to the priority setting as determined in the prioritizing step;

dynamically adjusting scheduling of the computer applications, according to the dynamically adjusted priority of the computer applications; and

running the computer applications according to the dynamically adjusted scheduling of the computer applications.

2. The computer-implemented method of claim 1 , wherein analyzing the groups comprises analyzing a respective history of each of the groups and a respective history of each of the computer applications at startup of an operating system, to prioritize the groups in order of a foreground time of the computer applications in the groups.

3. The computer-implemented method of claim 1 , wherein analyzing the groups comprises analyzing a respective history of each of the groups and a respective history of each of the computer applications at runtime of the computer applications, to prioritize the groups in order of a foreground time of the computer applications in the groups.

4. The computer-implemented method of claim 1 , wherein when the computer applications in the step of setting the highest priority do not meet the highest amount of foreground time over a predetermined time interval as measured by the total run time of the computer applications and the longest foreground time over the predetermined time interval as measured by the total run time of the computer applications further analyzing the groups and the computer applications in the group according to a default policy, and when the computer applications meet the condition of the default policy, setting the priority of the computer applications to a higher priority but less than the highest priority.

5. The computer-implemented method of claim 4 , wherein when the computer applications do not meet the condition of the default policy, setting the priority of the computer applications to a normal priority but less than the higher priority and the highest priority.

6. The computer-implemented method of claim 5 , wherein prioritizing the computer applications comprises scheduling computer resources to allocate the computer application according to the priority of the computer application in the order of highest priority first, higher priority second and normal priority third.

7. The computer-implemented method of claim 6 , wherein the computer resources comprise a central processing unit (CPU), a memory, a disk and network resources.

8. The computer-implemented method of claim 1 , wherein prioritizing the computer applications is repeated at least once.

9. A computer program product for prioritizing resource allocation to a plurality of computer applications, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising:

grouping the computer applications into groups according to an initial, predefined criteria, wherein each of the groups comprises two or more computer applications;

modifying the groups according to one or more criteria used to identify foreground computer applications;

for each respective application:

determining a foreground time for the respective application;

determining a background time for the respective application; and

calculating a total run time by adding the foreground time and the background time for the respective application;

for each respective group:

calculating a total foreground time by adding the determined foreground times associated with the applications of the group;

calculating a group total run-time by adding the calculated total run-times associated with the applications of the group; and

calculating an average total run time by dividing the group total run time by the number of applications of the group;

analyzing the groups to prioritize the groups in order of the total foreground time of the groups;

subsequent to the analyzing, for each prioritized group further ordering the computer applications in its respective group by prioritizing the computer applications in the groups in order of the foreground times of the computer applications in the groups;

setting the highest priority for the computer applications that have a highest amount of foreground time over a predetermined time interval as measured by the total run time of the computer applications and a longest foreground time over the predetermined time interval as measured by the total run time of the computer applications;

prioritizing the computer applications, according to the priority setting, while analyzing the total foreground time of all of the computer applications in the groups and analyzing the foreground time of the computer applications in the groups;

dynamically adjusting the priority of the computer applications, according to the priority setting as determined in the prioritizing step;

dynamically adjusting scheduling of the computer applications, according to the dynamically adjusted priority of the computer applications; and

running the computer applications according to the dynamically adjusted scheduling of the computer applications.

10. The computer program product of claim 9 , wherein analyzing the groups comprises analyzing a respective history of each of the groups and a respective history of each of the computer applications at startup of an operating system, to prioritize the groups in order of a foreground time of the computer applications in the groups.

11. The computer program product of claim 9 , wherein analyzing the groups comprises analyzing a respective history of each of the groups and a respective history of each of the computer applications at runtime of the computer applications, to prioritize the groups in order of a foreground time of the computer applications in the groups.

12. The computer program product of claim 9 , wherein when the computer applications in the step of setting the highest priority do not meet the highest amount of foreground time over a predetermined time interval as measured by the total run time of the computer applications and the longest foreground time over the predetermined time interval as measured by the total run time of the computer applications, further analyzing the groups and the computer applications in the group according to a default policy and when the computer applications meet the condition of the default policy, setting the priority of the computer applications to a higher priority but less than the highest priority.

13. The computer program product of claim 12 , wherein when the computer applications do not meet the condition of the default policy, setting the priority of the computer applications to a normal priority but less than the higher priority and the highest priority.

14. The computer program product of claim 13 , wherein prioritizing the computer applications comprises scheduling computer resources to allocate the computer application according to the priority of the computer application in the order of highest priority first, higher priority second and normal priority third.

15. The computer program product of claim 14 , wherein the computer resources comprise a central processing unit (CPU), a memory, a disk and network resources.

16. The computer program product of claim 9 , wherein prioritizing the computer applications is repeated at least once.

17. A system for prioritizing resource allocation to computer applications comprising:

a non-transitory storage medium that stores instructions; and

a processor that executes the instructions to:

group the computer applications into groups according to an initial, predefined criteria, wherein each of the groups comprises two or more computer applications;

modify the groups according to one or more criteria used to identify foreground computer applications;

for each respective application:

determine a foreground time for the respective application;

determine a background time for the respective application; and

calculate a total run time by adding the foreground time and the background time for the respective application;

for each respective group:

calculate a total foreground time by adding the determined foreground times associated with the applications of the group;

calculate a group total run-time by adding the calculated total run-times associated with the applications of the group; and

calculate an average total run time by dividing the group total run time by the number of applications of the group;

analyze the groups to prioritize the groups in order of the total foreground time of the groups;

subsequent to the analyzing, for each prioritized group further ordering the computer applications in its respective group by prioritizing the computer applications in the groups in order of the foreground times of the computer applications in the groups;

set the highest priority for the computer applications that have a highest amount of foreground time over a predetermined time interval as measured by the total run time of the computer applications and a longest foreground time over the predetermined time interval as measured by the total run time of the computer applications;

prioritize the computer applications, according to the priority setting, while analyzing the total foreground time of all of the computer applications in the groups and analyzing the foreground time of the computer applications in the groups;

dynamically adjust the priority of the computer applications, according to the priority setting as determined in the prioritizing step;

dynamically adjust scheduling of the computer applications, according to the dynamically adjusted priority of the computer applications; and

run the computer applications according to the dynamically adjusted scheduling of the computer applications.

18. The system of claim 17 , wherein when the computer applications in set the highest priority do not meet the highest amount of foreground time over a predetermined time interval as measured by the total run time of the computer applications and the longest foreground time over the predetermined time interval as measured by the total run time of the computer applications, further analyze the groups and the computer applications in the group according to a default policy and when the computer applications meet the condition of the default policy, set the priority of the computer applications to a higher priority but less than the highest priority.

19. The system of claim 18 , wherein when the computer applications do not meet the condition of the default policy, set the priority of the computer applications to a normal priority but less than the higher priority and the highest priority.

20. The system of claim 19 , wherein a step to prioritize the computer applications comprises a further step to schedule computer resources to allocate the computer application according to the priority of the computer application in the order of highest priority first, higher priority second and normal priority third.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2017
From: DU, JUN Y.; MIN, LUO XU; SHI, GUANG; SHI, RUI; WU, WEI LIN CW; ZHANG, JIAN CDL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040950/0393 →
Continuity (1)
Related Publication 20180196695A1 · Jul 12, 2018
Cited By (1)
US 12,561,447