37.6. 프로세스의 시간 슬라이스 표시
Cryo stat_RR (round-robin) 정책은 Cryostat _FIFO (first-in, first-out) 정책과 약간 다릅니다. Cryostat_RR 은 라운드 로빈 순환에서 우선순위가 동일한 동시 프로세스를 할당합니다. 이렇게 하면 각 프로세스에 시간 슬라이스가 할당됩니다. sched_rr_get_interval() 함수는 각 프로세스에 할당된 시간 슬라이스를 보고합니다.
POSIX에서는 이 함수가 Cryostat _RR 스케줄러 정책으로 실행되도록 구성된 프로세스에서만 작동해야 하지만 sched_rr_get_interval() 함수는 Linux에서 프로세스의 시간 슬라이스 길이를 검색할 수 있습니다.
시간 슬라이스 정보는 시간 사양으로 반환됩니다. 1970년 1월 1일 기준 00:00:00-01T 이후의 초 및 나노초 수입니다.
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
}
프로세스
sched_timeslice.c소스 파일을 생성하여 텍스트 편집기에서 엽니다.$ {EDITOR} sched_timeslice.csched_timeslice.c파일에 다음 행을 추가합니다.#include <stdio.h> #include <sched.h> int main() { struct timespec ts; int ret; /* real apps must check return values */ ret = sched_rr_get_interval(0, &ts); printf("Timeslice: %lu.%lu\n", ts.tv_sec, ts.tv_nsec); return 0; }- 파일을 저장하고 편집기를 종료합니다.
프로그램을 컴파일합니다.
$ gcc sched_timeslice.c -o sched_timeslice다양한 정책과 우선 순위로 프로그램을 실행합니다.
$ chrt -o 0 ./sched_timeslice Timeslice: 0.38994072 $ chrt -r 10 ./sched_timeslice Timeslice: 0.99984800 $ chrt -f 10 ./sched_timeslice Timeslice: 0.0작은 정보프로세스 우선 순위 함수에 대한 자세한 내용은 시스템의
nice(2),getpriority(2)및setpriority(2)도움말 페이지를 참조하십시오.