Method of maximizing servicing capability of large numbers of I/O descriptors
AssigneeHewlett-Packard Development Company, L.P.
InventorCharles J. Courey, Jr.
Life of this patent
Estimating the term…
Abstract
The present invention comprises an efficient and portable method and algorithm module for servicing large numbers of IO descriptors which may interface to a large network environment or to a large number of IO devices and services. The method and algorithm module queries those descriptors that are most likely to have activity, but also reliably queries all descriptors over time, and dynamically adjusts the frequency of queries to maintain maximum efficiency as conditions change. It also queries all descriptors within a reasonable time, and has minimal overhead and uses standard system interfaces.
Claims13
A method of efficiently querying and processing individual descriptors of a group of descriptors by a processing means operating with a large set of devices or processes, said method comprising the steps of:
- querying said plurality of descriptors and processing said descriptors that have activity;
- assigning individual descriptors to a predetermined priority level of a hierarchical set of priority levels that are proportional to the amount of activity that individual descriptors are demonstrating;
- successively querying said individual descriptors at various intervals that vary in accordance with the amount of activity demonstrated by active descriptors and the assigned priority level of said individual descriptors by executing a driver loop which queries a plurality of descriptors of said predetermined sized group of descriptors and processes the descriptors that have activity, said plurality of descriptors including those descriptors which are in the highest priority level;
- changing the priority level of individual descriptors when the amount of activity of said individual descriptors changes from that which is expected in a particular level, wherein said priority levels vary from higher priority levels to lower priority levels, said higher priority levels having a higher amount of activity, the frequency of querying being higher for higher priority levels.
A method of efficiently querying and processing individual descriptors of a group of descriptors by a processing means operating with a large set of devices or processes, said method comprising the steps of:
- querying said plurality of descriptors and processing said descriptors that have activity;
- assigning individual descriptors to a predetermined priority level of a hierarchical set of priority levels that are proportional to the amount of activity that individual descriptors are demonstrating;
- successively querying said individual descriptors at various intervals that vary in accordance with the amount of activity demonstrated by active descriptors and the assigned priority level of said individual descriptors;
- changing the priority level of individual descriptors when the amount of activity of said individual descriptors changes from that which is expected in a particular level, wherein said priority levels vary from higher priority levels to lower priority levels, said higher priority levels having a higher amount of activity, the frequency of querying being higher for higher priority levels
- wherein each descriptor of said predetermined sized group of descriptors is queried during multiple successive executions of a driver loop which queries a plurality of descriptors of said predetermined sized group of descriptors and processes the descriptors that have activity, each descriptor being queried at an interval n that varies between 1 and N, where n represents the number of executions of said driver loop that are required to query an individual descriptor and N represents a large number of iterations of executions of said driver loop and 1 represents every execution of said driver loop.
A method of querying and processing individual descriptors of a group of descriptors by a processing means operating with a large set of devices or processes, said method comprising the steps of:
- iteratively querying said plurality of descriptors by executing a driver loop which queries a plurality of descriptors of said predetermined sized group of descriptors and processing said descriptors, including those descriptors which are in the highest priority level, that have activity a sufficient number of times to determine the level of activity of individual descriptors;
- grouping individual descriptors in predetermined priority levels in a hierarchical set of priority levels based upon the amount of activity that is occurring for each individual descriptor, wherein said priority levels vary from higher priority levels to lower priority levels, said higher priority levels having a higher amount of activity, the time duration between successive queries being shorter for higher priority levels;
- changing the priority level of individual descriptors during successive querys when the amount of activity of said individual descriptors changes from that which is expected at a particular level.
Dependencies are inferred from the claim text.