The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 The IEEE and The Open Group

#### NAME

> sched.h - execution scheduling

#### SYNOPSIS

> `#include <sched.h>`

#### DESCRIPTION

> [PS] The <sched.h> header shall define the pid_t type as described in <sys/types.h>.

> [SS|TSP] The <sched.h> header shall define the time_t type as described in <sys/types.h>.

> The <sched.h> header shall define the timespec structure as described in <time.h>.

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

>     int       sched_priority        Process or thread execution scheduling priority.

> [SS|TSP] The sched_param structure defined in <sched.h> shall include 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 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
>   [PS|TPS] First in-first out (FIFO) scheduling policy.
> SCHED_RR
>   [PS|TPS] Round robin scheduling policy.
> SCHED_SPORADIC
>   [SS|TSP] Sporadic server scheduling policy.
> SCHED_OTHER
>   [PS|TPS] 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.

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

>     [PS]
>     int    sched_getparam(pid_t, struct sched_param *);
>     int    sched_getscheduler(pid_t);

>     [PS|TPS]
>     int    sched_rr_get_interval(pid_t, struct timespec *);

>     [PS]
>     int    sched_setparam(pid_t, const struct sched_param *);
>     int    sched_setscheduler(pid_t, int, const struct sched_param *);

>     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

> <sys/types.h>, <time.h>

> XSH sched_get_priority_max, sched_getparam, sched_getscheduler, sched_rr_get_interval, sched_setparam, sched_setscheduler, sched_yield

#### 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.

#### Issue 7

> SD5-XBD-ERN-13 is applied.

> Austin Group Interpretation 1003.1-2001 #064 is applied, correcting the options markings.

> The <sched.h> headers is moved from the Threads option to the Base.

> Declarations for the pid_t and time_t types and the timespec structure are added.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]