[PATCH 1/4] smp: Documentation

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Sep 3 12:01:20 UTC 2015


---
 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.
 
+ at 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.
+ at 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
+
+ at itemize @bullet
+ at item events,
+ at item message queues, and
+ at item semaphores using the @ref{Semaphore Manager Multiprocessor Resource
+Sharing Protocol} (MrsP).
+ at 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.
+
+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



More information about the devel mailing list