이름
pthread_setschedparam, pthread_getschedparam - 쓰레드 스케줄링 파라미터의 제어사용법
#include <pthread.h>int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param *param);
int pthread_getschedparam(pthread_t target_thread, int *policy, struct sched_param *param);
설명
pthread_setschedparam 은 target_thread 쓰레드의 스케줄링 파라미터를 policy 인수와 param 인수로 설정한다. policy 는 SCHED_OTHER (일반적인, 비-실시간 스케줄링)이나 SCHED_RR (실시간 라운드 로빈)이나 SCHED_FIFO (실시간 선입선출)중의 하나로 설정해야 한다. param 은 두가지 실시간 정책을 위한 스케줄링 우선순위를 지정한다. 스케줄링 정책에 대한 자세한 내용은 sched_setpolicy(2) 를 살펴보기 바란다.
실시간 스케줄링 정책인 SCHED_RR 과 SCHED_FIFO 는 오직 수퍼유저 권한으로 실행되는 프로세스에만 적용할 수 있다.
pthread_getschedparam 는 target_thread 쓰레드의 스케줄링 정책과 스케줄링 파라미터 값을 얻어와서 policy 와 param 이 지정하는 위치에 각각 저장한다.
반환값
pthread_setschedparam 와 pthread_getschedparam 는 성공시에 0을 반환하고, 실패시에 0이 아닌 에러 코드를 반환한다.에러
에러가 발생하면 pthread_setschedparam 는 다음과 같은 에러 코드를 반환한다:-
- EINVAL
- policy 인수가 SCHED_OTHER, SCHED_RR, SCHED_FIFO 중의 하나가 아니다.
- EINVAL
- param 이 가리키는 우선순위 값이 해당 정책에 맞는 값이 아니다.
- EPERM
- 호출한 프로세스가 수퍼유저 권한을 가지고 있지 않다.
- ESRCH
- target_thread 를 찾을 수 없거나 이미 종료되었다.
- EFAULT
- param 이 프로세스의 메모리 공간 밖을 가리킨다.
에러가 발생하면 pthread_getschedparam 은 다음과 같은 에러를 반환한다:
-
- ESRCH
- target_thread 를 찾을 수 없거나 이미 종료되었다.
- EFAULT
- policy 혹은 param 이 프로세스의 메모리 공간 밖을 가리킨다.
'솔라리스/리눅스' 카테고리의 다른 글
prstat manpage (0) | 2011.10.12 |
---|---|
What is NLWP on Solaris? (0) | 2011.10.12 |
[솔라리스]System V 메시지 큐(Message Queue), 세마포어(Semaphore), 공유… (1) | 2011.09.21 |
리눅스 프로그래머를 위한 가이드 (0) | 2011.07.15 |
busybox - telnetd 실행 (0) | 2011.07.08 |