Changeset 955d366 in rtems-docs


Ignore:
Timestamp:
Oct 20, 2018, 5:30:42 PM (6 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
21fe48e
Parents:
ab83940
git-author:
Sebastian Huber <sebastian.huber@…> (10/20/18 17:30:42)
git-committer:
Sebastian Huber <sebastian.huber@…> (10/26/18 17:11:45)
Message:

c-user: Clarify scheduler configuration

Location:
c-user
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • c-user/configuring_a_system.rst

    rab83940 r955d366  
    14531453DESCRIPTION:
    14541454    ``CONFIGURE_MAXIMUM_PROCESSORS`` must be set to the maximum number of
    1455     processors an applicaiton intends to use.  The number of acually available
     1455    processors an application intends to use.  The number of actually available
    14561456    processors depends on the hardware and may be less.  It is recommended to
    14571457    use the smallest value suitable for the application in order to save
     
    32863286
    32873287This section defines the configuration parameters related to selecting a
    3288 scheduling algorithm for an application.  For the :ref:`schedulers built into
     3288scheduling algorithm for an application.  A scheduler configuration is optional
     3289and only necessary in very specific circumstances.  A normal application
     3290configuration does not need any of the configuration options described in this
     3291section.  By default, the :ref:`Deterministic Priority Scheduler
     3292<SchedulerPriority>` algorithm is used in uniprocessor configurations.  In case
     3293SMP is enabled and the configured maximum processors
     3294(:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`) is greater
     3295than one, then the :ref:`Earliest Deadline First (EDF) SMP Scheduler
     3296<SchedulerSMPEDF>` is selected as the default scheduler algorithm.
     3297
     3298For the :ref:`schedulers built into
    32893299RTEMS <SchedulingConcepts>`, the configuration is straightforward.  All that is
    32903300required is to define the configuration macro which specifies which scheduler
     
    33193329
    33203330NOTES:
     3331    This scheduler configuration option is an advanced configuration option.
     3332    Think twice before you use it.
     3333
    33213334    In case no explicit :ref:`clustered scheduler configuration
    33223335    <ConfigurationSchedulersClustered>` is present, then it is used as the
     
    33473360
    33483361NOTES:
     3362    This scheduler configuration option is an advanced configuration option.
     3363    Think twice before you use it.
     3364
    33493365    In case no explicit :ref:`clustered scheduler configuration
    33503366    <ConfigurationSchedulersClustered>` is present, then it is used as the
     
    33753391
    33763392NOTES:
     3393    This scheduler configuration option is an advanced configuration option.
     3394    Think twice before you use it.
     3395
    33773396    This scheduler algorithm is only available when RTEMS is built with SMP
    33783397    support enabled.
     
    33823401    scheduler for up to 32 processors.
    33833402
    3384     This scheduler algorithm is the default in SMP configurations and is only
    3385     selected when :ref:`CONFIGURE_MAXIMUM_PROCESSORS
    3386     <CONFIGURE_MAXIMUM_PROCESSORS>` is greater than one.
     3403    This scheduler algorithm is the default in SMP configurations if
     3404    :ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>` is
     3405    greater than one.
    33873406
    33883407.. index:: CONFIGURE_SCHEDULER_NAME
     
    34193438
    34203439NOTES:
    3421     None.
     3440    This scheduler configuration option is an advanced configuration option.
     3441    Think twice before you use it.
    34223442
    34233443.. index:: CONFIGURE_SCHEDULER_PRIORITY
     
    34463466
    34473467NOTES:
     3468    This scheduler configuration option is an advanced configuration option.
     3469    Think twice before you use it.
     3470
    34483471    In case no explicit :ref:`clustered scheduler configuration
    34493472    <ConfigurationSchedulersClustered>` is present, then it is used as the
     
    34793502
    34803503NOTES:
     3504    This scheduler configuration option is an advanced configuration option.
     3505    Think twice before you use it.
     3506
    34813507    This scheduler algorithm is only available when RTEMS is built with SMP
    34823508    support enabled.
     
    35103536
    35113537NOTES:
     3538    This scheduler configuration option is an advanced configuration option.
     3539    Think twice before you use it.
     3540
    35123541    This scheduler algorithm is only available when RTEMS is built with SMP
    35133542    support enabled.
     
    35413570
    35423571NOTES:
     3572    This scheduler configuration option is an advanced configuration option.
     3573    Think twice before you use it.
     3574
    35433575    In case no explicit :ref:`clustered scheduler configuration
    35443576    <ConfigurationSchedulersClustered>` is present, then it is used as the
     
    35703602
    35713603NOTES:
     3604    This scheduler configuration option is an advanced configuration option.
     3605    Think twice before you use it.
     3606
    35723607    This scheduler algorithm is only available when RTEMS is built with SMP
    35733608    support enabled.
     
    36133648
    36143649NOTES:
     3650    This scheduler configuration option is an advanced configuration option.
     3651    Think twice before you use it.
     3652
    36153653    At this time, the mechanics and requirements for writing a new scheduler
    36163654    are evolving and not fully documented.  It is recommended that you look at
     
    36253663=================================
    36263664
     3665A clustered scheduler configuration is optional.  It is an advanced
     3666configuration area and only necessary in specific circumstances.
     3667
    36273668Clustered scheduling helps to control the worst-case latencies in a
    36283669multiprocessor system (SMP).  The goal is to reduce the amount of shared state
     
    36373678owned by exactly one scheduler.
    36383679
    3639 A clustered scheduler configuration is optional.  By default, up to 32
    3640 processors are managed by the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`.  In
    3641 order to use clustered scheduling the application designer has to answer two
     3680In order to use clustered scheduling the application designer has to answer two
    36423681questions.
    36433682
  • c-user/scheduling_concepts.rst

    rab83940 r955d366  
    240240-------------------------------------
    241241
    242 A job-level fixed-priority scheduler using the Earliest Deadline First (EDF)
    243 method.  By convention, the maximum priority level is
    244 :math:`min(INT\_MAX, 2^{62} - 1)` for background tasks.  The tasks with an
    245 active deadline have a higher priority than the background tasks.  This
    246 scheduler supports task processor affinities of one-to-one and one-to-all, e.g.
    247 a task can execute on exactly one processor or all processors managed by the
    248 scheduler instance.  This is the default scheduler in SMP configurations if
    249 more than one processor is configured.  The processor affinity set of a task
    250 must contain all online processors to select the one-to-all affinity.  This is
    251 to avoid pathological cases if processors are added/removed to/from the
    252 scheduler instance at run-time.  In case the processor affinity set contains
    253 not all online processors, then a one-to-one affinity will be used selecting
    254 the processor with the largest index within the set of processors currently
    255 owned by the scheduler instance.
     242This is a job-level fixed-priority scheduler using the Earliest Deadline First
     243(EDF) method.  By convention, the maximum priority level is
     244:math:`min(INT\_MAX, 2^{62} - 1)` for background tasks.  Tasks without an
     245active deadline are background tasks.  In case deadlines are not used, then the
     246EDF scheduler behaves exactly like a fixed-priority scheduler.  The tasks with
     247an active deadline have a higher priority than the background tasks.  This
     248scheduler supports :ref:`task processor affinities <rtems_task_set_affinity>`
     249of one-to-one and one-to-all, e.g.  a task can execute on exactly one processor
     250or all processors managed by the scheduler instance.  The processor affinity
     251set of a task must contain all online processors to select the one-to-all
     252affinity.  This is to avoid pathological cases if processors are added/removed
     253to/from the scheduler instance at run-time.  In case the processor affinity set
     254contains not all online processors, then a one-to-one affinity will be used
     255selecting the processor with the largest index within the set of processors
     256currently owned by the scheduler instance.  This scheduler algorithm supports
     257:ref:`thread pinning <ThreadPinning>`.  The ready queues use a red-black tree
     258with the task priority as the key.
     259
     260This scheduler algorithm is the default scheduler in SMP configurations if more
     261than one processor is configured (:ref:`CONFIGURE_MAXIMUM_PROCESSORS
     262<CONFIGURE_MAXIMUM_PROCESSORS>`).
    256263
    257264.. _SchedulerSMPPriority:
  • c-user/symmetric_multiprocessing_services.rst

    rab83940 r955d366  
    811811   development mailing list in case you want to use it.
    812812
     813.. _ThreadPinning:
     814
    813815Thread Pinning
    814816--------------
Note: See TracChangeset for help on using the changeset viewer.