Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

dispadmin(1M)

priocntl(1)

priocntl(2)

master(4)

mkboot(1M)





   rt_dptbl(4)                                                     rt_dptbl(4)


   NAME
         rt_dptbl - real-time dispatcher parameter table

   DESCRIPTION
         The process scheduler (or dispatcher) is the portion of the kernel
         that controls allocation of the CPU to processes.  The scheduler
         supports the notion of scheduling classes where each class defines a
         scheduling policy, used to schedule processes within that class.
         Associated with each scheduling class is a set of priority queues on
         which ready to run processes are linked.  These priority queues are
         mapped by the system configuration into a set of global scheduling
         priorities which are available to processes within the class.  (The
         dispatcher always selects for execution the process with the highest
         global scheduling priority in the system.)  The priority queues
         associated with a given class are viewed by that class as a
         contiguous set of priority levels numbered from 0 (lowest priority)
         to n (highest priority-a configuration dependent value).  The set of
         global scheduling priorities that the queues for a given class are
         mapped into might not start at zero and might not be contiguous
         (depending on the configuration).

         The real-time class maintains an in-core table, with an entry for
         each priority level, giving the properties of that level.  This table
         is called the real-time dispatcher parameter table (rt_dptbl).  The
         rt_dptbl consists of an array of parameter structures (struct
         rt_dpent), one for each of the n priority levels.  The properties of
         a given priority level i are specified by the ith parameter structure
         in this array (rt_dptbli).

         A parameter structure consists of the following members.  These are
         also described in the /usr/include/sys/rt.h header file.

         rt_globpri
                 The global scheduling priority associated with this priority
                 level.  The mapping between real-time priority levels and
                 global scheduling priorities is determined at boot time by
                 the system configuration.  The rt_globpri values cannot be
                 changed with dispadmin(1M).

         rt_quantum
                 The length of the time quantum allocated to processes at this
                 level in ticks (HZ).  The time quantum value is only a
                 default or starting value for processes at a particular level
                 as the time quantum of a real-time process can be changed by
                 the user with the priocntl command or the priocntl system
                 call.

         An administrator can affect the behavior of the real-time portion of
         the scheduler by reconfiguring the rt_dptbl.  There are two methods
         available for doing this.



   7/91                                                                 Page 1









   rt_dptbl(4)                                                     rt_dptbl(4)


   MASTER FILE
         The rt_dptbl can be reconfigured at boot time by specifying the
         desired values in the rt master file and reconfiguring the system
         using the auto-configuration boot procedure; see mkboot(1M) and
         master(4).  This is the only method that can be used to change the
         number of real-time priority levels or the set of global scheduling
         priorities used by the real-time class.

   DISPADMIN CONFIGURATION FILE
         The rt_quantum values in the rt_dptbl can be examined and modified on
         a running system using the dispadmin(1M) command.  Invoking dispadmin
         for the real-time class allows the administrator to retrieve the
         current rt_dptbl configuration from the kernel's in-core table, or
         overwrite the in-core table with values from a configuration file.
         The configuration file used for input to dispadmin must conform to
         the specific format described below.

         Blank lines are ignored and any part of a line to the right of a #
         symbol is treated as a comment.  The first non-blank, non-comment
         line must indicate the resolution to be used for interpreting the
         time quantum values.  The resolution is specified as

               RES=res

         where res is a positive integer between 1 and 1,000,000,000 inclusive
         and the resolution used is the reciprocal of res in seconds.  (For
         example, RES=1000 specifies millisecond resolution.)  Although very
         fine (nanosecond) resolution may be specified, the time quantum
         lengths are rounded up to the next integral multiple of the system
         clock's resolution.

         The remaining lines in the file are used to specify the rt_quantum
         values for each of the real-time priority levels.  The first line
         specifies the quantum for real-time level 0, the second line
         specifies the quantum for real-time level 1, etc.  There must be
         exactly one line for each configured real-time priority level.  Each
         rt_quantum entry must be either a positive integer specifying the
         desired time quantum (in the resolution given by res), or the symbol
         RT_TQINF indicating an infinite time quantum for that level.

   EXAMPLE
         The following excerpt from a dispadmin configuration file illustrates
         the format.  Note that for each line specifying a time quantum there
         is a comment indicating the corresponding priority level.  These
         level numbers indicate priority within the real-time class, and the
         mapping between these real-time priorities and the corresponding
         global scheduling priorities is determined by the configuration
         specified in the rt master file.  The level numbers are strictly for
         the convenience of the administrator reading the file and, as with
         any comment, they are ignored by dispadmin on input.  dispadmin
         assumes that the lines in the file are ordered by consecutive,


   Page 2                                                                 7/91









   rt_dptbl(4)                                                     rt_dptbl(4)


         increasing priority level (from 0 to the maximum configured real-time
         priority).  The level numbers in the comments should normally agree
         with this ordering; if for some reason they don't, however, dispadmin
         is unaffected.

















































   7/91                                                                 Page 3









   rt_dptbl(4)                                                     rt_dptbl(4)


               # Real-Time Dispatcher Configuration File
               RES=1000

               #     TIME QUANTUM                     PRIORITY
               #     (rt_quantum)                       LEVEL
                           100                     #      0
                           100                     #      1
                           100                     #      2
                           100                     #      3
                           100                     #      4
                           100                     #      5
                            90                     #      6
                            90                     #      7
                            .                      .      .
                            .                      .      .
                            .                      .      .
                            10                     #     58
                            10                     #     59

   FILES
         /usr/include/sys/rt.h

   SEE ALSO
         dispadmin(1M), priocntl(1), priocntl(2), master(4), mkboot(1M)

         ``Scheduler'' chapter in the System Administrator's Guide



























   Page 4                                                                 7/91





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026