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