code:setpri - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki

Source

2149

2150 /*

2151  * Set user priority.

2152  * The rescheduling flag (runrun)

2153  * is set if the priority is higher

2154  * than the currently running process.

2155  */

2156 setpri(up)

2157 {

2158     register *pp, p;

2159

2160     pp = up;

2161     p = (pp->p_cpu & 0377)/16;

2162     p =+ PUSER + pp->p_nice;

2163     if(p > 127)

2164          p = 127;

  • 进程优先级 p = min{127,(p-cpu/16 + PUSER + p-nice)}
  • 参看 进程优先级
2165     if(p > curpri)

2166          runrun++;

  • 若 p > curpri (优先级小于现行进程的优先级),则置runrun申请进程切换
  • 看似这个结论很不合逻辑,应当是优先级高于现行进程时才置runrun申请进程切换
关于这点的解释,参看 进程调度#runrun
2167     pp->p_pri = p;

2168 }

2169 /* ------------------------- */

Ref

Caller

⚠️ **GitHub.com Fallback** ⚠️