Priority inheritance in multithreaded systems
First Claim
Patent Images
1. A method, comprising:
- at a hardware-multithreaded processor, determining that a first task is blocked from execution by a second task, the first task having a first priority and the second task having a second priority that is lower than the first priority;
setting a temporary priority of the second task to be equal to an elevated priority that is higher than the second priority, such that when the second task has the temporary priority and is preempted from execution at the hardware-multithreaded processor by another task, the second task is rescheduled for execution based on the temporary priority and when the second task has the temporary priority and is not preempted from execution at the hardware-multithreaded processor, the second task will be executed based on the second priority; and
clearing the temporary priority of the second task in response to the second task releasing a synchronization object blocking the first task from execution.
2 Assignments
0 Petitions
Accused Products
Abstract
A method includes determining that a first task having a first priority is blocked from execution at a multithreaded processor by a second task having a second priority that is lower than the first priority. A temporary priority of the second task is set to be equal to an elevated priority, such that in response to the second task being preempted from execution by another task, the second task is rescheduled for execution based on the elevated priority identified by the temporary priority.
13 Citations
28 Claims
-
1. A method, comprising:
-
at a hardware-multithreaded processor, determining that a first task is blocked from execution by a second task, the first task having a first priority and the second task having a second priority that is lower than the first priority; setting a temporary priority of the second task to be equal to an elevated priority that is higher than the second priority, such that when the second task has the temporary priority and is preempted from execution at the hardware-multithreaded processor by another task, the second task is rescheduled for execution based on the temporary priority and when the second task has the temporary priority and is not preempted from execution at the hardware-multithreaded processor, the second task will be executed based on the second priority; and clearing the temporary priority of the second task in response to the second task releasing a synchronization object blocking the first task from execution. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. An apparatus, comprising:
-
a hardware-multithreaded processor; a memory; and an operating system executable by the hardware-multithreaded processor to; determine that a first task is blocked from execution at the hardware-multithreaded processor by a second task, the first task having a first priority and the second task having a second priority that is lower than the first priority; set a temporary priority of the second task to be equal to an elevated priority that is higher than the second priority, such that when the second task has the temporary priority and is preempted from execution at the hardware-multithreaded processor by another task, the second task is rescheduled for execution based on the temporary priority and when the second task has the temporary priority and is not preempted from execution at the hardware-multithreaded processor, the second task will be executed based on the second priority; and clear the temporary priority of the second task in response to the second task releasing a synchronization object blocking the first task from execution. - View Dependent Claims (16, 17, 18, 19)
-
-
20. An electronic device, comprising:
-
means for scheduling tasks for execution at a plurality of hardware threads; means for storing scheduling data associated with the scheduled tasks; means for determining that a first task is blocked from execution by a second task, the first task having a first priority and the second task having a second priority that is lower than the first priority; and means for setting a temporary priority of the second task to be equal to an elevated priority that is higher than the second priority, such that when the second task has the temporary priority and is preempted from execution by another task, the means for scheduling tasks reschedules the second task for execution based on the elevated priority identified by the temporary priority and when the second task has the temporary priority and is not preempted from execution, the second task will be executed based on the second priority; and means for clearing the temporary priority of the second task in response to the second task releasing a synchronization object blocking the first task from execution. - View Dependent Claims (21, 22, 23)
-
-
24. A computer-readable non-transitory storage medium comprising instructions that, when executed by a hardware-multithreaded processor, cause the hardware-multithreaded processor to:
-
determine that a first task is blocked from execution at the hardware-multithreaded processor by a second task, the first task having a first priority and the second task having a second priority that is lower than the first priority; set a temporary priority of the second task to be equal to an elevated priority that is higher than the second priority, such that when the second task has the temporary priority and is preempted from execution at the hardware-multithreaded processor by another task, the second task is rescheduled for execution based on the temporary priority and when the second task has the temporary priority and is not preempted from execution at the hardware-multithreaded processor, the second task will be executed based on the second priority; and clear the temporary priority of the second task in response to the second task releasing a synchronization object blocking the first task from execution. - View Dependent Claims (25, 26, 27, 28)
-
Specification