Legal claims defining the scope of protection, as filed with the USPTO.
1. A resource manager for managing a resource, wherein the resource executes executing sessions, wherein the resource receives an arriving session, wherein the executing sessions have corresponding QoS's, wherein the arriving session has a QoS, and wherein the resource manager comprises: QoS shrinking means for shrinking the QoS's of the executing sessions and the QoS of the arriving session in order to execute the arriving session; preempting means for preempting, as necessary, the executing sessions; and, QoS expanding means for expanding the QoS's of the executing sessions.
2. The resource manager of claim 1 wherein the executing sessions have corresponding criticality levels, wherein the arriving session has a criticality level, and wherein the preempting means preempts, as necessary, the executing sessions which have a criticality level that is lower than the criticality level of the arriving session.
3. The resource manager of claim 1 wherein the preempting means includes determining means for determining a schedulable criticality level from among the executing sessions.
4. The resource manager of claim 3 wherein the QoS expanding means expands the QoS of each session to a maximum QoS supportable by the resource.
5. The resource manager of claim 3 wherein the determining means implements a binary search procedure to determine the schedulable criticality level from among the executing sessions.
6. The resource manager of claim 3 wherein the executing sessions have corresponding criticality levels, wherein the arriving session has a criticality level, and wherein the preempting means preempts, as necessary, the executing sessions which have a criticality level that is lower than the criticality level of the arriving session.
7. The resource manager of claim 6 wherein the determining means determines the schedulable criticality level from among the executing sessions which have criticality levels that are lower than the criticality level of the arriving session.
8. The resource manager of claim 1 wherein the QoS shrinking means shrinks QoS's in order of running time with the QoS's of the longest running executing session being shrunk first.
9. The resource manager of claim 1 wherein the QoS shrinking means shrinks the QoS's randomly.
10. The resource manager of claim 1 wherein the QoS shrinking means shrinks QoS's in order of criticality.
11. The resource manager of claim 1 wherein the preempting means implements a linear program to determine which, if any, executing sessions are to be preempted.
12. The resource manager of claim 1 wherein the preempting means implements a linear approximation program to determine which, if any, executing sessions are to be preempted.
13. The resource manager of claim 1 wherein the preempting means preempts executing sessions in order of running time with the longest running session being preempted first.
14. The resource manager of claim 1 wherein the preempting means implements a primal-dual algorithm to determine which, if any, executing sessions are to be preempted.
15. The resource manager of claim 1 wherein the QoS expanding means expands the QoS's of the executing sessions in order of QoS with the QoS of the executing session having the lowest QoS being expanded first.
16. The resource manager of claim 1 wherein the QoS expanding means expands the QoS's of the executing sessions in order of session arrival with the QoS of the executing session arriving first being expanded first.
17. The resource manager of claim 1 wherein the QoS expanding means expands the QoS's of the executing sessions in order of execution time with the QoS of the executing session having the shortest execution time being expanded first.
18. The resource manager of claim 1 wherein the QoS expanding means expands the QoS's of randomly selected executing sessions.
19. The resource manager of claim 1 wherein the QoS expanding means implements QoS expansion of each session in round-robin order.
20. The resource manager of claim 19 wherein the QoS expanding means increases the QoS of each session by a predetermined amount in round-robin order until the QoS of each session reaches a predetermined maximum or a maximum supportable by the resource.
21. The resource manager of claim 1 wherein the QoS shrinking means shrinks QoS's of all executing sessions at once.
22. The resource manager of claim 1 wherein the preempting means preempts executing sessions in random order.
23. A method for managing a resource, wherein the resource executes executing sessions, wherein the resource has a resource capacity constraint, wherein the resource receives an arriving session, wherein each of the executing sessions has a QoS and a criticality level, wherein the arriving session has a QoS and a criticality level, and wherein the method comprises the following steps: a) shrinking the QoS's of the executing sessions and of the QoS of the arriving session; b1) admitting the arriving session without preemption if the executing sessions and the arriving session do not exceed the resource capacity constraint of the resource; b2) if the arriving session, and the executing sessions having criticality levels higher than the criticality level of the arriving session, do not exceed the resource capacity constraint of the resource, but the arriving session and all executing sessions exceed the resource capacity constraint of the resource, preempting, as necessary, the executing sessions which have criticality levels that are lower than the criticality level of the arriving session; b3) denying admission of the arriving session if the arriving session, and all of the executing sessions having criticality levels higher than the criticality level of the arriving session, exceed the resource capacity constraint of the resource; and, c) expanding the QoS of sessions remaining following steps b1), b2), and b3).
24. The method of claim 23 wherein step b2) comprises the step of determining a schedulable criticality level from among the executing sessions.
25. The method of claim 24 wherein the step of determining a schedulable criticality level from among the executing sessions comprises the steps of: b2,1) setting a=1 and b=h, wherein h represents a level of executing sessions which is one criticality level below a criticality level of the arriving session; b2,2) if all executing sessions in criticality levels above criticality level (a+b)/2 do not exceed the resource capacity constraint of the resource, setting b=(a+b)/2; b2,3) if all executing sessions in criticality levels above criticality level (a+b)/2 do exceed the resource capacity constraint of the resource, setting a=(a+b)/2; b2,4) when a<b-1, repeating steps b2,2) and b2,3); and, b2,5) when a.gtoreq.b-1, designating a as the schedulable criticality level.
26. The method of claim 24 wherein the step b2) comprises the step of determining which, if any, executing sessions having criticality levels at and below the schedulable criticality level are to be preempted.
27. The method of claim 23 wherein step a) comprises the step of shrinking QoS's in order of running time, with the QoS's of the longest running executing session being shrunk first.
28. The method of claim 23 wherein step a) comprises the step of shrinking QoS's randomly.
29. The method of claim 23 wherein step a) comprises the step of shrinking QoS's in order of criticality.
30. The method of claim 29 wherein step b2) comprises the step of implementing a linear program to determine which, if any, executing sessions are to be preempted.
31. The method of claim 23 wherein step b2) comprises the step of implementing a linear approximation program to determine which, if any, executing sessions are to be preempted.
32. The method of claim 23 wherein step b2) comprises the step of preempting executing sessions in order of running time, with the longest running session being preempted first.
33. The method of claim 23 wherein step b2) comprises the step of implementing a primal-dual algorithm to determine which, if any, executing sessions are to be preempted.
34. The method of claim 23 wherein the QoS of each of the executing sessions is represented by an actual corresponding consecutive loss factor CLFa, wherein the QoS of the arriving session is represented by an actual corresponding consecutive loss factor CLFa, and wherein step c) comprises the steps of: c1) creating a list of all remaining sessions; c2) setting b=0; c3) incrementing b by 1; c4) if reducing the CLFa of session b by one does not cause session b to exceed the resource capacity constraint of the resource, reducing the CLFa of session b by one; c5) if the CLFa of session b is zero, removing session b from the list; c6) if reducing the CLFa of session b would cause session b to exceed the resource capacity constraint of the resource, removing session b from the list; c7) repeating steps c3), c4), c5), and c6) until b is equal to the number of sessions on the list; and, c8) repeating steps c2), c3), c4), c5), c6), and c7) until the list is empty.
35. The method of claim 23 wherein step c) comprises the step of expanding the QoS's of the executing sessions in order of QoS, with the QoS of the executing session having the lowest QoS being expanded first.
36. The method of claim 23 wherein step c) comprises the step of expanding the QoS's of the executing sessions in order of session arrival, with the QoS of the executing session arriving first being expanded first.
37. The method of claim 23 wherein step c) comprises the step of expanding the QoS's of the executing sessions in order of execution time, with the QoS of the executing session having the shortest execution time being expanded first.
38. The method of claim 23 wherein step c) comprises the step of expanding the QoS's of randomly selected executing sessions.
39. The method of claim 23 wherein step c) comprises the step of implementing QoS expansion of each session in round-robin order.
40. The method of claim 39 wherein step c) comprises the step of increasing the QoS of each session by a predetermined amount in round-robin order until the QoS of each session reaches a predetermined maximum or a maximum supportable by the resource.
41. The method of claim 23 wherein step a) comprises the step of shrinking QoS's of all executing sessions at once.
42. The resource manager of claim 23 wherein step b2) comprises the step of preempting executing sessions in random order.
43. A system comprising: a plurality of resources; an operating system, wherein the operating system is arranged to operate the resources; a plurality of resource schedulers, wherein each resource scheduler schedules access to a corresponding resource; and, a resource manager, wherein the resource manager receives resource capacity constraints from the resource schedulers, wherein the resource manager manages the resources in order to execute sessions within the resource capacity constraints, and wherein the resource manager sits on top of the operating system.
44. The system of claim 43 wherein the resource manager comprises: QoS shrinking means for shrinking QoS's of a plurality of executing sessions and a QoS of an arriving session; preempting means for preempting, as necessary, the executing sessions which have criticality levels that are lower than a criticality level of the arriving session; and, QoS expanding means for expanding the QoS's of sessions.
45. The system of claim 44 wherein the QoS shrinking means shrinks the QoS of the executing sessions and shrinks the QoS of the arriving session.
46. The system of claim 44 wherein the preempting means includes determining means for determining a schedulable criticality level with respect to the executing sessions.
47. The system of claim 46 wherein the QoS expanding means expands the QoS of each session to a maximum QoS supportable by the resources.
48. The system of claim 44 wherein the QoS expanding means expands the QoS of each session to a maximum QoS supportable by the resource.
49. A resource manager for managing of a session according to a criticality level, a timing requirement, and a QoS of the session.
50. The resource manager of claim 49 wherein the resource manager is arranged to shrink the QoS of the session.
51. The resource manager of claim 50 wherein the resource manager is arranged to preempt the session, if necessary.
52. The resource manager of claim 51 wherein the resource manager is arranged to expand the QoS of the session if the session is not preempted.
53. The resource manager of claim 49 wherein the timing requirement comprises rate and latency requirements.
54. A method of initiating on-line QoS negotiation and adaptation by a user comprising the following steps: a) specifying a criticality level for a session; b) specifying a timing requirement for the session; c) specifying a QoS for the session; and, d) after partial execution of the session, respecifying at least one of the criticality level, the timing requirement, and the QoS for the session.
55. The method of claim 54 wherein step d) comprises the step of re-specifying the criticality level, the timing requirement, and the QoS for the session.
56. The method of claim 54 wherein the timing requirement comprises rate and latency requirements.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
Unknown
April 3, 2001
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.