Linux中有关可运行程度衡量的思维导图,包括可运行程度的衡量等
树图思维导图提供 可运行程度衡量思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 可运行程度衡量思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:876c11500074460b0afadf6d71f2ae2d
可运行程度衡量思维导图思维导图模板大纲
函数 goodness()就是用来衡量一个处于可运行状态的进程值得运行的程度
给每个处于可运行状态的进程赋予一个权值(weight)
调度程序以这个权值作为选择进程的唯一依据
如果 p->mm 为空,则意味着该进程无用户空间(例如内核线程),则无需切换到用户空间
如果 p->mm=this_mm,则说明该进程的用户空间就是当前进程的用户空间,该进程完全有可能再次得到运行
进程的优先级 nice 是从早期 UNIX 沿用下来的负向优先级
其数值标志“谦让”的程度,其值越大,就表示其越“谦让”,也就是优先级越低,其取值范围为-20~+19
(20-p->nice)的取值范围就是 0~40
普通进程的权值不仅考虑了其剩余的时间片,还考虑了其优先级,优先级越高,其权值越大
如果当前进程既没有自己的地址空间,也没有向别的进程借用地址空间,那肯定出错
如果 schedule()在中断服务程序内部执行,那也出错
从运行队列中选择最值得运行的进程,也就是权值最大的进程
如果已经选择的进程其权值为 0,说明运行队列中所有进程的时间片都用完了
队列中肯定没有实时进程,因为其最小权值为 1000
进程地址空间的切换
果 next->mm 与next->active_mm 相同,那么,switch_mm( )函数就把该进程从内核空间切换到用户空间,也就是加载 next 的页目录