Claims
- 1. A method of allocating a resource from a set of resources to a requestor comprising the steps of:
receiving a request for the resource from the requester; checking a resource consumption of the requestor; checking a resource availability; comparing the resource consumption of the requestor with a fair share of resources for the requestor; granting the request for the resource if the resource availability is not zero and the resource consumption of the requestor is less than the fair share of resources for the requester; and granting the request for the resource if the resource availability is greater than a safety buffer and the resource consumption of the requestor is greater than the fair share of resources for the requester.
- 2. The method of claim 1 wherein the fair share of resources for the requestor is determined by dividing the set of resources among a group of requesters.
- 3. The method of claim 2 wherein the dividing the set of resources among the group of requesters comprises dividing the set of resources equally among all of the requesters in the group of requestors.
- 4. The method of claim 2 wherein the dividing the set of resources among the group of requesters comprises the steps of:
determining a useable set of resources by subtracting the safety buffer from the set of resources; and dividing the useable set of resources by a known number of requestors from the group.
- 5. The method of claim 1 wherein the safety buffer is determined by reference to a fraction of all of the resources.
- 6. The method of claim 1 wherein the safety buffer is determined by reference to a specific amount of resources.
- 7. The method of claim 1 wherein the resource is a unit of memory.
- 8. The method of claim 1 wherein the requestor is a networking module.
- 9. The method of claim 8 wherein the networking module is a wireless network interface.
- 10. A computer-readable medium having computer-executable instructions for allocating a resource from a set of resources to a requestor, the computer-executable instructions performing steps comprising:
receiving a request for the resource from the requester; checking a resource consumption of the requestor; checking a resource availability; comparing the resource consumption of the requester with a fair share of resources for the requester; granting the request for the resource if the resource availability is not zero and the resource consumption of the requester is less than the fair share of resources for the requestor; and granting the request for the resource if the resource availability is greater than a safety buffer and the resource consumption of the requester is greater than the fair share of resources for the requester.
- 11. The computer-readable medium of claim 10 wherein the fair share of resources for the requestor is determined by dividing the set of resources among a group of requesters.
- 12. The computer-readable medium of claim 11 wherein the dividing the set of resources among the group of requesters comprises dividing the set of resources equally among all of the requestors in the group of requesters.
- 13. The computer-readable medium of claim 11 wherein the dividing the set of resources among the group of requesters comprises the steps of:
determining a useable set of resources by subtracting the safety buffer from the set of resources; and dividing the useable set of resources by a known number of requestors from the group.
- 14. The computer-readable medium of claim 10 wherein the safety buffer is determined by reference to a fraction of all of the resources.
- 15. The computer-readable medium of claim 10 wherein the safety buffer is determined by reference to a specific amount of resources.
- 16. The computer-readable medium of claim 10 wherein the resource is a unit of memory.
- 17. The computer-readable medium of claim 10 wherein the requestor is a networking module.
- 18. The computer-readable medium of claim 17 wherein the networking module is a wireless network interface.
- 19. A computing device comprising:
a component requesting a resource; a resource management module; and a set of resources; wherein the resource management module will grant the resource to the component if there is an unused resource in the set of resources and the component is using less than a fair share of resources for the component; and wherein the resource management module will grant the resource to the component if a set of unused resources in the set of resources is greater than a safety buffer and the component is using more than the fair share of resources for the component.
- 20. The computing device of claim 19 wherein the fair share of resources for the component is determined by dividing the set of resources among a group of components.
- 21. The computing device of claim 20 wherein the dividing the set of resources among the group of components comprises dividing the set of resources equally among all of the components in the group of components.
- 22. The computing device of claim 20 wherein the dividing the set of resources among the group of components comprises the steps of:
determining a useable set of resources by subtracting the safety buffer from the set of resources; and dividing the useable set of resources by a known number of components from the group.
- 23. The computing device of claim 19 wherein the safety buffer is determined by reference to a fraction of the set of resources.
- 24. The computing device of claim 19 wherein the safety buffer is determined by reference to a specific amount of resources.
- 25. The computing device of claim 19 wherein the resource is a unit of memory.
- 26. The computing device of claim 19 wherein the component is a network interface card driver and the resource management module is a dynamic memory allocation device.
- 27. The computing device of claim 26 wherein the network interface card driver is a wireless network interface card driver.
- 28. A method of ensuring a fair allocation of a set of resources by reserving a safety buffer of resources, the method comprising the steps of:
maintaining the safety buffer of resources; and granting a request for a resource from the safety buffer of resources if a requester is currently assigned less than a fair share of resources for the requestor and the safety buffer of resources is not empty.
- 29. The method of claim 28 wherein the maintaining the safety buffer of resources includes granting the request for a resource from the set of resources if the set of resources is larger than the safety buffer of resources.
- 30. The method of claim 28 wherein the fair share of resources for the requestor is determined by dividing the set of resources among a group of requesters.
- 31. The method of claim 30 wherein the dividing the set of resources among the group of requestors comprises dividing the set of resources equally among all of the requestors in the group of requesters.
- 32. The method of claim 30 wherein the dividing the set of resources among the group of requestors comprises the steps of:
determining a useable set of resources by subtracting the safety buffer from the set of resources; and dividing the useable set of resources by a known number of requestors from the group.
- 33. The method of claim 28 wherein the safety buffer of resources is determined by reference to a fraction of the set of the resources.
- 34. The method of claim 28 wherein the safety buffer of resources is determined by reference to a specific amount of resources.
- 35. The method of claim 28 wherein the resource is a unit of memory.
- 36. The method of claim 28 wherein the requester is a networking module.
- 37. The method of claim 36 wherein the networking module is a wireless network interface.
- 38. A computer-readable medium having computer-executable instructions for ensuring a fair allocation of a set of resources by reserving a safety buffer of resources, the computer-executable instructions performing steps comprising:
maintaining the safety buffer of resources; and granting a request for a resource from the safety buffer of resources if a requestor is currently assigned less than a fair share of resources for the requester and the safety buffer of resources is not empty.
- 39. The computer-readable medium of claim 38 wherein the maintaining the safety buffer of resources includes granting the request for a resource from the set of resources if the set of resources is larger than the safety buffer of resources.
- 40. The computer-readable medium of claim 38 wherein the fair share of resources for the requestor is determined by dividing the set of resources among a group of requestors.
- 41. The computer-readable medium of claim 40 wherein the dividing the set of resources among the group of requestors comprises dividing the set of resources equally among all of the requestors in the group of requesters.
- 42. The computer-readable medium of claim 40 wherein the dividing the set of resources among the group of requesters comprises the steps of:
determining a useable set of resources by subtracting the safety buffer from the set of resources; and dividing the useable set of resources by a known number of requesters from the group.
- 43. The computer-readable medium of claim 38 wherein the safety buffer of resources is determined by reference to a fraction of the set of the resources.
- 44. The computer-readable medium of claim 38 wherein the safety buffer of resources is determined by reference to a specific amount of resources.
- 45. The computer-readable medium of claim 38 wherein the resource is a unit of memory.
- 46. The computer-readable medium of claim 38 wherein the requestor is a networking module.
- 47. The computer-readable medium of claim 36 wherein the networking module is a wireless network interface.
RELATED APPLICATION
[0001] This application is related to, and claims priority from, U.S. Provisional Application No. 06/244,426, entitled “Dynamic Resource Allocation Scheme”, and filed on Oct. 30, 2000.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60244426 |
Oct 2000 |
US |