您现在的位置:学赛首页 > 研究生院 > 软件学院 > 正文
操作系统第五章-处理机调度[8]
http://www.educity.cn 作者:研究生院 来源:学赛网 2008年4月25日 发表评论 进入社区

  20 20

  … …

  78 78

  5 98 39 39 70 3 18 76 15 18

  习题

  P103

  2

  10

  11

  UNIX的进程调度(P255)

  UNIX的进程调度采用多级反馈队列调度算法,系统设置了多个就绪队列。进程调度程序执行时:

  核心首先从处于“内存就绪”或“被剥夺”状态的进程中选择一个优先级最高的进程;

  若系统中同时有多个进程都具有最高优先级,则核心将选择其中处于就绪状态最久的进程,将它从所在队列移出,恢复其上下文,使之执行;

  仅当最高优先级队列中没有进程时,才从次高优先级队列中找出其队首进程,令它执行一个时间片后,又剥夺该进程的执行;

  然后,再从优先级最高的队列中取出下一个就绪进程投入运行。

  进程优先级的分类

  在UNIX系统中,进程的优先级分为两类:

  核心优先级。它又可进一步分为可中断和不可中断两类优先级。当一个软中断信号到达时,若进程正处于可中断优先级上睡眠,则进程立即被唤醒;若进程处于不可中断的优先级上,则进程继续睡眠。

  用户优先级。又可分成n+1级,其中第0级为最高优先级,第n级的优先级最低。

  进程优先级范围图

  优先数的计算

  UNIX System Ⅴ中的用户优先级是可变的,它随着占用CPU时间的增加而降低。核心每隔1秒钟便根据一个衰减函数来调整每个进程的最近CPU使用时间,并按下述公式对各进程重新计算其用户优先数(优先数越大优先级越低,优先数越小优先级越高)。

  decay(CPU)=CPU/2

  优先数=最近使用CPU的时间/2+基本用户优先数

  基本用户优先数是一个设定值,即proc结构中的nice。

  进程切换

  在操作系统中,凡是要进行中断处理和进程调度时,都将涉及到进程上下文的保存和恢复。

  中断时系统所保存和恢复的是同一个进程的上下文。而进程调度时则要进行进程上下文切换,此时系统所保存的是当前进程的上下文,而恢复的则是调度程序所选中进程的上下文。

[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]