어제 리눅스 스케줄링 정책 추가 질문 올렸던 사람입니다'ㅡ'( 코드 추가 )
      글쓴이: 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: 


댓글 달기