A situation where a low-priority task holds a resource
which a higher-priority task is waiting for. This can
occur with tasks scheduled with SCHED_OTHER or SCHED_IDLE,
where a task with a higher scheduling priority will always
be scheduled before in preference. This leads to deadlock as
the low-priority task cannot be scheduled in order to release
the lock, and the high-priority task can't continue without the
lock on the resource. Priority inheritance is a putative solution,
where the low-priority task temporarily takes on the priority of
the other task, enabling its scheduling and release of the lock.
However this approach can itself lead to deadlock
(FIXME: is this really true?).
www.kernelnewbies.org/glossary/
which a higher-priority task is waiting for. This can
occur with tasks scheduled with SCHED_OTHER or SCHED_IDLE,
where a task with a higher scheduling priority will always
be scheduled before in preference. This leads to deadlock as
the low-priority task cannot be scheduled in order to release
the lock, and the high-priority task can't continue without the
lock on the resource. Priority inheritance is a putative solution,
where the low-priority task temporarily takes on the priority of
the other task, enabling its scheduling and release of the lock.
However this approach can itself lead to deadlock
(FIXME: is this really true?).
www.kernelnewbies.org/glossary/
No comments:
Post a Comment