code:setpri - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki
- 计算并设置指定进程的进程优先级
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;
2165 if(p > curpri)
- 进程优先级 p = min{127,(p-cpu/16 + PUSER + p-nice)}
- 参看 进程优先级
2166 runrun++;
2167 pp->p_pri = p;关于这点的解释,参看 进程调度#runrun
- 若 p > curpri (优先级小于现行进程的优先级),则置runrun申请进程切换
- 看似这个结论很不合逻辑,应当是优先级高于现行进程时才置runrun申请进程切换
2168 }
2169 /* ------------------------- */