IP Library › Granted Patent US 7,451,450
Granted Patent B2
US 7,451,450 · App. 10/930,573 · Granted Nov 11, 2008

Resource manager architecture

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,451,450
App. No.
10/930,573
Granted
Nov 11, 2008
Kind
B2
Abstract

Resource management architectures implemented in computer systems to manage resources are described. In one embodiment, a general architecture includes a resource manager and multiple resource providers that support one or more resource consumers such as a system component or application. Each provider is associated with a resource and acts as the manager for the resource when interfacing with the resource manager. The resource manager arbitrates access to the resources provided by the resource providers on behalf of the consumers, e.g., using a priority-based policy. A resource consumer creates an “activity” at the resource manager and builds one or more “configurations” that describe various sets of preferred resources required to perform the activity. Each resource consumer can specify one or more configurations, which may be ranked, for each activity. This allows the resource consumers to be dynamically changed from one configuration to another as operating conditions change.

Claims (52)

1. A resource manager, implemented on a computer-readable medium, comprising:

means for registering resources with a resource manager;

means for receiving, from consumers of the resources, requests to reserve sets of the resources to perform associated tasks;

means for evaluating whether the requests can be satisfied;

in an event that the requests can be satisfied, means for reserving the sets of the resources on behalf of the consumers;

in an event that all of the requests cannot be satisfied:

means for determining which of the requests can be satisfied and reserving the sets of the resources on behalf of the consumers that submitted those requests;

means for establishing at the resource manager multiple alternate configurations of resources that may be utilized to perform a task; and

means for dynamically switching from one configuration to another configuration to perform the task, wherein the means for dynamically switching comprises means for temporarily reserving on behalf of a given consumer a union of resources to perform the task, the union of resources comprising:

resources associated with the one configuration; and

resources associated with the other configuration.

2. A method comprising:

registering resources with a resource manager;

receiving, from consumers of the resources, requests to reserve sets of the resources to perform associated tasks;

evaluating whether the requests can be satisfied;

in an event that the requests can be satisfied, reserving the sets of the resources on behalf of the consumers;

in an event that all of the requests cannot be satisfied:

determining which of the requests can be satisfied and reserving the sets of the resources on behalf of the consumers that submitted those requests;

establishing at the resource manager multiple alternate configurations of resources to be utilized to perform a task; and

dynamically switching from a first configuration to a second configuration to perform the task, wherein the dynamically switching comprises temporarily reserving on behalf of a given consumer a union of resources to perform the task, the union of resources comprising:

resources associated with the first configuration; and

resources associated with the second configuration.

3. The method of claim 2 , wherein the evaluating comprises determining whether the resources can be allocated to the consumers according to a priority-based policy.

4. The method of claim 2 , further comprising notifying the consumers whose requests could not be satisfied that their reservation requests failed.

5. The method of claim 2 , further comprising preventing consumers from using the resources without first reserving the resources.

6. The method of claim 2 , further comprising:

ranking the configurations in order of preference; and

downgrading from a more preferred configuration to a less preferred configuration to perform the task.

7. The method of claim 2 , wherein the dynamically switching further comprises un-reserving the first configuration when the given consumer explicitly frees the first configuration.

8. The method of claim 2 , wherein the dynamically switching comprises falling back to a less preferred configuration.

9. The method of claim 2 , wherein the second configuration uses a lower quantity of a particular resource than the first configuration.

10. The method of claim 9 , wherein the dynamically switching is performed without completely freeing the particular resource.

11. The method of claim 2 , further comprising:

in an event no alternate configurations of resources that may be utilized to perform the task are established:

notifying a particular consumer that no alternative configuration can perform the task; and

facilitating the particular consumer creating a new configuration, the new configuration describing a fallback set of resources corresponding to the task.

12. A computer-readable medium having computer-executable instructions that, when executed, direct a computing device to perform acts comprising:

registering resources with a resource manager;

receiving, from consumers of the resources, requests to reserve sets of the resources to perform associated tasks;

evaluating whether the requests can be satisfied;

in an event that the requests can be satisfied, reserving the sets of the resources on behalf of the consumers;

in an event that all of the requests cannot be satisfied:

determining which of the requests can be satisfied and reserve the sets of the resources on behalf of the consumers that submitted those requests;

establishing, at the resource managers multiple alternate configurations of resources to be utilized to perform a task; and

dynamically switching from a first configuration to a second configuration to perform the task, wherein the dynamically switching comprises temporarily reserving on behalf of a given consumer a union of resources to perform the task, the union of resources comprising:

resources associated with the first configuration; and

resources associated with the second configuration.

13. The computer-readable medium of claim 12 , wherein the computer-executable instructions are implemented on at least part of an operating system.

14. The computer-readable medium of claim 12 , wherein the computer-executable instructions further direct the computing device to perform acts comprising:

in an event no alternate configurations of resources that may be utilized to perform the task are established:

notifying a particular consumer that no alternative configuration can perform the task; and

facilitating the particular consumer creating a new configuration, the new configuration describing an alternative set of resources corresponding to the task.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2016
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: ZHIGU HOLDINGS LIMITED
Reel/Frame 040354/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: FOLTZ, FORREST C; SHAW, GEORGE; SATHER, DALE A; RAFFMAN, ANDY R; SRINIVASAN, JAI; BACKMAN, TERJE K; PARRY, WILLIAM G; BAKIN, DAVID J; JONES, MICHAEL B; MCDOWELL, SEAN C; RAJA, JAYACHANDRAN; SPEED, ROBIN; SANKARANARAYAN, MAKUND
To: MICROSOFT CORPORATION
Reel/Frame 038266/0860 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
Continuity (2)
Division 0956372600 · May 2, 2000
Related Publication 20050033846A1 · Feb 10, 2005