Process scheduler having multiple adaptive partitions associated with process threads accessing mutexes and the like
First Claim
1. A system comprising:
- a processor;
one or more memory storage units;
software code stored in the one or more memory storage units, where the software code is executable by the processor to generate a plurality of adaptive partitions that are each associated with one or more process threads, where each of the plurality of adaptive partitions has a corresponding processor budget and the process threads comprise a mutex holding thread associated with a first adaptive partition of the plurality of adaptive partitions, where the mutex holding thread may gain exclusive access to a mutex object, a mutex waiting thread associated with a second adaptive partition of the plurality of adaptive partitions, where the mutex waiting thread waits for access to the mutex object when the mutex object is held by the mutex holding thread, where the software code further comprises a scheduling system executable by the processor for selectively allocating the processor to run the process threads based, at least in part, on the processor budget of the associated adaptive partitions, and where the scheduling system bills processor allocation used to run the mutex holding thread to the processor budget of the second adaptive partition when the processor budget of the first adaptive partition has been exhausted.
13 Assignments
0 Petitions
Accused Products
Abstract
A system is set forth that includes a processor, one or more memory storage units, and software code stored in the one or more memory storage units. The software code is executable by the processor to generate a plurality of adaptive partitions that are each associated with one or more process threads. Each of the plurality of adaptive partitions has a corresponding processor budget that is assigned to it. The process threads include a mutex holding thread and a mutex waiting thread. The mutex holding thread is associated with a first adaptive partition and may gain exclusive access to a mutex object. The mutex waiting thread is associated with a second adaptive partition and must wait for access to the mutex object while the mutex object is held by the mutex holding thread. The software code further includes a scheduling system that selectively allocates the processor to run the process threads based, at least in part, on the processor budget of the associated adaptive partitions. The scheduling system bills processor allocation used to run the mutex holding thread to the processor budget of the second adaptive partition when the processor budget of the first adaptive partition has been exhausted.
-
Citations
21 Claims
-
1. A system comprising:
-
a processor;
one or more memory storage units;
software code stored in the one or more memory storage units, where the software code is executable by the processor to generate a plurality of adaptive partitions that are each associated with one or more process threads, where each of the plurality of adaptive partitions has a corresponding processor budget and the process threads comprise a mutex holding thread associated with a first adaptive partition of the plurality of adaptive partitions, where the mutex holding thread may gain exclusive access to a mutex object, a mutex waiting thread associated with a second adaptive partition of the plurality of adaptive partitions, where the mutex waiting thread waits for access to the mutex object when the mutex object is held by the mutex holding thread, where the software code further comprises a scheduling system executable by the processor for selectively allocating the processor to run the process threads based, at least in part, on the processor budget of the associated adaptive partitions, and where the scheduling system bills processor allocation used to run the mutex holding thread to the processor budget of the second adaptive partition when the processor budget of the first adaptive partition has been exhausted. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of operating a process scheduler in a processing system having a processor and a plurality of adaptive partitions that are each associated with one or more process threads, each of the adaptive partitions having a processor budget, the method comprising:
-
generating a mutex holding thread associated with a first adaptive partition of the plurality of adaptive partitions;
holding a mutex object using the mutex holding thread;
generating a mutex waiting thread associated with a second adaptive partition of the plurality of adaptive partitions;
preventing the mutex waiting thread from accessing the mutex object while the mutex object is held by the mutex holding thread; and
billing processor allocation used to run the mutex holding thread to the processor budget of the second adaptive partition when the processor budget of the first adaptive partition has been exhausted. - View Dependent Claims (9, 10)
-
-
11. A method of operating a process scheduler in a processing system having a processor and a plurality of adaptive partitions that are each associated with one or more process threads, each of the adaptive partitions having scheduling attributes including a processor budget, the method comprising:
-
generating a mutex holding thread associated with a first adaptive partition of the plurality of adaptive partitions;
holding a mutex object using the mutex holding thread;
generating a plurality of mutex waiting thread associated with two or more further adaptive partitions of the plurality of adaptive partitions;
preventing the mutex waiting thread from accessing the mutex object while the mutex object is held by the mutex holding thread; and
determining which of the waiting threads is most likely to be run next on the processor upon release of the mutex object by the mutex holding thread;
billing processor allocation used to run the mutex holding thread to the processor budget of the adaptive partition associated with the waiting thread that is most likely to run next on the processor upon release of the mutex object by the mutex holding thread when the processor budget of the first adaptive partition has been exhausted. - View Dependent Claims (12, 13, 14)
-
-
15. One or more memory storage units comprising:
-
software code that is executable by a processor to generate a plurality of adaptive partitions that are each associated with one or more process threads, where each of the plurality of adaptive partitions has a corresponding processor budget and the process threads comprise a mutex holding thread associated with a first adaptive partition of the plurality of adaptive partitions, where the mutex holding thread operates to gain exclusive access to a mutex object, a mutex waiting thread associated with a second adaptive partition of the plurality of adaptive partitions, where the mutex waiting thread waits for access to the mutex object when the mutex object is held by the mutex holding thread; and
a scheduling system forming part of the software code, where the scheduling system selectively allocates the processor to run the process threads based, at least in part, on the processor budget of the associated adaptive partitions, and where the scheduling system operates to determine which of the mutex waiting threads is most likely to be run next on the processor upon release of the mutex object by the mutex holding thread and bills processor allocation used to run the mutex holding thread to the processor budget of the adaptive partition associated with the mutex waiting thread that is most likely to run next on the processor upon release of the mutex object by the mutex holding thread when the processor budget of the first adaptive partition has been exhausted; and
where the scheduling system bills processor allocation used to run the mutex holding thread to the processor budget of the second adaptive partition when the processor budget of the first adaptive partition has been exhausted. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A system comprising:
-
a processor;
one or more memory storage units;
software code stored in the one or more memory storage units, where the software code is executable by the processor to generate a plurality of adaptive partitions that are each associated with one or more process threads, where each of the plurality of adaptive partitions has one or more corresponding scheduling attributes including a processor budget, and where the process threads comprise a mutex holding thread associated with a first adaptive partition of the plurality of adaptive partitions, where the mutex holding thread may gain exclusive access to a mutex object, a plurality of mutex waiting thread associated with two or more further adaptive partitions of the plurality of adaptive partitions, where the mutex waiting threads wait for access to the mutex object when the mutex object is held by the mutex holding thread, where the software code further comprises a scheduling system executable by the processor for selectively allocating the processor to run the process threads based, at least in part, on the processor budget of the associated adaptive partitions, where the scheduling system operates to determine which of the waiting threads is most likely to be run next on the processor upon release of the mutex object by the mutex holding thread and bills processor allocation used to run the mutex holding thread to the processor budget of the adaptive partition associated with the waiting thread that is most likely to run next on the processor upon release of the mutex object by the mutex holding thread when the processor budget of the first adaptive partition has been exhausted.
-
Specification