The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### NAME

> sched.h - execution scheduling (REALTIME)

#### SYNOPSIS

> `[PS] #include <sched.h>`

#### DESCRIPTION

> The <sched.h> header shall define the sched_param structure, which contains the scheduling parameters required for implementation of each supported scheduling policy. This structure shall contain at least the following member:

>     [THR]
>     int       sched_priority        Process or thread execution scheduling priority.

> [SS|TSP] In addition, if _POSIX_SPORADIC_SERVER or _POSIX_THREAD_SPORADIC_SERVER is defined, the sched_param structure defined in <sched.h> shall contain the following members in addition to those specified above:

>     int             sched_ss_low_priority Low scheduling priority for
>                                           sporadic server.
>     struct timespec sched_ss_repl_period  Replenishment period for
>                                           sporadic server.
>     struct timespec sched_ss_init_budget  Initial budget for sporadic server.
>     int             sched_ss_max_repl     Maximum pending replenishments for
>                                           sporadic server.

> Each process [THR] or thread is controlled by an associated scheduling policy and priority. Associated with each policy is a priority range. Each policy definition specifies the minimum priority range for that policy. The priority ranges for each policy may overlap the priority ranges of other policies.

> Four scheduling policies are defined; others may be defined by the implementation. The four standard policies are indicated by the values of the following symbolic constants:

> SCHED_FIFO
>   First in-first out (FIFO) scheduling policy.
> SCHED_RR
>   Round robin scheduling policy.
> SCHED_SPORADIC
>   [SS|TSP] Sporadic server scheduling policy.
> SCHED_OTHER
>   Another scheduling policy.

> The values of these constants are distinct.

> The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.

>     [TPS]
>     int    sched_get_priority_max(int);
>     int    sched_get_priority_min(int);

>     int    sched_getparam(pid_t, struct sched_param *);
>     int    sched_getscheduler(pid_t);
>     [TPS]
>     int    sched_rr_get_interval(pid_t, struct timespec *);

>     int    sched_setparam(pid_t, const struct sched_param *);
>     int    sched_setscheduler(pid_t, int, const struct sched_param *);
>     [THR]
>     int    sched_yield(void);

> Inclusion of the <sched.h> header may make visible all symbols from the <time.h> header.

The following sections are informative.

#### APPLICATION USAGE

> None.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> <time.h>

#### CHANGE HISTORY

> First released in Issue 5. Included for alignment with the POSIX Realtime Extension.

#### Issue 6

> The <sched.h> header is marked as part of the Process Scheduling option.

> Sporadic server members are added to the sched_param structure, and the SCHED_SPORADIC scheduling policy is added for alignment with IEEE Std 1003.1d-1999.

> IEEE PASC Interpretation 1003.1 #108 is applied, correcting the sched_param structure whose members sched_ss_repl_period and sched_ss_init_budget should be type struct timespec and not timespec.

> Symbols from <time.h> may be made visible when <sched.h> is included.

> IEEE Std 1003.1-2001/Cor 1-2002, items XSH/TC1/D6/52 and XSH/TC1/D6/53 are applied, aligning the function prototype shading and margin codes with the System Interfaces volume of IEEE Std 1003.1-2001.

> IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/23 is applied, updating the DESCRIPTION to differentiate between thread and process execution.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]