Reducing latencies in computing systems using probabilistic and/or decision-theoretic reasoning under scarce memory resources
First Claim
Patent Images
1. A system, comprising:
- a memory component for utilization by system processes;
a learning and reasoning component, implemented by one or more processors configured with executable instructions, to provide a model that predicts a next launch of a system process and to provide a cost-benefit analysis of pre-fetching data into the memory component and for retaining data already in the memory component, with the cost-benefit analysis based in part on a first rate at which cost is calculated before a threshold time, and a second rate at which cost is calculated after the threshold time, the first rate being less than the second rate; and
a management component that manages the memory component to reduce latency according to input from the learning and reasoning component, the input including;
system processes sorted in a priority order, the priority order based on a benefit of a system process divided by a cost of adding that system process to the memory component; and
a single system process, having a benefit greater than all other system processes and sized to fit into the memory component if it were alone in the memory component;
the management component configured to select between a cost-benefit value of the single system process and a portion of the system processes sorted in the priority order, the portion including system processes having highest cost-benefit values and limited to as many system processes as will fit into the memory component.
2 Assignments
0 Petitions
Accused Products
Abstract
Architecture that employs probabilistic and/or decision-theoretic model(s) of application usage to predict application use and in view of bounded or limited-availability memory. The model(s) is applied with cost-benefit analysis to guide memory management in an operating system, in particular, for both decisions about prefetching and memory retention versus deletion or “paging out” of memory of lower priority items, to free up space for higher value items. Contextual information is employed in addition to computer action monitoring for predicting next applications to be launched. Prefetching is optimized so as to minimize user perceived latencies.
-
Citations
19 Claims
-
1. A system, comprising:
-
a memory component for utilization by system processes; a learning and reasoning component, implemented by one or more processors configured with executable instructions, to provide a model that predicts a next launch of a system process and to provide a cost-benefit analysis of pre-fetching data into the memory component and for retaining data already in the memory component, with the cost-benefit analysis based in part on a first rate at which cost is calculated before a threshold time, and a second rate at which cost is calculated after the threshold time, the first rate being less than the second rate; and a management component that manages the memory component to reduce latency according to input from the learning and reasoning component, the input including; system processes sorted in a priority order, the priority order based on a benefit of a system process divided by a cost of adding that system process to the memory component; and a single system process, having a benefit greater than all other system processes and sized to fit into the memory component if it were alone in the memory component; the management component configured to select between a cost-benefit value of the single system process and a portion of the system processes sorted in the priority order, the portion including system processes having highest cost-benefit values and limited to as many system processes as will fit into the memory component. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-implemented method of managing system resources, comprising:
-
receiving access to a memory component of a device for utilization by device processes; processing a model, the model predicting execution of the device processes; performing, by one or more processors configured with executable instructions, a cost-benefit analysis of the device processes, with a cost in the cost-benefit analysis based in part on latency, the cost-benefit analysis using a latency period to calculate a cost, the cost-benefit analysis changing after a threshold period of time such that the cost-benefit analysis assigns a lesser cost to units of time before the threshold period and a greater cost to same duration units of time after the threshold period; sorting the device processes into a priority order based on the cost-benefit analysis; identifying a single device process having a benefit greater than all other device processes and sized to fit into the memory component if it were alone in the memory component; selecting between a cost-benefit value of the single device process and a portion of the device processes sorted in the priority order, the portion including device processes having highest cost-benefit values and limited to as many device processes as will fit into the memory component; and using the selection between the single device process and the portion of the device processes to make decisions to pre-fetch and retain data in the memory component to reduce latency associated with the device processes. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-implemented method of managing resources, comprising:
-
under control of one or more processors configured with executable instructions, determining available memory in a computer for processing programs and data; developing and processing models for predicting an application launch, the models including a Markov model that processes a last n steps associated with system processes; looking back n steps, where n is a variable related to the available device memory and is greater than zero; accessing and processing context data; analyzing sequences of n applications and context data using the models, the context data including an amount of time a user has been logged into the computer, an amount of time a returning user has been away from the computer and an amount of time a user has been active within each of the n applications; predicting a next application launch based in part on analysis and context data, the predicting managing processing of the programs and data based on the available memory to reduce latency associated with the programs and data; sorting resources into a priority order based on the cost-benefit analysis; identifying a resource having benefit greater than all other resources and sized to fit into the available memory if it were alone in the available memory; selecting between a cost-benefit value of the single resource and a portion of the resources sorted in the priority order, the portion including resources having highest cost-benefit values and limited to as many resources as will fit into the memory component; pre-fetching resources according to the prediction of the next application launch and the selection between the cost-benefit value of the largest resource and the sum of the cost-benefit values of the portion of the resources; and updating the models for predicting application and data actions.
-
Specification