Providing optimal number of threads to applications performing multi-tasking using threads
First Claim
1. A method of supporting an application in a system, said method comprising:
- maintaining a historical data representing a number of threads required to support execution of said application at different prior time instances;
determining an optimum number of threads to be provided in a near future based on said historical data;
providing said optimum number of threads at a present time to said application in said system;
receiving a plurality of service requests after said providing;
placing a plurality of tasks in a task queue, wherein said plurality of tasks are required to be executed to process said plurality of service requests, wherein each of said threads is designed to examine said task queue and then select and execute any of the pending tasks in said task queue; and
enabling said application to execute said plurality of tasks using said optimum number of threads,whereby said optimum number of threads are provided to said application before said plurality of service requests are received by said system.
1 Assignment
0 Petitions
Accused Products
Abstract
In an environment in which applications perform multi-tasking by using threads, the optimum number of threads to be provided to an application is determined based on historical data. Due to the use of the historical data, optimum number of threads can be accurately determined, leading to better response times for service requests, without creating unneeded overhead on system processing the service requests. In one embodiment, various status information (of potentially several prior weeks) such as number of tasks received and pending, system resources status (e.g. idle processor time and aggregate memory usage in the system), is maintained. In addition, a table may be maintained to indicate the optimum number of threads for a given combination of status information values. Thus, based on the expected status scenario, the optimum number of threads can be determined and provided at various points of time.
-
Citations
16 Claims
-
1. A method of supporting an application in a system, said method comprising:
-
maintaining a historical data representing a number of threads required to support execution of said application at different prior time instances; determining an optimum number of threads to be provided in a near future based on said historical data; providing said optimum number of threads at a present time to said application in said system; receiving a plurality of service requests after said providing; placing a plurality of tasks in a task queue, wherein said plurality of tasks are required to be executed to process said plurality of service requests, wherein each of said threads is designed to examine said task queue and then select and execute any of the pending tasks in said task queue; and enabling said application to execute said plurality of tasks using said optimum number of threads, whereby said optimum number of threads are provided to said application before said plurality of service requests are received by said system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer readable medium storing one or more sequences of instructions for causing a system to support an application, wherein execution of said one or more sequences of instructions by one or more processors contained in said system causes said system to perform the actions of:
-
maintaining a historical data representing a number of threads required to support execution of said application at different prior time instances; determining an optimum number of threads to be provided in a near future based on said historical data; providing said optimum number of threads at a present time to said application in said system; receiving a plurality of service requests after said providing; placing a plurality of tasks in a task queue, wherein said plurality of tasks are required to be executed to process said plurality of service requests, wherein each of said threads is designed to examine said task queue and then select and execute any of the pending tasks in said task queue; and enabling said application to execute said plurality of tasks using said optimum number of threads, whereby said optimum number of threads are provided to said application before said plurality of service requests are received by said system. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A digital processing system:
-
a random access memory (RAM); a processor; a computer readable medium to store one or more instructions which are designed to be retrieved into said RAM and to be executed by said processor to perform the actions of; maintaining a historical data representing a number of threads required to support execution of said application at different prior time instances; determining an optimum number of threads to be provided in a near future based on said historical data; providing said optimum number of threads at a present time to said application in said system; receiving a plurality of service requests after said providing; placing a plurality of tasks in a task queue, wherein said plurality of tasks are required to be executed to process said plurality of service requests, wherein each of said threads is designed to examine said task queue and then select and execute any of the pending tasks in said task queue; and enabling said application to execute said plurality of tasks using said optimum number of threads, whereby said optimum number of threads are provided to said application before said plurality of service requests are received by said digital processing system.
-
Specification