forked from Imagelibrary/rtems
score: Implement priority boosting
This commit is contained in:
@@ -505,6 +505,12 @@ A mechanism used to represent the relative
|
||||
importance of an element in a set of items. RTEMS uses priority
|
||||
to determine which task should execute.
|
||||
|
||||
@item priority boosting
|
||||
A simple approach to extend the priority inheritance protocol for clustered
|
||||
scheduling is @dfn{priority boosting}. In case a mutex is owned by a task of
|
||||
another cluster, then the priority of the owner task is raised to an
|
||||
artificially high priority, the pseudo-interrupt priority.
|
||||
|
||||
@item priority inheritance
|
||||
An algorithm that calls for
|
||||
the lower priority task holding a resource to have its priority
|
||||
|
||||
@@ -115,6 +115,11 @@ for that resource. Each time a task blocks attempting to obtain
|
||||
the resource, the task holding the resource may have its
|
||||
priority increased.
|
||||
|
||||
On SMP configurations, in case the task holding the resource and the task that
|
||||
blocks attempting to obtain the resource are in different scheduler instances,
|
||||
the priority of the holder is raised to the pseudo-interrupt priority (priority
|
||||
boosting). The pseudo-interrupt priority is the highest priority.
|
||||
|
||||
RTEMS supports priority inheritance for local, binary
|
||||
semaphores that use the priority task wait queue blocking
|
||||
discipline. When a task of higher priority than the task
|
||||
|
||||
@@ -164,12 +164,14 @@ and instruction caches. With clustered scheduling it is possible to honour the
|
||||
cache topology of a system and thus avoid expensive cache synchronization
|
||||
traffic. It is easy to implement. The problem is to provide synchronization
|
||||
primitives for inter-cluster synchronization (more than one cluster is involved
|
||||
in the synchronization process). In RTEMS there are currently three means
|
||||
in the synchronization process). In RTEMS there are currently four means
|
||||
available
|
||||
|
||||
@itemize @bullet
|
||||
@item events,
|
||||
@item message queues, and
|
||||
@item message queues,
|
||||
@item semaphores using the @ref{Semaphore Manager Priority Inheritance}
|
||||
protocol (priority boosting), and
|
||||
@item semaphores using the @ref{Semaphore Manager Multiprocessor Resource
|
||||
Sharing Protocol} (MrsP).
|
||||
@end itemize
|
||||
|
||||
Reference in New Issue
Block a user