Print this page
9842 man page typos and spelling


  14 .fi
  15 
  16 .LP
  17 .nf
  18 \fBpriocntl\fR \fB-d\fR [\fB-i\fR \fIidtype\fR] [\fIidlist\fR]
  19 .fi
  20 
  21 .LP
  22 .nf
  23 \fBpriocntl\fR \fB-s\fR [\fB-c\fR \fIclass\fR] [\fIclass-specific\fR \fIoptions\fR]
  24      [\fB-i\fR \fIidtype\fR] [\fIidlist\fR]
  25 .fi
  26 
  27 .LP
  28 .nf
  29 \fBpriocntl\fR \fB-e\fR [\fB-c\fR \fIclass\fR] [\fIclass-specific\fR \fIoptions\fR] \fIcommand\fR
  30      [\fIargument(s)\fR]
  31 .fi
  32 
  33 .SH DESCRIPTION
  34 .sp
  35 .LP
  36 The \fBpriocntl\fR command displays or sets scheduling parameters of the
  37 specified process(es). It can also be used to display the current configuration
  38 information for the system's process scheduler or execute a command with
  39 specified scheduling parameters.
  40 .sp
  41 .LP
  42 Processes fall into distinct classes with a separate scheduling policy applied
  43 to each class. The process classes currently supported are the real-time class,
  44 time-sharing class, interactive class, fair-share class, and the fixed priority
  45 class. The characteristics of these classes and the class-specific options they
  46 accept are described below in the USAGE section under the headings \fBReal-Time
  47 Class\fR, \fBTime-Sharing Class\fR, \fBInter-Active Class\fR, \fBFair-Share
  48 Class\fR, and \fBFixed-Priority Class\fR. With appropriate permissions, the
  49 \fBpriocntl\fR command can change the class and other scheduling parameters
  50 associated with a running process.
  51 .sp
  52 .LP
  53 In the default configuration, a runnable real-time process runs before any
  54 other process. Therefore, inappropriate use of real-time processes can have a


 154 information.
 155 .sp
 156 .LP
 157 The command
 158 .sp
 159 .in +2
 160 .nf
 161 \fBpriocntl -e [-c \fIclass\fR\fR\fB]\fR\fB [\fIclass-specific options\fR] \fIcommand\fR \e
 162      [\fIargument...\fR]\fR
 163 .fi
 164 .in -2
 165 .sp
 166 
 167 .sp
 168 .LP
 169 executes the specified command with the class and scheduling parameters
 170 specified on the command line (\fIarguments\fR are the arguments to the
 171 command). If the \fB-c\fR \fIclass\fR option is omitted the command is run in
 172 the user's current class.
 173 .SH OPTIONS
 174 .sp
 175 .LP
 176 The following options are supported:
 177 .sp
 178 .ne 2
 179 .na
 180 \fB\fB-c\fR \fIclass\fR\fR
 181 .ad
 182 .RS 13n
 183 Specifies the \fIclass\fR to be set. (The valid \fIclass\fR arguments are
 184 \fBRT\fR for real-time, \fBTS\fR for time-sharing, \fBIA\fR for inter-active,
 185 \fBFSS\fR for fair-share, or \fBFX\fR for fixed-priority.) If the specified
 186 class is not already configured, it is automatically configured.
 187 .RE
 188 
 189 .sp
 190 .ne 2
 191 .na
 192 \fB\fB-d\fR\fR
 193 .ad
 194 .RS 13n


 479 .ne 2
 480 .na
 481 \fB\fB-p\fR \fIfxupri\fR\fR
 482 .ad
 483 .RS 16n
 484 Sets the user priority of the specified process(es) to \fIfxupri\fR.
 485 .RE
 486 
 487 .sp
 488 .ne 2
 489 .na
 490 \fB\fB-t\fR \fItqntm\fR\fR
 491 .ad
 492 .RS 16n
 493 [\fB-r\fR \fIres\fR] Sets the time quantum of the specified process(es) to
 494 \fItqntm\fR. You can optionally specify a resolution as explained below.
 495 .RE
 496 
 497 .SH USAGE
 498 .SS "Real-Time Class"
 499 .sp
 500 .LP
 501 The real-time class provides a fixed priority preemptive scheduling policy for
 502 those processes requiring fast and deterministic response and absolute
 503 user/application control of scheduling priorities. If the real-time class is
 504 configured in the system, it should have exclusive control of the highest range
 505 of scheduling priorities on the system. This ensures that a runnable real-time
 506 process is given \fBCPU\fR service before any process belonging to any other
 507 class.
 508 .sp
 509 .LP
 510 The real-time class has a range of real-time priority (\fIrtpri\fR) values that
 511 can be assigned to processes within the class. Real-time priorities range from
 512 0 to \fIx\fR, where the value of \fIx\fR is configurable and can be displayed
 513 for a specific installation that has already configured a real-time scheduler,
 514 by using the command
 515 .sp
 516 .in +2
 517 .nf
 518 \fBpriocntl -l\fR
 519 .fi


 594 the time quantum signal \fItqsig\fR denotes no signal delivery. A positive
 595 value denotes the delivery of the signal specified by the value. Like
 596 \fBkill\fR(1) and other commands operating on signals, the \fB-q\fR \fItqsig\fR
 597 option is also able to handle symbolically named signals, like \fBXCPU\fR or
 598 \fBKILL\fR.
 599 .sp
 600 .LP
 601 In order to change the class of a process to real-time (from any other class),
 602 the user invoking \fBpriocntl\fR must have super-user privilege. In order to
 603 change the \fIrtpri\fR value or time quantum of a real-time process, the user
 604 invoking \fBpriocntl\fR must either be super-user, or must currently be in the
 605 real-time class (shell running as a real-time process) with a real or effective
 606 user \fBID\fR matching the real or effective user \fBID\fR of the target
 607 process.
 608 .sp
 609 .LP
 610 The real-time priority, time quantum, and time quantum signal are inherited
 611 across the \fBfork\fR(2) and \fBexec\fR(2) system calls. When using the time
 612 quantum signal with a user defined signal handler across the \fBexec\fR(2)
 613 system call, the new image must install an appropriate user defined signal
 614 handler before the time quantum expires. Otherwise, unpredicable behavior would
 615 result.
 616 .SS "Time-Sharing Class"
 617 .sp
 618 .LP
 619 The time-sharing scheduling policy provides for a fair and effective allocation
 620 of the \fBCPU\fR resource among processes with varying \fBCPU\fR consumption
 621 characteristics. The objectives of the time-sharing policy are to provide good
 622 response time to interactive processes and good throughput to \fBCPU\fR-bound
 623 jobs, while providing a degree of user/application control over scheduling.
 624 .sp
 625 .LP
 626 The time-sharing class has a range of time-sharing user priority (\fItsupri\fR)
 627 values that can be assigned to processes within the class. User priorities
 628 range from \(mi\fIx\fR to +\fIx\fR, where the value of \fIx\fR is configurable.
 629 The range for a specific installation can be displayed by using the command
 630 .sp
 631 .in +2
 632 .nf
 633 \fBpriocntl -l\fR
 634 .fi
 635 .in -2
 636 .sp
 637 


 683 \fItsuprilim\fR (and/or set the \fItsuprilim\fR below the \fItsupri\fR) result
 684 in the \fItsupri\fR being set equal to the \fItsuprilim\fR.
 685 .sp
 686 .LP
 687 Any combination of the \fB-m\fR and \fB-p\fR options can be used with
 688 \fBpriocntl\fR \fB-s\fR or \fBpriocntl\fR \fB-e\fR for the time-sharing class.
 689 If an option is omitted and the process is currently time-sharing, the
 690 associated parameter is normally unaffected. The exception is when the \fB-p\fR
 691 option is omitted and \fB-m\fR is used to set a \fItsuprilim\fR below the
 692 current \fItsupri\fR. In this case, the \fItsupri\fR is set equal to the
 693 \fItsuprilim\fR which is being set. If an option is omitted when changing the
 694 class of a process to time-sharing from some other class, the associated
 695 parameter is set to a default value. The default value for \fItsuprilim\fR is
 696 \fB0\fR and the default for \fItsupri\fR is to set it equal to the
 697 \fItsuprilim\fR value which is being set.
 698 .sp
 699 .LP
 700 The time-sharing user priority and user priority limit are inherited across the
 701 \fBfork\fR(2) and \fBexec\fR(2) system calls.
 702 .SS "Inter-Active Class"
 703 .sp
 704 .LP
 705 The inter-active scheduling policy provides for a fair and effective allocation
 706 of the \fBCPU\fR resource among processes with varying \fBCPU\fR consumption
 707 characteristics while providing good responsiveness for user interaction. The
 708 objectives of the inter-active policy are to provide good response time to
 709 interactive processes and good throughput to \fBCPU\fR-bound jobs. The
 710 priorities of processes in the inter-active class can be changed in the same
 711 manner as those in the time-sharing class, though the modified priorities
 712 continue to be adjusted to provide good responsiveness for user interaction.
 713 .sp
 714 .LP
 715 The inter-active user priority limit, \fIiaupri\fR, is equivalent to
 716 \fItsupri\fR. The inter-active per process user priority, \fIiauprilim\fR, is
 717 equivalent to \fItsuprilim\fR.
 718 .sp
 719 .LP
 720 Inter-active class processes that have the \fIiamode\fR ("interactive mode")
 721 bit set are given a priority boost value of \fB10\fR, which is factored into
 722 the user mode priority of the process when that calculation is made, that is,
 723 every time a process's priority is adjusted. This feature is used by the X
 724 windowing system, which sets this bit for those processes that run inside of
 725 the current active window to give them a higher priority.
 726 .SS "Fair-Share Class"
 727 .sp
 728 .LP
 729 The fair-share scheduling policy provides a fair allocation of system \fBCPU\fR
 730 resources among projects, independent of the number of processes they own.
 731 Projects are given "shares" to control their entitlement to \fBCPU\fR
 732 resources. Resource usage is remembered over time, so that entitlement is
 733 reduced  for heavy usage, and increased for light usage, with respect to other
 734 projects. \fBCPU\fR time is scheduled among processes according to their
 735 owner's entitlements, independent of the number of processes each project owns.
 736 .sp
 737 .LP
 738 The \fBFSS\fR scheduling class supports the notion of per-process user priority
 739 and user priority limit for compatibility with the time-share scheduler. The
 740 fair share scheduler attempts to provide an evenly graded effect across the
 741 whole range of user priorities. Processes with negative \fIfssupri\fR values
 742 receive time slices less frequently than normal,  while processes with positive
 743 \fIfssupri\fR values receive time slices more  frequently than normal.  Notice
 744 that user priorities do not interfere with shares. That is, changing a
 745 \fIfssupri\fR value of a process is not going to affect its project's overall
 746 \fBCPU\fR usage which only relates to the amount of shares it is allocated
 747 compared to other projects.
 748 .sp
 749 .LP
 750 The priorities of processes in the fair-share class can be changed in the same
 751 manner as those in the time-share class.
 752 .SS "Fixed-Priority Class"
 753 .sp
 754 .LP
 755 The fixed-priority class provides a fixed priority preemptive scheduling policy
 756 for those processes requiring that the scheduling priorities do not get
 757 dynamically adjusted by the system and that the user/application have control
 758 of the scheduling priorities.
 759 .sp
 760 .LP
 761 The fixed-priority class shares the same range of scheduling priorities with
 762 the time-sharing class, by default. The fixed-priority class has a range of
 763 fixed-priority user priority (\fIfxupri\fR) values that can be assigned to
 764 processes within the class. User priorities range from 0 to \fIx\fR, where the
 765 value of \fIx\fR is configurable. The range for a specific installation can be
 766 displayed by using the command
 767 .sp
 768 .in +2
 769 .nf
 770 \fBpriocntl -l\fR
 771 .fi
 772 .in -2
 773 .sp


 816 with \fBpriocntl\fR \fB-s\fR or \fBpriocntl\fR \fB-e\fR for the fixed-priority
 817 class. If an option is omitted and the process is currently fixed-priority, the
 818 associated parameter is normally unaffected. The exception is when the \fB-p\fR
 819 option is omitted and the \fB-m\fR option is used to set a \fIfxuprilim\fR
 820 below the current \fIfxupri\fR. In this case, the \fIfxupri\fR is set equal to
 821 the \fIfxuprilim\fR which is being set. If an option is omitted when changing
 822 the class of a process to fixed-priority from some other class, the associated
 823 parameter is set to a default value. The default value for \fIfxuprilim\fR is
 824 \fB0\fR. The default for \fIfxupri\fR is to set it equal to the \fIfxuprilim\fR
 825 value which is being set. The default for time quantum is dependent on the
 826 \fIfxupri\fR and on the system configuration. See \fBfx_dptbl\fR(4).
 827 .sp
 828 .LP
 829 The time quantum of processes in the fixed-priority class      can be changed
 830 in the same manner as those in the real-time class.
 831 .sp
 832 .LP
 833 The fixed-priority user priority, user priority limit, and time quantum are
 834 inherited across the \fBfork\fR(2) and \fBexec\fR(2) system calls.
 835 .SH EXAMPLES
 836 .sp
 837 .LP
 838 The following are real-time class examples:
 839 .LP
 840 \fBExample 1 \fRSetting the Class
 841 .sp
 842 .LP
 843 The following example sets the class of any non-real-time processes selected by
 844 \fIidtype\fR and \fIidlist\fR to real-time and sets their real-time priority to
 845 the default value of \fB0\fR. The real-time priorities of any processes
 846 currently in the real-time class are unaffected. The time quantums of all of
 847 the specified processes are set to \fB1/10\fR seconds.
 848 
 849 .sp
 850 .in +2
 851 .nf
 852 example% \fBpriocntl -s -c RT -t 1 -r 10 -i \fIidtype idlist\fR\fR
 853 .fi
 854 .in -2
 855 .sp
 856 


 922 .in -2
 923 .sp
 924 
 925 .LP
 926 \fBExample 6 \fRExecuting a Command in Fixed-Priority Class
 927 .sp
 928 .LP
 929 The following example executes a command in the fixed-priority  class with a
 930 user priority limit of \fB20\fR and user priority of \fB10\fR and time quantum
 931 of \fB250\fR milliseconds:
 932 
 933 .sp
 934 .in +2
 935 .nf
 936 example% \fBpriocntl -e -c FX -m 20 -p 10 -t 250 command\fR
 937 .fi
 938 .in -2
 939 .sp
 940 
 941 .SH EXIT STATUS
 942 .sp
 943 .LP
 944 The following exit values are returned:
 945 .sp
 946 .LP
 947 For options \fB-d\fR, \fB-l\fR, and \fB-s\fR:
 948 .sp
 949 .ne 2
 950 .na
 951 \fB\fB0\fR\fR
 952 .ad
 953 .RS 5n
 954 Successful operation.
 955 .RE
 956 
 957 .sp
 958 .ne 2
 959 .na
 960 \fB\fB1\fR\fR
 961 .ad
 962 .RS 5n
 963 Error condition.
 964 .RE
 965 
 966 .sp
 967 .LP
 968 For option \fB-e\fR:
 969 .sp
 970 .LP
 971 Return of the Exit Status of the executed command denotes successful operation.
 972 Otherwise,
 973 .sp
 974 .ne 2
 975 .na
 976 \fB\fB1\fR\fR
 977 .ad
 978 .RS 5n
 979 Command could not be executed at the specified priority.
 980 .RE
 981 
 982 .SH ATTRIBUTES
 983 .sp
 984 .LP
 985 See \fBattributes\fR(5) for descriptions of the following attributes:
 986 .sp
 987 
 988 .sp
 989 .TS
 990 box;
 991 c | c
 992 l | l .
 993 ATTRIBUTE TYPE  ATTRIBUTE VALUE
 994 _
 995 CSI     Enabled
 996 .TE
 997 
 998 .SH SEE ALSO
 999 .sp
1000 .LP
1001 \fBkill\fR(1), \fBnice\fR(1), \fBps\fR(1), \fBdispadmin\fR(1M), \fBexec\fR(2),
1002 \fBfork\fR(2), \fBpriocntl\fR(2), \fBfx_dptbl\fR(4), \fBprocess\fR(4),
1003 \fBrt_dptbl\fR(4), \fBattributes\fR(5), \fBzones\fR(5), \fBFSS\fR(7)
1004 .sp
1005 .LP
1006 \fISystem Administration Guide: Basic Administration\fR
1007 .SH DIAGNOSTICS
1008 .sp
1009 .LP
1010 \fBpriocntl\fR prints the following error messages:
1011 .sp
1012 .ne 2
1013 .na
1014 \fB\fBProcess(es) not found\fR\fR
1015 .ad
1016 .sp .6
1017 .RS 4n
1018 None of the specified processes exists.
1019 .RE
1020 
1021 .sp
1022 .ne 2
1023 .na
1024 \fB\fBSpecified processes from different classes\fR\fR
1025 .ad
1026 .sp .6
1027 .RS 4n
1028 The \fB-s\fR option is being used to set parameters, the \fB-c\fR \fIclass\fR


  14 .fi
  15 
  16 .LP
  17 .nf
  18 \fBpriocntl\fR \fB-d\fR [\fB-i\fR \fIidtype\fR] [\fIidlist\fR]
  19 .fi
  20 
  21 .LP
  22 .nf
  23 \fBpriocntl\fR \fB-s\fR [\fB-c\fR \fIclass\fR] [\fIclass-specific\fR \fIoptions\fR]
  24      [\fB-i\fR \fIidtype\fR] [\fIidlist\fR]
  25 .fi
  26 
  27 .LP
  28 .nf
  29 \fBpriocntl\fR \fB-e\fR [\fB-c\fR \fIclass\fR] [\fIclass-specific\fR \fIoptions\fR] \fIcommand\fR
  30      [\fIargument(s)\fR]
  31 .fi
  32 
  33 .SH DESCRIPTION

  34 .LP
  35 The \fBpriocntl\fR command displays or sets scheduling parameters of the
  36 specified process(es). It can also be used to display the current configuration
  37 information for the system's process scheduler or execute a command with
  38 specified scheduling parameters.
  39 .sp
  40 .LP
  41 Processes fall into distinct classes with a separate scheduling policy applied
  42 to each class. The process classes currently supported are the real-time class,
  43 time-sharing class, interactive class, fair-share class, and the fixed priority
  44 class. The characteristics of these classes and the class-specific options they
  45 accept are described below in the USAGE section under the headings \fBReal-Time
  46 Class\fR, \fBTime-Sharing Class\fR, \fBInter-Active Class\fR, \fBFair-Share
  47 Class\fR, and \fBFixed-Priority Class\fR. With appropriate permissions, the
  48 \fBpriocntl\fR command can change the class and other scheduling parameters
  49 associated with a running process.
  50 .sp
  51 .LP
  52 In the default configuration, a runnable real-time process runs before any
  53 other process. Therefore, inappropriate use of real-time processes can have a


 153 information.
 154 .sp
 155 .LP
 156 The command
 157 .sp
 158 .in +2
 159 .nf
 160 \fBpriocntl -e [-c \fIclass\fR\fR\fB]\fR\fB [\fIclass-specific options\fR] \fIcommand\fR \e
 161      [\fIargument...\fR]\fR
 162 .fi
 163 .in -2
 164 .sp
 165 
 166 .sp
 167 .LP
 168 executes the specified command with the class and scheduling parameters
 169 specified on the command line (\fIarguments\fR are the arguments to the
 170 command). If the \fB-c\fR \fIclass\fR option is omitted the command is run in
 171 the user's current class.
 172 .SH OPTIONS

 173 .LP
 174 The following options are supported:
 175 .sp
 176 .ne 2
 177 .na
 178 \fB\fB-c\fR \fIclass\fR\fR
 179 .ad
 180 .RS 13n
 181 Specifies the \fIclass\fR to be set. (The valid \fIclass\fR arguments are
 182 \fBRT\fR for real-time, \fBTS\fR for time-sharing, \fBIA\fR for inter-active,
 183 \fBFSS\fR for fair-share, or \fBFX\fR for fixed-priority.) If the specified
 184 class is not already configured, it is automatically configured.
 185 .RE
 186 
 187 .sp
 188 .ne 2
 189 .na
 190 \fB\fB-d\fR\fR
 191 .ad
 192 .RS 13n


 477 .ne 2
 478 .na
 479 \fB\fB-p\fR \fIfxupri\fR\fR
 480 .ad
 481 .RS 16n
 482 Sets the user priority of the specified process(es) to \fIfxupri\fR.
 483 .RE
 484 
 485 .sp
 486 .ne 2
 487 .na
 488 \fB\fB-t\fR \fItqntm\fR\fR
 489 .ad
 490 .RS 16n
 491 [\fB-r\fR \fIres\fR] Sets the time quantum of the specified process(es) to
 492 \fItqntm\fR. You can optionally specify a resolution as explained below.
 493 .RE
 494 
 495 .SH USAGE
 496 .SS "Real-Time Class"

 497 .LP
 498 The real-time class provides a fixed priority preemptive scheduling policy for
 499 those processes requiring fast and deterministic response and absolute
 500 user/application control of scheduling priorities. If the real-time class is
 501 configured in the system, it should have exclusive control of the highest range
 502 of scheduling priorities on the system. This ensures that a runnable real-time
 503 process is given \fBCPU\fR service before any process belonging to any other
 504 class.
 505 .sp
 506 .LP
 507 The real-time class has a range of real-time priority (\fIrtpri\fR) values that
 508 can be assigned to processes within the class. Real-time priorities range from
 509 0 to \fIx\fR, where the value of \fIx\fR is configurable and can be displayed
 510 for a specific installation that has already configured a real-time scheduler,
 511 by using the command
 512 .sp
 513 .in +2
 514 .nf
 515 \fBpriocntl -l\fR
 516 .fi


 591 the time quantum signal \fItqsig\fR denotes no signal delivery. A positive
 592 value denotes the delivery of the signal specified by the value. Like
 593 \fBkill\fR(1) and other commands operating on signals, the \fB-q\fR \fItqsig\fR
 594 option is also able to handle symbolically named signals, like \fBXCPU\fR or
 595 \fBKILL\fR.
 596 .sp
 597 .LP
 598 In order to change the class of a process to real-time (from any other class),
 599 the user invoking \fBpriocntl\fR must have super-user privilege. In order to
 600 change the \fIrtpri\fR value or time quantum of a real-time process, the user
 601 invoking \fBpriocntl\fR must either be super-user, or must currently be in the
 602 real-time class (shell running as a real-time process) with a real or effective
 603 user \fBID\fR matching the real or effective user \fBID\fR of the target
 604 process.
 605 .sp
 606 .LP
 607 The real-time priority, time quantum, and time quantum signal are inherited
 608 across the \fBfork\fR(2) and \fBexec\fR(2) system calls. When using the time
 609 quantum signal with a user defined signal handler across the \fBexec\fR(2)
 610 system call, the new image must install an appropriate user defined signal
 611 handler before the time quantum expires. Otherwise, unpredictable behavior would
 612 result.
 613 .SS "Time-Sharing Class"

 614 .LP
 615 The time-sharing scheduling policy provides for a fair and effective allocation
 616 of the \fBCPU\fR resource among processes with varying \fBCPU\fR consumption
 617 characteristics. The objectives of the time-sharing policy are to provide good
 618 response time to interactive processes and good throughput to \fBCPU\fR-bound
 619 jobs, while providing a degree of user/application control over scheduling.
 620 .sp
 621 .LP
 622 The time-sharing class has a range of time-sharing user priority (\fItsupri\fR)
 623 values that can be assigned to processes within the class. User priorities
 624 range from \(mi\fIx\fR to +\fIx\fR, where the value of \fIx\fR is configurable.
 625 The range for a specific installation can be displayed by using the command
 626 .sp
 627 .in +2
 628 .nf
 629 \fBpriocntl -l\fR
 630 .fi
 631 .in -2
 632 .sp
 633 


 679 \fItsuprilim\fR (and/or set the \fItsuprilim\fR below the \fItsupri\fR) result
 680 in the \fItsupri\fR being set equal to the \fItsuprilim\fR.
 681 .sp
 682 .LP
 683 Any combination of the \fB-m\fR and \fB-p\fR options can be used with
 684 \fBpriocntl\fR \fB-s\fR or \fBpriocntl\fR \fB-e\fR for the time-sharing class.
 685 If an option is omitted and the process is currently time-sharing, the
 686 associated parameter is normally unaffected. The exception is when the \fB-p\fR
 687 option is omitted and \fB-m\fR is used to set a \fItsuprilim\fR below the
 688 current \fItsupri\fR. In this case, the \fItsupri\fR is set equal to the
 689 \fItsuprilim\fR which is being set. If an option is omitted when changing the
 690 class of a process to time-sharing from some other class, the associated
 691 parameter is set to a default value. The default value for \fItsuprilim\fR is
 692 \fB0\fR and the default for \fItsupri\fR is to set it equal to the
 693 \fItsuprilim\fR value which is being set.
 694 .sp
 695 .LP
 696 The time-sharing user priority and user priority limit are inherited across the
 697 \fBfork\fR(2) and \fBexec\fR(2) system calls.
 698 .SS "Inter-Active Class"

 699 .LP
 700 The inter-active scheduling policy provides for a fair and effective allocation
 701 of the \fBCPU\fR resource among processes with varying \fBCPU\fR consumption
 702 characteristics while providing good responsiveness for user interaction. The
 703 objectives of the inter-active policy are to provide good response time to
 704 interactive processes and good throughput to \fBCPU\fR-bound jobs. The
 705 priorities of processes in the inter-active class can be changed in the same
 706 manner as those in the time-sharing class, though the modified priorities
 707 continue to be adjusted to provide good responsiveness for user interaction.
 708 .sp
 709 .LP
 710 The inter-active user priority limit, \fIiaupri\fR, is equivalent to
 711 \fItsupri\fR. The inter-active per process user priority, \fIiauprilim\fR, is
 712 equivalent to \fItsuprilim\fR.
 713 .sp
 714 .LP
 715 Inter-active class processes that have the \fIiamode\fR ("interactive mode")
 716 bit set are given a priority boost value of \fB10\fR, which is factored into
 717 the user mode priority of the process when that calculation is made, that is,
 718 every time a process's priority is adjusted. This feature is used by the X
 719 windowing system, which sets this bit for those processes that run inside of
 720 the current active window to give them a higher priority.
 721 .SS "Fair-Share Class"

 722 .LP
 723 The fair-share scheduling policy provides a fair allocation of system \fBCPU\fR
 724 resources among projects, independent of the number of processes they own.
 725 Projects are given "shares" to control their entitlement to \fBCPU\fR
 726 resources. Resource usage is remembered over time, so that entitlement is
 727 reduced  for heavy usage, and increased for light usage, with respect to other
 728 projects. \fBCPU\fR time is scheduled among processes according to their
 729 owner's entitlements, independent of the number of processes each project owns.
 730 .sp
 731 .LP
 732 The \fBFSS\fR scheduling class supports the notion of per-process user priority
 733 and user priority limit for compatibility with the time-share scheduler. The
 734 fair share scheduler attempts to provide an evenly graded effect across the
 735 whole range of user priorities. Processes with negative \fIfssupri\fR values
 736 receive time slices less frequently than normal,  while processes with positive
 737 \fIfssupri\fR values receive time slices more  frequently than normal.  Notice
 738 that user priorities do not interfere with shares. That is, changing a
 739 \fIfssupri\fR value of a process is not going to affect its project's overall
 740 \fBCPU\fR usage which only relates to the amount of shares it is allocated
 741 compared to other projects.
 742 .sp
 743 .LP
 744 The priorities of processes in the fair-share class can be changed in the same
 745 manner as those in the time-share class.
 746 .SS "Fixed-Priority Class"

 747 .LP
 748 The fixed-priority class provides a fixed priority preemptive scheduling policy
 749 for those processes requiring that the scheduling priorities do not get
 750 dynamically adjusted by the system and that the user/application have control
 751 of the scheduling priorities.
 752 .sp
 753 .LP
 754 The fixed-priority class shares the same range of scheduling priorities with
 755 the time-sharing class, by default. The fixed-priority class has a range of
 756 fixed-priority user priority (\fIfxupri\fR) values that can be assigned to
 757 processes within the class. User priorities range from 0 to \fIx\fR, where the
 758 value of \fIx\fR is configurable. The range for a specific installation can be
 759 displayed by using the command
 760 .sp
 761 .in +2
 762 .nf
 763 \fBpriocntl -l\fR
 764 .fi
 765 .in -2
 766 .sp


 809 with \fBpriocntl\fR \fB-s\fR or \fBpriocntl\fR \fB-e\fR for the fixed-priority
 810 class. If an option is omitted and the process is currently fixed-priority, the
 811 associated parameter is normally unaffected. The exception is when the \fB-p\fR
 812 option is omitted and the \fB-m\fR option is used to set a \fIfxuprilim\fR
 813 below the current \fIfxupri\fR. In this case, the \fIfxupri\fR is set equal to
 814 the \fIfxuprilim\fR which is being set. If an option is omitted when changing
 815 the class of a process to fixed-priority from some other class, the associated
 816 parameter is set to a default value. The default value for \fIfxuprilim\fR is
 817 \fB0\fR. The default for \fIfxupri\fR is to set it equal to the \fIfxuprilim\fR
 818 value which is being set. The default for time quantum is dependent on the
 819 \fIfxupri\fR and on the system configuration. See \fBfx_dptbl\fR(4).
 820 .sp
 821 .LP
 822 The time quantum of processes in the fixed-priority class      can be changed
 823 in the same manner as those in the real-time class.
 824 .sp
 825 .LP
 826 The fixed-priority user priority, user priority limit, and time quantum are
 827 inherited across the \fBfork\fR(2) and \fBexec\fR(2) system calls.
 828 .SH EXAMPLES

 829 .LP
 830 The following are real-time class examples:
 831 .LP
 832 \fBExample 1 \fRSetting the Class
 833 .sp
 834 .LP
 835 The following example sets the class of any non-real-time processes selected by
 836 \fIidtype\fR and \fIidlist\fR to real-time and sets their real-time priority to
 837 the default value of \fB0\fR. The real-time priorities of any processes
 838 currently in the real-time class are unaffected. The time quantums of all of
 839 the specified processes are set to \fB1/10\fR seconds.
 840 
 841 .sp
 842 .in +2
 843 .nf
 844 example% \fBpriocntl -s -c RT -t 1 -r 10 -i \fIidtype idlist\fR\fR
 845 .fi
 846 .in -2
 847 .sp
 848 


 914 .in -2
 915 .sp
 916 
 917 .LP
 918 \fBExample 6 \fRExecuting a Command in Fixed-Priority Class
 919 .sp
 920 .LP
 921 The following example executes a command in the fixed-priority  class with a
 922 user priority limit of \fB20\fR and user priority of \fB10\fR and time quantum
 923 of \fB250\fR milliseconds:
 924 
 925 .sp
 926 .in +2
 927 .nf
 928 example% \fBpriocntl -e -c FX -m 20 -p 10 -t 250 command\fR
 929 .fi
 930 .in -2
 931 .sp
 932 
 933 .SH EXIT STATUS

 934 .LP
 935 The following exit values are returned:
 936 .sp
 937 .LP
 938 For options \fB-d\fR, \fB-l\fR, and \fB-s\fR:
 939 .sp
 940 .ne 2
 941 .na
 942 \fB\fB0\fR\fR
 943 .ad
 944 .RS 5n
 945 Successful operation.
 946 .RE
 947 
 948 .sp
 949 .ne 2
 950 .na
 951 \fB\fB1\fR\fR
 952 .ad
 953 .RS 5n
 954 Error condition.
 955 .RE
 956 
 957 .sp
 958 .LP
 959 For option \fB-e\fR:
 960 .sp
 961 .LP
 962 Return of the Exit Status of the executed command denotes successful operation.
 963 Otherwise,
 964 .sp
 965 .ne 2
 966 .na
 967 \fB\fB1\fR\fR
 968 .ad
 969 .RS 5n
 970 Command could not be executed at the specified priority.
 971 .RE
 972 
 973 .SH ATTRIBUTES

 974 .LP
 975 See \fBattributes\fR(5) for descriptions of the following attributes:
 976 .sp
 977 
 978 .sp
 979 .TS
 980 box;
 981 c | c
 982 l | l .
 983 ATTRIBUTE TYPE  ATTRIBUTE VALUE
 984 _
 985 CSI     Enabled
 986 .TE
 987 
 988 .SH SEE ALSO

 989 .LP
 990 \fBkill\fR(1), \fBnice\fR(1), \fBps\fR(1), \fBdispadmin\fR(1M), \fBexec\fR(2),
 991 \fBfork\fR(2), \fBpriocntl\fR(2), \fBfx_dptbl\fR(4), \fBprocess\fR(4),
 992 \fBrt_dptbl\fR(4), \fBattributes\fR(5), \fBzones\fR(5), \fBFSS\fR(7)
 993 .sp
 994 .LP
 995 \fISystem Administration Guide: Basic Administration\fR
 996 .SH DIAGNOSTICS

 997 .LP
 998 \fBpriocntl\fR prints the following error messages:
 999 .sp
1000 .ne 2
1001 .na
1002 \fB\fBProcess(es) not found\fR\fR
1003 .ad
1004 .sp .6
1005 .RS 4n
1006 None of the specified processes exists.
1007 .RE
1008 
1009 .sp
1010 .ne 2
1011 .na
1012 \fB\fBSpecified processes from different classes\fR\fR
1013 .ad
1014 .sp .6
1015 .RS 4n
1016 The \fB-s\fR option is being used to set parameters, the \fB-c\fR \fIclass\fR