3

在 xv6 中实现优先级调度算法?

但我无法理解如何处理调度。我可以使用此代码设置优先级。

int
set_priority(int pid,int priority)
{
  struct proc *p;
  //acquire(&ptable.lock);
  //cprintf("Set Priority - %d \n",priority);
  for(p = ptable.proc; p < &ptable.proc[NPROC]; p++){
    if((p->pid == pid) || (p->parent->pid == pid)){
      p->priority = priority;
      return 0;
    }
  }
  //release(&ptable.lock);
  return -1;
} 
4

1 回答 1

3

首先,您需要在 中添加一个字段(优先级) struct proc

struct proc{
   //
  ....
  int priority; // priority of the process
}

其次,您现在可以编写自己的调度程序proc.c

void scheduler(void){
    for(;;){
    //add your own priority scheduler here.
    }
}
于 2015-03-19T21:26:43.250 回答