SCHED_SETSCHEDULER(2)

명칭
sched_setscheduler, sched_getscheduler - 스케줄 방침과 스케쥴러 파라미터의 설정 / 취득

프로그램 라이브러리
libc

서식
<sched.h> int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param) int sched_getscheduler(pid_t pid)

해설
sched_setscheduler() 함수는, pid 그리고 지정한 프로세스의 스케줄 방침과 스케줄 파라미터를, 각각, policy 및 param 하지만 가리킨다 sched_param 구조체의 지정하는 파라미터로 설정합니다. param 구조체의 멤버 sched_priority 의 값은, policy 그리고 지정하는 스케줄 방침용의 우선도 범위내 (양단 포함한다)의 정수일 필요가 있습니다.

이 실장에서는, pid 의 값이 부인 경우, 함수는 처리에 실패합니다.

pid 그리고 지정하는 프로세스가 존재해, 한편 호출해 원프로세스에 퍼미션이 있는 경우, 프로세스 ID 가 pid (와)과 동일한 프로세스에 대해서 스케줄 방침과 스케줄 파라미터를 설정합니다.

pid 하지만 0 의 경우, 호출원프로세스에 대해서 스케줄 방침과 스케줄 파라미터를 설정합니다.

이 실장에서는, 어느 프로세스가 다른 프로세스의 스케줄 파라미터에 언제 영향을 미칠 수 있는가 할 방침은, 기입 스타일 조작으로서 p1003_1b (으)로 지정되어 있는 것입니다.

스케줄 방침은 <sched.h> 안에 있습니다.

[SCHED_FIFO]
    라운드로빈스케쥬르가 없는, 선입처출 (FIFO) 우선 순위 고정 스케줄.

[SCHED_OTHER]
    표준의 타임 쉐어링 스케쥴러.

[SCHED_RR]
    같은 우선 순위의 프로세스간에서의 라운드로빈스케쥬르.

sched_param 구조체는 <sched.h> 에 정의되고 있습니다.

    struct sched_param {
    	int sched_priority;	/* 스케줄 우선 순위 */
    };

sched_getscheduler() 함수는, pid 그리고 지정하는 프로세스의 스케줄 방침을 돌려줍니다.

pid 그리고 지정하는 프로세스가 존재해 한편, 호출원프로세스에 퍼미션이 있는 경우, 프로세스 ID 가 pid 에 동일한 프로세스의 스케줄 파라미터를 돌려줍니다.

이 실장에서는, 어느 프로세스가 다른 프로세스의 스케줄 파라미터를 언제 얻을 수 있을까의 방침은, 읽기 스타일 조작으로서 p1003_1b 에 상세 해설 되고 있는 것입니다.

pid 하지만 0 의 경우, 호출원프로세스의 스케줄 파라미터를 돌려줍니다. 이 실장에서는, pid 하지만 부의 경우, sched_getscheduler 함수는 처리에 실패합니다.

반환값

에러
처리에 실패하면(자), errno (을)를 대응하는 값으로 설정합니다.

[ENOSYS]
    시스템은, 이 기능을 서포트하도록(듯이) 구성되어 있지 않습니다.

[EPERM]
    요구하고 있는 프로세스는 p1003_1b 그리고 상세 해설 되고 있는 퍼미션을 가지고 있지 않습니다.

[ESRCH]
    pid 그리고 지정한 프로세스에 대응하는 프로세스가 발견되지 않습니다.

[EINVAL]
    policy 파라미터의 값이 무효인지, 또는 param 에 포함되어 있는 1 개(살) 또는 복수의 파라미터가, 지정된 스케줄 방침으로 유효한 범위의 밖에 있습니다.

관련 항목
sched_getparam(2), sched_get_priority_max(2), sched_get_priority_min(2), sched_rr_get_interval(2), sched_setparam(2), sched_yield(2)

표준
sched_setscheduler() 함수와 sched_getscheduler() 함수는 p1003.1b-93 에 준거하고 있습니다.