score: Implement priority boosting

This commit is contained in:
Sebastian Huber
2015-09-03 10:27:16 +02:00
parent 3995e6d9c2
commit dafa5d8843
11 changed files with 195 additions and 13 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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