HPUX rtprio[2]



rtprio in anderen Kapiteln des hpux Handbuch: rtprio.1




 rtprio(2)                                                         rtprio(2)





 NAME
      rtprio - change or read real-time priority

 SYNOPSIS
      #include <sys/rtprio.h>

      int rtprio(pid_t pid, int prio);

 DESCRIPTION
      rtprio() is used to set or read the real-time priority of a process.
      If pid is zero, it names the calling process; otherwise it gives the
      pid of the process.  When setting the real-time priority of another
      process, the real or effective user ID of the calling process must
      match the real or saved user ID of the process to be modified, or the
      effective user ID of the calling process must be that of a user having
      appropriate privileges.  The calling process must also be a member of
      a privilege group allowing rtprio() (see getprivgrp(2)) or the
      effective user ID of the calling process must be a user having
      appropriate privileges.  Simply reading real-time priorities requires
      no special privilege.

      Real-time scheduling policies differ from normal timesharing policies
      in that the real-time priority is used to absolutely order all real-
      time processes; this priority is not degraded over time.  All real-
      time processes are of higher priority than normal user and system
      processes, although some system processes may run at real-time
      priorities.  If there are several eligible processes at the same
      priority level, they are run in a round robin fashion as long as no
      process with higher priority intervenes.  A real-time process receives
      CPU service until it either voluntarily gives up the CPU or is
      preempted by a process of equal or higher priority.  Interrupts can
      also preempt a real-time process.

      Valid real-time priorities run from zero to 127.  Zero is the highest
      (most important) priority.  This real-time priority is inherited
      across fork()s and exec()s.

      prio specifies the following:

           0-127               Set process to this real-time priority.

           RTPRIO_NOCHG        Do not change real-time priority.  This is
                               used for reading the process real-time
                               priority.

           RTPRIO_RTOFF        Set this process to no longer have a real-
                               time priority.  It resumes a normal
                               timesharing priority.  Any process,
                               regardless of privilege, is allowed to turn
                               off its own real-time priority using a pid of
                               zero.



 Hewlett-Packard Company            - 1 -     HP-UX Release 9.0: August 1992






 rtprio(2)                                                         rtprio(2)





 EXAMPLES
      The following call to rtprio() sets the calling process to a real-time
      priority of 90:

           rtprio (0, 90);

 RETURN VALUE
      If no error occurs, rtprio() returns the pid's former (before the
      call) real-time priority.  If the process was not a real-time process,
      RTPRIO_RTOFF is returned.  If an error occurs, rtprio() returns -1 and
      sets errno to indicate the error.

 ERRORS
      rtprio() fails if any of the following conditions are encountered:

           [EINVAL]            prio is not RTPRIO_NOCHG, RTPRIO_RTOFF, or in
                               the range of 0 through 127.

           [EPERM]             The calling process is not a user having
                               appropriate privileges, and neither its real
                               or effective user-id match the real or saved
                               user ID of the process indicated by pid.

           [EPERM]             The group access list of the calling process
                               does not contain a group having PRIV_RTPRIO
                               capability and prio is not RTPRIO_NOCHG, or
                               RTPRIO_RTOFF with a pid of zero.

           [ESRCH]             No process can be found corresponding to that
                               specified by pid.

 DEPENDENCIES
    Series 800:
      Because processes executing at real-time priorities get scheduling
      preference over a system process executing at a lower priority,
      unexpected system behavior can occur after a power failure on systems
      that support power-fail recovery.  For example, when init(1M) receives
      the powerfail signal SIGPWR, it normally reloads programmable hardware
      such as terminal multiplexers.  If a higher-priority real-time process
      is eligible to run after the power failure, running of init is
      delayed.  This condition temporarily prevents terminal input to any
      process, including real-time shells of higher priority than the
      eligible real-time process.  To avoid this situation, a real-time
      process should catch SIGPWR and suspend itself until init has finished
      its powerfail processing.

 AUTHOR
      rtprio() was developed by HP.

 SEE ALSO
      rtprio(1), getprivgrp(2), nice(2), plock(2), privilege(5).



 Hewlett-Packard Company            - 2 -     HP-UX Release 9.0: August 1992






 rtprio(2)                                                         rtprio(2)





 WARNINGS
      Normally, compute-bound programs should not be run at real-time
      priorities, because all time sharing work on the CPU would come to a
      complete halt.


















































 Hewlett-Packard Company            - 3 -     HP-UX Release 9.0: August 1992