System and method for priority inheritance
First Claim
Patent Images
1. A method comprising:
- testing a priority inheritance variable associated with a task; and
lowering a current priority of the task when testing the priority inheritance variable indicates that the task holds no resources that are involved in a priority inheritance.
3 Assignments
0 Petitions
Accused Products
Abstract
A method for controlling priority inheritance in a computer system is described, the method including testing a priority inheritance variable associated with a task, and lowering the current priority of a task when testing the priority inheritance variable indicates that the task holds no resources that are involved in a priority inheritance.
-
Citations
34 Claims
-
1. A method comprising:
-
testing a priority inheritance variable associated with a task; and
lowering a current priority of the task when testing the priority inheritance variable indicates that the task holds no resources that are involved in a priority inheritance. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20)
-
-
12. A method comprising:
-
raising a current priority of a task to a current priority of a higher priority task when the higher priority task blocks on a resource held by the task;
incrementing a priority inheritance variable when the higher priority task blocks on the resource held by the task, the priority inheritance variable associated with the task and configured to be indicative of the number of resources held by the task that higher priority tasks are waiting to receive;
decrementing the priority inheritance variable when the task releases the resource that the higher priority task has blocked on;
testing the priority inheritance variable; and
lowering the current priority of the task when testing the priority inheritance variable indicates that the task holds no resources that are involved in a priority inheritance.
-
-
13. A method comprising:
-
testing a priority inheritance variable associated with a task, the priority inheritance variable configured to have a value indicative of the number of inversion safe mutual exclusion semaphores held by the task that higher priority tasks are waiting to receive; and
setting a current priority of the task to a base priority value when testing the priority inheritance variable indicates that no higher priority tasks are waiting to receive inversion safe mutual exclusion semaphores held by the task.
-
-
21. A method comprising:
-
raising a current priority of a task when a higher priority task blocks on an inversion safe mutual exclusion semaphore, the inversion safe mutual exclusion semaphore being held by the task;
incrementing a counter when the higher priority task blocks on the inversion safe mutual exclusion, the counter associated with the task and configured to have a value indicative of the number of inversion safe mutual exclusion semaphores held by the task that higher priority tasks are waiting to receive;
decrementing the counter when the task releases the inversion safe mutual exclusion semaphore; and
setting the current priority of the task to a base priority value when the counter is decremented to a value that indicates that the task holds no inversion safe mutual exclusion semaphores involved in priority inheritance.
-
-
22. A system comprising:
-
a task;
a priority inheritance variable, the priority inheritance variable associated with the task and configured to indicate the number of resources that are held by the task and that at least one higher priority task is blocked on; and
a mutual exclusion control mechanism configured to set a current priority of the task to a base priority value when the priority inheritance variable indicates that no higher priority tasks are blocked on resources held by the task. - View Dependent Claims (23, 25, 27, 28, 29)
-
-
24. A system comprising:
-
a task;
a priority inheritance variable associated with the task, the variable configured to indicate the number of inversion safe mutual exclusion semaphores that are held by the task and that at least one higher priority task is blocked on; and
a mutual exclusion control mechanism configured to set a current priority of the task to a base priority value when the priority inheritance variable indicates that no higher priority tasks are blocked on inversion safe mutual exclusion semaphores held by the task.
-
-
26. A system comprising:
-
a semaphore; and
a variable, the variable associated with the semaphore and configured to indicate whether a pending request for the semaphore has resulted in a priority inheritance.
-
-
30. A method comprising:
-
tracking a number of resources held by a task that higher priority tasks are presently blocked on, the tracking using only a predetermined amount of memory;
raising a current priority of the task when a higher priority task blocks on a resource held by the task; and
setting the current priority of the task to a base priority value whenever no higher priority tasks are waiting to receive any of the resources held by the task and the task still holds at least one resource.
-
-
31. A method comprising:
-
tracking a number of inversion safe mutual exclusion semaphores held by a task that higher priority tasks are presently blocked on, the tracking using only a predetermined amount of memory;
raising a current priority of the task when a higher priority task blocks on an inversion safe mutual exclusion semaphore held by the task; and
setting the current priority of the task to a base priority value whenever no higher priority tasks are waiting to receive any of the inversion safe mutual exclusion semaphores held by the task and the task still holds at least one inversion safe mutual exclusion semaphore.
-
-
32. An article of manufacture comprising a computer-readable medium having stored thereon instructions adapted to be executed by a processor, the instructions which, when executed, define a series of steps to be used to control priority inheritance, said steps comprising:
-
testing a priority inheritance variable associated with a task; and
lowering a current priority of the task when testing the priority inheritance variable indicates that the task holds no resources that are involved in a priority inheritance.
-
-
33. An article of manufacture comprising a computer-readable medium having stored thereon instructions adapted to be executed by a processor, the instructions which, when executed, define a series of steps to be used to control priority inheritance, said steps comprising:
-
raising a current priority of a task when a higher priority task blocks on an inversion safe mutual exclusion semaphore, the inversion safe mutual exclusion semaphore being held by the task;
incrementing a counter when the higher priority task blocks on the inversion safe mutual exclusion, the counter associated with the task and configured to have a value indicative of the number of inversion safe mutual exclusion semaphores held by the task that higher priority tasks are waiting to receive;
decrementing the counter when the task releases the inversion safe mutual exclusion semaphore; and
setting the current priority of the task to a base priority value when the counter is decremented to a value that indicates that the task holds no inversion safe mutual exclusion semaphores involved in priority inheritance.
-
-
34. An article of manufacture comprising a computer-readable medium having stored thereon instructions adapted to be executed by a processor, the instructions which, when executed, define a series of steps to be used to control priority inheritance, said steps comprising:
-
tracking a number of resources held by a task that higher priority tasks are presently blocked on, the tracking using only a predetermined amount of memory;
raising a current priority of the task when a higher priority task blocks on a resource held by the task; and
setting the current priority of the task to a base priority value whenever no higher priority tasks are waiting to receive any of the resources held by the task and the task still holds at least one resource.
-
Specification