Priority resource allocation in programming environments
First Claim
1. (Rewritten) A language extension to an object oriented programming language for the allocation of resource objects to users, the language extension comprising[,];
- a resource pool for storing available resource objects[,];
a resource queue for storing data representing select ones of the users, the users on the resource queue seeking the allocation of the resource objects[,];
a release resource [method] system for releasing a concluded resource object after use by a user, [the release resource method] comprising;
means for returning the concluded resource object to the resource pool[,]; and
means for, when the resource queue is empty, using an object oriented programming language notify method to notify the users waiting on a synchronization object that the concluded resource object is available[,];
an acquire resource [method] system for an acquiring user to acquire [a] at least one of the resource objects, [the acquire resource method] comprising;
means for [the acquire resource method to return a] returning at least one of the resource objects in the resource pool if the resource pool is not empty and there are no users on the resource queue[,];
[means for, where] when the resource pool is empty or the resource queue is non-empty[,];
means for adding the acquiring user to the resource queue[,] ;
means for having the acquiring user wait for notification by using the object oriented programming language wait method on the synchronized object[,];
means for awakening the acquiring user when there is a resource object in the resource pool[,];
means for determining if the acquiring user is at the head of the resource queue, and if the acquiring user is at the head of the resource queue[,];
means for removing the acquiring user from the resource queue[,];
means for removing [a] at least one of the resource objects from the resource pool; and
means for returning said at least one of the resource objects to the acquiring user, otherwise, continuing to have the acquiring user wait for notification by using the object oriented programming language wait method on the synchronized object[,]; and
means for the acquire resource [method] system to return a time out exception if the acquiring user does not acquire [a] said at least one of the resource objects within a predefined time[,]; and
[each of the release resource method and the acquire resource method comprising] synchronization means to constrain users such that only one user may execute either the release resource [method] system or the acquire resource [method] system at any one time, [the] said synchronization means being synchronized on the synchronization object.
1 Assignment
0 Petitions
Accused Products
Abstract
An extension to a programming language provides for the fair allocation of resources in the programming language environment. A resource pool data object stores available resource objects. A resource queue stores users waiting for resource object allocation. A method releases resources by placing the resources in the resource pool and by notifying users that a resource object has been released. An acquire resource method provides for users to be placed on the resource queue when there are no available resource objects. The acquire resource method waits on the availability of the resource object until the user comes to the head of the resource queue and a resource object is available, following which the resource object is returned to the user. Alternatively, a time out condition is reached once a predefined wait limit is met. The synchronization between methods and users waiting on resources is provided by the acquisition and release of a common lock.
-
Citations
14 Claims
-
1. (Rewritten) A language extension to an object oriented programming language for the allocation of resource objects to users, the language extension comprising[,];
-
a resource pool for storing available resource objects[,];
a resource queue for storing data representing select ones of the users, the users on the resource queue seeking the allocation of the resource objects[,];
a release resource [method] system for releasing a concluded resource object after use by a user, [the release resource method] comprising;
means for returning the concluded resource object to the resource pool[,]; and
means for, when the resource queue is empty, using an object oriented programming language notify method to notify the users waiting on a synchronization object that the concluded resource object is available[,];
an acquire resource [method] system for an acquiring user to acquire [a] at least one of the resource objects, [the acquire resource method] comprising;
means for [the acquire resource method to return a] returning at least one of the resource objects in the resource pool if the resource pool is not empty and there are no users on the resource queue[,];
[means for, where] when the resource pool is empty or the resource queue is non-empty[,];
means for adding the acquiring user to the resource queue[,] ;
means for having the acquiring user wait for notification by using the object oriented programming language wait method on the synchronized object[,];
means for awakening the acquiring user when there is a resource object in the resource pool[,];
means for determining if the acquiring user is at the head of the resource queue, and if the acquiring user is at the head of the resource queue[,];
means for removing the acquiring user from the resource queue[,];
means for removing [a] at least one of the resource objects from the resource pool; and
means for returning said at least one of the resource objects to the acquiring user, otherwise, continuing to have the acquiring user wait for notification by using the object oriented programming language wait method on the synchronized object[,]; and
means for the acquire resource [method] system to return a time out exception if the acquiring user does not acquire [a] said at least one of the resource objects within a predefined time[,]; and
[each of the release resource method and the acquire resource method comprising] synchronization means to constrain users such that only one user may execute either the release resource [method] system or the acquire resource [method] system at any one time, [the] said synchronization means being synchronized on the synchronization object. - View Dependent Claims (2, 3, 4)
-
-
5. (Rewritten) A method for allocating resource objects to users in a programming language environment, the programming language environment comprising a resource pool for storing available resource objects, and a resource queue for storing data representing select ones of the users[, the users on the resource queue] seeking [the] allocation of the resource objects, the method comprising the steps of:
-
a. releasing a concluded resource object after use by a user, comprising the steps of;
i. returning the concluded resource object to the resource pool[,]; and
ii. when the resource queue is empty, using an object oriented programming language notify method to notify [the] users waiting on a synchronization object that the concluded resource object is available[,];
b. permitting an acquiring user to acquire [a] at least one of the resource objects, comprising the steps of;
i. returning to the acquiring user [a] at least one of the resource objects in the resource pool if the resource pool is not empty and there are no users on the resource queue[,];
ii. where the resource pool is empty or the resource queue is non-empty, adding the acquiring user to the resource queue, having the acquiring user wait for notification by using the object oriented programming language wait method on the synchronized object, awakening the acquiring user when there is a resource object in the resource pool, determining if the acquiring user is at the head of the resource queue, and if the acquiring user is at the head of the resource queue, removing the acquiring user from the resource queue, removing [a] at least one of the resource objects from the resource pool, and returning said at least one of the resource objects to the acquiring user, otherwise, continuing to have the acquiring user wait for notification by using the object oriented programming language wait method on the synchronized object[,]; and
iii. returning a time out exception if the acquiring user does not acquire [a] at least one of the resource objects within a predefined time[,]; and
c. synchronizing each of the above steps to constrain users such that only one user may execute either the above steps (a) and (b) at any one time, [the] said synchronization being carried out on the synchronization object. - View Dependent Claims (6)
-
-
7. (Rewritten) A program storage device readable by a machine, tangibly embodying instructions executable by the machine to provide a programming language extension to an object oriented programming language for the allocation of resource objects to users, the extension comprising:
-
a resource pool for storing available resource objects[,];
a resource queue for storing data representing select ones of the users[, the users on the resource queue] seeking [the] allocation of the resource objects[,];
a release resource [method] system for releasing a concluded resource object after use by a user, the release resource method comprising;
means for returning the concluded resource object to the resource pool[, and];
means for, when the resource queue is empty, using an object oriented programming language notify method to notify the users waiting on a synchronization object that the concluded resource object is available[;
]an acquire resource [method] system for an acquiring user to acquire [a] at least one of the resource objects, [the acquire resource method] comprising;
means for [the acquire resource method to return a] returning at least one of the resource objects in the resource pool if the resource pool is not empty and there are no users on the resource queue[,];
[means for, where] when the resource pool is empty or the resource queue is non-empty[,];
means for adding the acquiring user to the resource queue[,];
means for having the acquiring user wait for notification by using the object oriented programming language wait method on the synchronized object[,];
means for awakening the acquiring user when there is a resource object in the resource pool[,];
means for determining if the acquiring user is at the head of the resource queues and if the acquiring user is at the head of the resource queue[,];
means for removing the acquiring user from the resource queue[,];
means for removing [a] at least one of the resource objects from the resource pool; and
means for returning said one of the resource object to the acquiring user, otherwise, continuing to have the acquiring user wait for notification by using the object oriented programming language wait method on the synchronized object[,];
andmeans for the acquire resource [method] system to return a time out exception if the acquiring user does not acquire [a] at least one of the resource objects within a predefined time[,]; and
[each of the release resource method and the acquire resource method comprising] synchronization means to constrain users such that only one user may execute either the release resource [method] system or the acquire resource method at any one time, [the] said synchronization means being synchronized on the synchronization object. - View Dependent Claims (8, 9, 10)
-
-
11. (Rewritten) A computer program product for use with a computer supporting the Java programming language environment, the computer program product comprising a Java class for the allocation of resource objects to threads, the class comprising[,]:
-
a resource pool for storing available resource objects[,];
a resource queue for storing data representing select ones of the threads, the threads on the resource queue seeking the allocation of the resource objects[,];
a release resource [method] system for releasing a concluded resource object after use by a thread, the release resource [method] system comprising [the steps of];
means for returning the concluded resource object to the resource pool[, and];
when the resource queue is empty, [using the notify method to notify] means for notifying the threads waiting on a synchronization object that the concluded resource object is available[,];
an acquire resource [method] system for an acquiring thread to acquire [a] at least one of the resource objects, the acquire resource [method] system comprising [the steps of];
means for returning [a] at least one of the resource objects in the resource pool if the resource pool is not empty and there are no threads on the resource queue[,];
[where] when the resource pool is empty or the resource queue is non-empty[,];
means for adding the acquiring thread to the resource queue[,];
means for invoking the Java wait method on the synchronized object[,];
when the acquiring thread is [awoken] awakened and there is a resource object in the resource pool, means for determining if the acquiring thread is at the head of the resource queues and if the acquiring thread is at the head of the resource queue[,];
means for removing the acquiring thread from the resource queue[,];
means for removing [a] at least one of the resource objects from the resource pool; and
means for returning said at least one of the resource objects to the acquiring user, otherwise, invoking the Java wait method on the synchronized object[,]; and
means for returning a time out exception if the acquiring thread does not acquire [a] at least one of the resource objects within a predefined time[,]; and
[each of the release resource method and the acquire resource method] means for using the Java synchronized method to constrain threads such that only one thread may execute either the release resource [method] system or the acquire resource [method] system at any one time, [the] said [synchronization means] Java synchronized method being synchronized on the synchronization object. - View Dependent Claims (12, 13)
-
-
14. (Rewritten) A language extension to a programming language for the allocation of resources to users, the language extension comprising[,]:
-
a resource pool for storing available resources[,];
a resource queue for storing data representing select ones of the users[, the users on the resource queue] seeking [the] allocation of the resource objects[,];
a release resource means for releasing a concluded resource after use by a user, the release resource means comprising;
means for returning the concluded resource to the resource pool[,]; and
means for, when the resource queue is empty, notifying the users waiting on a predefined synchronization flag that the concluded resource is available[,];
an acquire resource means for an acquiring user to acquire [a] at least one of the resources, the acquire resource means comprising;
means for providing [to provide] the acquiring user with [a] at least one of the resources in the resource pool if the resource pool is not empty and there are no users on the resource queue[,];
[means for, where] when the resource pool is empty or the resource queue is non-empty[,];
means for adding the acquiring user to the resource queue[,];
means for having the acquiring user wait for notification on the synchronization flag[,];
means for awakening the acquiring user when the resource pool is non-empty, and means for determining if the acquiring user is at the head of the resource queue, and if the acquiring user is at the head of the resource queue[,];
means for removing the acquiring user from the resource queue[,];
means for removing [a] at least one of the resources from the resource pool; and
means for returning said at least one of the resources to the acquiring user, otherwise, continuing to have the acquiring user wait for notification on the synchronization flag[,]; and
means for the acquire resource means to return a time out exception if the acquiring user does not acquire [a] at least one of the resources within a predefined time[,]; and
[each of the release resource means and the acquire resource means comprising] synchronization means to constrain users such that only one user may execute either the release resource means or the acquire resource means at any one time, [the] said synchronization means being synchronized on the synchronization flag.
-
Specification