Changeset db9964f1 in rtems


Ignore:
Timestamp:
Nov 24, 2010, 3:52:21 PM (9 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.11, master
Children:
95ec9e98
Parents:
0faa9dad
Message:

2010-11-24 Gedare Bloom <giddyup44@…>

PR 1647/cpukit

  • user/conf.t, user/schedule.t: Update documentation to reflect refactoring of SuperCore? to add Scheduler and ability for user to configure a scheduler.
Location:
doc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • doc/ChangeLog

    r0faa9dad rdb9964f1  
     12010-11-24      Gedare Bloom <giddyup44@yahoo.com>
     2
     3        PR 1647/cpukit
     4        * user/conf.t, user/schedule.t: Update documentation to reflect
     5        refactoring of SuperCore to add Scheduler and ability for user to
     6        configure a scheduler.
     7
    182010-11-11      Joel Sherrill <joel.sherrilL@OARcorp.com>
    29
  • doc/user/conf.t

    r0faa9dad rdb9964f1  
    2525the length of each clock tick, the maximum number of each RTEMS
    2626object that can be created, the application initialization tasks,
     27the task scheduling algorithm to be used,
    2728and the device drivers in the application.  This information
    2829is placed in data structures that are given to RTEMS at
     
    393394@c
    394395@c
     396@subsection Scheduler Algorithm Configuration
     397This section defines the configuration parameters related to selecting
     398a scheduling algorithm for an application.  Regardless of whether
     399@code{CONFIGURE_SCHEDULER_POLICY} is defined, if none of the other
     400configuration parameters are set, then @code{rtems/confdefs.h} will define
     401@code{CONFIGURE_SCHEDULER_PRIORITY} and will (re)define
     402@code{CONFIGURE_SCHEDULER_POLICY} as @code{_Scheduler_Priority}. That is,
     403@code{CONFIGURE_SCHEDULER_PRIORITY} is the default scheduling algorithm.
     404
     405@itemize @bullet
     406@findex CONFIGURE_SCHEDULER_POLICY
     407@item @code{CONFIGURE_SCHEDULER_POLICY} is defined to specify which
     408scheduling algorithm an application will use.  If it is undefined,
     409then @code{rtems/confdefs.h} will define it based on the definition
     410of the following configuration parameters.
     411Valid values for this configuration parameter are:
     412@code{_Scheduler_USER},
     413@code{_Scheduler_Priority}.
     414
     415@findex CONFIGURE_SCHEDULER_USER
     416@item @code{CONFIGURE_SCHEDULER_USER} is defined if the application
     417provides its own scheduling algorithm. If @code{CONFIGURE_SCHEDULER_USER} is
     418defined then @code{CONFIGURE_SCHEDULER_ENTRY_USER} must be defined with the
     419name of the application's initialization function.  If both
     420configuration parameters are defined and @code{CONFIGURE_SCHEDULER_POLICY}
     421is undefined, then @code{CONFIGURE_SCHEDULER_POLICY} will be be defined as
     422@code{_Scheduler_USER}.
     423
     424@findex CONFIGURE_SCHEDULER_ALL
     425@item @code{CONFIGURE_SCHEDULER_ALL} is defined if the application
     426chooses to include all of the RTEMS-provided schedulers. 
     427@code{CONFIGURE_SCHEDULER_ALL} will define all of the following configuration
     428parameters and will use @code{CONFIGURE_SCHEDULER_POLICY} to select the
     429algorithm to use. If @code{CONFIGURE_SCHEDULER_POLICY} is not defined, then
     430@code{rtems/confdefs.h} will define it as @code{_Scheduler_Priority}.
     431
     432@findex CONFIGURE_SCHEDULER_PRIORITY
     433@item @code{CONFIGURE_SCHEDULER_PRIORITY} is defined if the application
     434will use the Priority Scheduling algorithm.
     435If none of the previous configuration parameters are defined by the
     436application, then @code{rtems/confdefs.h} will define
     437@code{CONFIGURE_SCHEDULER_POLICY} as @code{_Scheduler_PRIORITY}.
     438
     439@end itemize
     440
     441@c
     442@c
     443@c
    395444@subsection Device Driver Table
    396445
     
    817866  uint32_t                        microseconds_per_tick;
    818867  uint32_t                        ticks_per_timeslice;
     868  uint32_t                        scheduler_policy;
    819869  void                          (*idle_task)( void );
    820870  uint32_t                        idle_task_stack_size;
     
    875925an RTEMS application, the value for this field corresponds
    876926to the setting of the macro @code{CONFIGURE_TICKS_PER_TIMESLICE}.
     927
     928@item scheduler_policy
     929is the algorithm to use for task scheduling.
     930When using the @code{rtems/confdefs.h} mechanism for configuring
     931an RTEMS application, the value for this field corresponds
     932to the setting of the macro @code{CONFIGURE_SCHEDULER_POLICY}.
    877933
    878934@item idle_task
  • doc/user/schedule.t

    r0faa9dad rdb9964f1  
    3131scheduler's sole purpose is to allocate the all important
    3232resource of processor time to the various tasks competing for
    33 attention.  The RTEMS scheduler allocates the processor using a
     33attention. 
     34
     35@section Scheduling Algorithms
     36
     37@cindex scheduling algorithms
     38
     39RTEMS provides multiple possible scheduling algorithms, each
     40of which are appropriate to different use case scenarios.
     41The classic RTEMS scheduling algorithm -- the only
     42algorithm available in RTEMS 4.10 and earlier -- is the priority
     43scheduling algorithm.  When not specified, the priority scheduling
     44algorithm can be assumed.
     45
     46RTEMS currently supports the following scheduling algorithms:
     47
     48@itemize @bullet
     49@item Priority scheduling
     50@end itemize
     51
     52@subsection Priority Scheduling
     53
     54@cindex priority scheduling
     55
     56The RTEMS scheduler allocates the processor using a
    3457priority-based, preemptive algorithm augmented to provide
    3558round-robin characteristics within individual priority groups.
     
    5174events.
    5275
     76Priority scheduling is the most commonly used scheduling algorithm.
     77It should be used by applications in which multiple tasks contend for
     78CPU time or other resources and there is a need to ensure certain tasks
     79are given priority over other tasks.
     80
    5381@section Scheduling Mechanisms
    5482
     
    82110@cindex task priority
    83111
     112This mechanism affects the following scheduling algorithms:
     113@itemize @bullet
     114@item Priority scheduling
     115@end itemize
     116
    84117The most significant of these mechanisms is the
    85118ability for the user to assign a priority level to each
     
    105138@cindex preemption
    106139
     140This mechanism affects the following scheduling algorithms:
     141@itemize @bullet
     142@item Priority scheduling
     143@end itemize
     144
    107145Another way the user can alter the basic scheduling
    108146algorithm is by manipulating the preemption mode flag
     
    120158@cindex timeslicing
    121159@cindex round robin scheduling
     160
     161This mechanism affects the following scheduling algorithms:
     162@itemize @bullet
     163@item Priority scheduling
     164@end itemize
    122165
    123166Timeslicing or round-robin scheduling is an
     
    142185@cindex manual round robin
    143186
     187This mechanism affects the following scheduling algorithms:
     188@itemize @bullet
     189@item Priority scheduling
     190@end itemize
     191
    144192The final mechanism for altering the RTEMS scheduling
    145193algorithm is called manual round-robin.  Manual round-robin is
     
    152200of the processor.
    153201
    154 @subsection Dispatching Tasks
     202@section Dispatching Tasks
    155203
    156204@cindex dispatching
Note: See TracChangeset for help on using the changeset viewer.