#include <unistd.h>
int nice(int inc);
inc 값만큼 nice 값을 올릴 수 있다. 내릴 수는 없다. 내리는 것 - 우선순위를 높이는 것은 (CAP_SYS_NICE capability가 있는)root만 할 수 있다. 리턴값으로 변환후의 우선 순위 값을 반환하기 때문에 간단히 현재 자신의 우선 순위를 볼 때는 nice(0)으로 확인 가능하다.
이 외에 프로세스, 프로세스 그룹, user 별로 우선순위를 지정할 수 있는 getpriority, setpriority함수들이 있는데, 간단히 살피면 아래와 같다.
#include <sys/time.h>
#include <sys/resource.h>
/* which - PRIO_PROCESS, PRIO_PGRP, PRIO_USER
* who - pid, pgid, user id..
*/
int getpriority (int which, int who);
int setpriority (int which, int who, int prio);
위에서 인자에 0을 주면 현재 프로세스/프로세스 그룹/사용자에 대해 동작한다. 비슷한 식으로 I/O 스케쥴러에 대해서도 우선순위를 조절하는 ioprio_get(...), ioprio_set(..)가 있으나 glibc에서 제공하지 않는다. 대신 ionice 라는 util-linux package를 통해 조절할 수 있다.
No comments:
Post a Comment