On Thu, Sep 3, 2015 at 8:01 AM, Sebastian Huber
<sebastian.hu...@embedded-brains.de> wrote:
> ---
>  doc/user/smp.t | 38 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
>
> diff --git a/doc/user/smp.t b/doc/user/smp.t
> index 1b4849a..ba700e0 100644
> --- a/doc/user/smp.t
> +++ b/doc/user/smp.t
> @@ -147,6 +147,44 @@ another processor.  So if we enable interrupts during 
> this transition we have
>  to provide an alternative task independent stack for this time frame.  This
>  issue needs further investigation.
>
> +@subsection Clustered/Partitioned Scheduling
> +
> +We have clustered scheduling in case the set of processors of a system is
> +partitioned into non-empty pairwise-disjoint subsets. These subsets are 
> called
> +clusters.  Clusters with a cardinality of one are partitions.  Each cluster 
> is
> +owned by exactly one scheduler instance.
> +
> +Clustered/partitioned scheduling helps to control the worst-case latencies in
> +the system, see @cite{Brandenburg, Björn B.: Scheduling and Locking in
> +Multiprocessor Real-Time Operating Systems. PhD thesis, 2011.
> +@uref{http://www.cs.unc.edu/~bbb/diss/brandenburg-diss.pdf}}.  The goal is to
> +reduce the amount of shared state in the system and thus prevention of lock
> +contention. Modern multi-processor systems tend to have several layers of 
> data
> +and instruction caches. With clustered/partitioned 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-partition synchronization. In RTEMS 
> there
> +are currently three means available
> +
> +@itemize @bullet
> +@item events,
> +@item message queues, and
> +@item semaphores using the @ref{Semaphore Manager Multiprocessor Resource
> +Sharing Protocol} (MrsP).
> +@end itemize
> +
> +The clustered/partitioned scheduling approach enables separation of functions
> +with real-time requirements and functions that profit from fairness and high
> +throughput provided the scheduler instances are fully decoupled and adequate
> +intra-partition synchronization primitives are used.  This is work in 
> progress.
inter-partition? inter-partition doesn't make sense. Also, to be
general, it should really be inter-cluster, which goes for the above
use of "inter-partition" as well. Because of the use of partition in
Partitioned Scheduling, we have to be careful about the use of
partition in other places related to SMP scheduling, unfortunately.

> +
> +For the configuration of clustered/partitioned schedulers see 
> @ref{Configuring
> +a System Configuring Clustered/Partitioned Schedulers}.
> +
> +To set the scheduler of a task see @ref{Symmetric Multiprocessing Services
> +SCHEDULER_IDENT - Get ID of a scheduler} and @ref{Symmetric Multiprocessing
> +Services TASK_SET_SCHEDULER - Set scheduler of a task}.
> +
>  @subsection Scheduler Helping Protocol
>
>  The scheduler provides a helping protocol to support locking protocols like
> --
> 1.8.4.5
>
>
> _______________________________________________
> devel mailing list
> devel@rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to