어제 리눅스 스케줄링 정책 추가 질문 올렸던 사람입니다'ㅡ'( 코드 추가 )
글쓴이: changdoc / 작성시간: 목, 2008/12/18 - 2:31오전
sched.c는 어느정도 논리적으로 변경해서 괜찮은 것 같은데요.
컴파일시에 오류가 나는 부분 첨부 해 봅니다 ㅠㅠ
sched_rt.c에 SCHED_LRU를 위해 추가한 부분입니다'ㅡ'
static void enqueue_new_process(struct rq *rq, struct task_struct *p) { struct task_struct *curr = rq->curr; struct task_struct *next; struct task_struct *prev; struct list_head *queue; while(task_sched_runtime(curr) < task_sched_runtime(p)){ queue = &p->run_list; next = queue->next; curr = next; } prev = queue->prev; __list_add(&p, prev, &curr); } static void enqueue_task_lru(struct rq *rq, struct task_struct *p, int wakeup) { struct rt_prio_array *array = &rq->rt.active; if(task_sched_runtime(p)==0)//새로운 프로세스일 경우 enqueue_new_process(rq,p); else list_add_tail(&p->run_list, array->queue + p->prio); __set_bit(p->prio, array->bitmap); }
__list_add함수 파라미터도 잘 못 들어간것 같구요.
새로운 프로세스 확인 과정도 task_sched_runtime(p)가 맞는 걸까요?
enqueu_new_process함수내에 while문도 결국 task_sched_runtime이 제대로 수행 되어야 가능한건데ㅠㅠ
흠..ㅡ.ㅡㅋ....
Forums:
댓글 달기