Programming Interfaces Guide

Interface Calls That Control Scheduling

The following interface calls control process scheduling.

Using priocntl

Control over scheduling of active classes is done with priocntl(2). Class attributes are inherited through fork(2) and exec(2), along with scheduling parameters and permissions required for priority control. This inheritance happens with both the RT and the TS classes.

priocntl(2) is the interface for specifying a real-time process, a set of processes, or a class to which the system call applies. priocntlset(2) also provides the more general interface for specifying an entire set of processes to which the system call applies.

The command arguments of priocntl(2) can be one of: PC_GETCID, PC_GETCLINFO, PC_GETPARMS, or PC_SETPARMS. The real or effective ID of the calling process must match the real or effective ID of the affected processes, or must have superuser privilege.

PC_GETCID

This command takes the name field of a structure that contains a recognizable class name. The class ID and an array of class attribute data are returned.

PC_GETCLINFO

This command takes the ID field of a structure that contains a recognizable class identifier. The class name and an array of class attribute data are returned.

PC_GETPARMS

This command returns the scheduling class identifier or the class specific scheduling parameters of one of the specified processes. Even though idtype and id might specify a big set, PC_GETPARMS returns the parameter of only one process. The class selects the process.

PC_SETPARMS

This command sets the scheduling class or the class-specific scheduling parameters of the specified process or processes.

Other interface calls

sched_get_priority_max

Returns the maximum values for the specified policy.

sched_get_priority_min

Returns the minimum values for the specified policy. For more information, see the sched_get_priority_max(3R) man page.

sched_rr_get_interval

Updates the specified timespec structure to the current execution time limit. For more information, see the sched_get_priority_max(3RT) man page.

sched_setparam, sched_getparam

Sets or gets the scheduling parameters of the specified process.

sched_yield

Blocks the calling process until the calling process returns to the head of the process list.