Systems and methods for improving performance of computer systems
First Claim
Patent Images
1. A method of prioritizing the execution of applications by a computer, the method comprising:
- maintaining a remote database for computer applications requiring computing resources, the computer applications being associated with processes, the remote database being merged with at least one other database obtained from at least one other user computing device as a centralized execution priority database on a server, a common execution priority database being derivable from the centralized execution priority database based on the centralized execution priority database and distributable to at least one other user computing device to provide an initial execution priority database for the at least one other user computing device;
programmatically monitoring and determining a user-specific usage pattern for each one of the computer applications, each of the user-specific usage patterns comprising at least one of;
time of day when the computer application is used, duration for which the computer application is used, and usage frequency for the computer application during a specified time period;
assigning, based on the determined user-specific usage patterns, an execution priority to (i) each one of the computer applications and (ii) each of the processes associated with each one of the computer applications, the execution priority assigned to at least one of the processes being higher than the execution priority assigned to the computer application with which it is associated, based on memory operations associated with the at least one process;
updating the remote database with the assigned execution priorities;
executing at least one of the computer applications in accordance with the assigned execution priorities;
reassigning execution priorities to the at least one process and the computer application with which it is associated based on a time-based aspect of the determined user-specific usage patterns; and
updating the remote database with the reassigned execution priorities.
13 Assignments
0 Petitions
Accused Products
Abstract
Priorities of an application and/or processes associated with an application executing on a computer is determined according to user-specific usage patterns of the application and stored for subsequent use, analysis and distribution.
80 Citations
21 Claims
-
1. A method of prioritizing the execution of applications by a computer, the method comprising:
-
maintaining a remote database for computer applications requiring computing resources, the computer applications being associated with processes, the remote database being merged with at least one other database obtained from at least one other user computing device as a centralized execution priority database on a server, a common execution priority database being derivable from the centralized execution priority database based on the centralized execution priority database and distributable to at least one other user computing device to provide an initial execution priority database for the at least one other user computing device; programmatically monitoring and determining a user-specific usage pattern for each one of the computer applications, each of the user-specific usage patterns comprising at least one of;
time of day when the computer application is used, duration for which the computer application is used, and usage frequency for the computer application during a specified time period;assigning, based on the determined user-specific usage patterns, an execution priority to (i) each one of the computer applications and (ii) each of the processes associated with each one of the computer applications, the execution priority assigned to at least one of the processes being higher than the execution priority assigned to the computer application with which it is associated, based on memory operations associated with the at least one process; updating the remote database with the assigned execution priorities; executing at least one of the computer applications in accordance with the assigned execution priorities; reassigning execution priorities to the at least one process and the computer application with which it is associated based on a time-based aspect of the determined user-specific usage patterns; and updating the remote database with the reassigned execution priorities. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for prioritizing the execution of processes by a computer, the system comprising:
-
a processor; a monitoring module configured to programmatically monitor and determine, using the processor, a user-specific usage pattern for each one of a plurality of computer applications, the computer applications being associated with processes, each of the user-specific usage patterns comprising at least one of;
time of day when the computer application is used, duration for which the computer application is used, and usage frequency for the computer application during a specified time period;a prioritization module configured to;
(A) assign, based on the user-specific usage patterns, an execution priority to (i) each one of the computer applications and (ii) each of the processes associated with each one of the computer applications, the execution priority assigned to at least one of the processes being higher than the execution priority assigned to the computer application with which it is associated, based on memory operations associated with the at least one process, and (B) reassign execution priorities to the at least one process and the computer application with which it is associated based on a time-based aspect of the determined user-specific usage patterns; anda data storage module configured to store, in a database, identities of the computer applications, the assigned execution priorities, and the reassigned execution priorities, the database being mergable, on a server, with at least one other database obtained from at least one other user computing device as a centralized execution priority database, a common execution priority database being derivable from the centralized execution priority database based on the centralized execution priority database and distributable to at least one other user computing device to provide an initial execution priority database for the at least one other user computing device. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A centralized application-performance management system, the system comprising:
-
a processor; a communications server configured to receive a plurality of databases, each of the databases being locally-compiled at a respective local machine associated with at least one user, and comprising identities of computer applications, corresponding user-specific usage patterns, and execution priorities that are based at least in part on the user-specific usage patterns, the computer applications being associated with processes, each of the user-specific usage patterns comprising at least one of;
time of day when the corresponding computer application is used, duration for which the corresponding computer application is used, and usage frequency for the corresponding computer application during a specified time period;an aggregation module configured to aggregate, using the processor, at least one of the identities, the user-specific usage patterns, and the execution priorities from the locally-compiled databases; a central data storage module configured to store an aggregated database generated based on the aggregation; and an analysis engine configured to; (i) analyze the aggregated database to determine computer application usage patterns among the local machines; (ii) assign, based on the determined usage patterns, an execution priority to each one of the computer applications and each of the processes associated with each one of the computer applications, the execution priority assigned to at least one of the processes being higher than the execution priority assigned to the computer application with which it is associated, based on memory operations associated with the at least one process; (iii) reassign execution priorities to the at least one process and the computer application with which it is associated based on a time-based aspect of the determined user-specific usage patterns; and (iv) compile a model application usage priority database based at least in part on the analysis of the aggregated database, the communications server being further configured to distribute the model application usage priority database to at least one local machine. - View Dependent Claims (21)
-
Specification