Oracle® Solaris 11.2 Programming Interfaces Guide

Exit Print View

Updated: July 2014
 
 

Commands and Interfaces

The following figure illustrates the default process priorities.

Figure 3-1  Process Priorities (Programmer's View)

image:Real-time threads have priority over system threads. System threads have priority over time-sharing threads. Each class has a separate run queue.

A process priority has meaning only in the context of a scheduler class. You specify a process priority by specifying a class and a class-specific priority value. The class and class-specific value are mapped by the system into a global priority that the system uses to schedule processes.

A system administrator's view of priorities is different from the view of a user or programmer. When configuring scheduler classes, an administrator deals directly with global priorities. The system maps priorities supplied by users into these global priorities. See Displaying and Managing Process Class Information in Managing System Information, Processes, and Performance in Oracle Solaris 11.2 for more information about priorities.

The ps(1) command with -cel options reports global priorities for all active processes. The priocntl(1) command reports the class-specific priorities that users and programmers use.

The priocntl(1) command and the priocntl(2) and priocntlset(2) interfaces are used to set or retrieve scheduler parameters for processes. Setting priorities generally follows the same sequence for the command and both interfaces:

  1. Specify the target processes.

  2. Specify the scheduler parameters that you want for those processes.

  3. Execute the command or interface to set the parameters for the processes.

Process IDs are basic properties of UNIX processes. See Intro(2) for more information. The class ID is the scheduler class of the process. priocntl(2) works only for the time-sharing and the real-time classes, not for the system class.