RTPRIO(2)

명칭
rtprio - 유틸리티나 프로세스의 리얼타임 / 아이돌 우선 순위의 취득과 수정

프로그램 라이브러리
libc

서식
<sys/types.h> <sys/rtprio.h> int rtprio(int function, pid_t pid, struct rtprio *rtp)

해설
rtprio() (을)를 사용해, 프로세스의 리얼타임 / 아이돌 우선 순위를 취득 또는 변경합니다.

function 그리고 실행하는 조작을 지정합니다. 현재의 우선 순위를 취득하려면 RTP_LOOKUP, 우선 순위를 설정하려면 RTP_SET 입니다. pid (은)는, 대상의 프로세스를 지정합니다. 현재의 프로세스를 지정하려면 0 을 사용합니다.

*rtp (은)는, 우선 순위와 우선 순위의 타입을 지정하는데 사용하는 struct rtprio 를 가리킨다 포인터입니다. 이 구조체는 다음의 형태입니다.

    struct rtprio {
    	u_short	type;
    	u_short prio;
    };

type 의 값은, 리얼타임 우선 순위에 대해서는 RTP_PRIO_REALTIME, 통상의 우선 순위에 대해서는 RTP_PRIO_NORMAL, 아이돌 우선 순위에 대해서는 RTP_PRIO_IDLE 입니다. prio 에 의해 지정하는 우선 순위는, 0 으로부터 RTP_PRIO_MAX (통상은 31) 의 범위가 됩니다. 0 이 지정 가능한 최고의 우선 순위입니다.

리얼타임 우선 순위와 아이돌 우선 순위는, fork()와 exec()를 통해서 계승됩니다.

리얼타임 프로세스는, 그 이상의 우선 순위를 가지는 프로세스, 또는 끼어들어 에 의해서만 우선권을 취득할 수 있습니다. 아이돌 우선 순위의 프로세스는, 다른 리얼타임 또는 통상의 우선 순위 프로세스가 실행 가능하지 않을 때에만 실행됩니다. 우선 순위의 높은 리얼 / 아이돌의 프로세스는 우선 순위의 낮은 리얼 / 아이돌의 프로세스로부터 우선권을 취득합니다. 우선 순위가 동일한 리얼 / 아이돌의 프로세스는 라운드로빈 방식에서 실행됩니다.

반환값

에러
rtprio() (은)는 다음의 경우에 처리를 실패합니다.

[EINVAL]
    지정되었다 prio 하지만 범위외였습니다.

[EPERM]
    호출 프로세스가 리얼타임 우선 순위를 설정할 수 없습니다. root 만이 임의의 프로세스의 리얼 우선 순위를 변경할 수가 있습니다. root 가 아닌 유저는 현재의 프로세스의 아이돌 우선 순위를 변경할 수 있을 뿐입니다.

[ESRCH]
    지정의 프로세스가 발견되지 않았습니다.

저자
-nosplit 오리지날의 저자는 Henrik Vestergaard Draboel <hvd@terry.ping.dk> 입니다. FreeBSD 에서의 실장은 David Greenman 에 의해 본질적으로 고쳐 써졌습니다.

관련 항목
nice(1), ps(1), rtprio(1), setpriority(2), nice(3), renice(8)