[질문] linux kernel에서 정말 동적 priority에 따라서 timeslice의 크기도 동적으로 할당합니까?
글쓴이: 이종진 / 작성시간: 수, 2007/08/01 - 5:08오후
에이콘에서 나온 '리눅스 커널 심층분석'이라는 책을 읽고 있는데
process의 초기 priority를 static_prio에 넣고
kernel이 process의 interactive정도에 따라서 동적으로 priority를 계산하여 prio에 넣는다
라고 이야기 하고있습니다.
또한 time slice도 이 동적 priority에 따라서 동적으로 계산된다고 하고있고요,
time slice를 동적으로 계산하는 함수가 task_timeslice()라고 하고 있는데..
막상 kernel source에서 이 함수를 찾아보면 그렇지 않은것 처럼 보이거든요.
#define SCALE_PRIO(x, prio) max(x * (MAX_PRIO - prio) / (MAX_USER_PRIO/2), MIN_TIMESLICE) static unsigned int task_timeslice(task_t *p) { if (p->static_prio < NICE_TO_PRIO(0)) return SCALE_PRIO(DEF_TIMESLICE*4, p->static_prio); else return SCALE_PRIO(DEF_TIMESLICE, p->static_prio); }
위에서 보면 알수 있드시 아무리 봐도 동적 priority에 무관하게 초기 nice값이 대입되는 정적 priority에 따라서 time slice를 계산하고 있는데요.
원서가 있으면 정말 원서에도 그렇게 씌여져 있는지 확인하고 싶습니다만 원서가 없어서...
그렇담 동적 우선순위가 아니라 초기 정적 우선순위에 따라서 time slice를 한번 계산하고 마는 겁니까?
Forums:
댓글 달기