考研帮 > 数学 > 每日一练

2.3 处理机调度

2.3.3 调度时机、切换与过程

  调度通常在进程切换时进行,本小节将重点介绍引起进程调动的主要因素、调度的队列及分派程序。
  1.引起进程调度的因素
  引起进程调度的因素与操作系统的类型有关,也与操作系统内核的具体实现方法有关。把引起进程调度的因素归纳起来,大体上可分为如下5个:
  正在执行进程执行完毕或发生某事件而不能再继续执行;
  执行中的进程因提出I/O请求而暂停执行;
  在进程通信或同步过程中执行了某种原语操作,如P操作等;
  在可剥夺式调度中,有一个比当前进程优先级更高的进程进入就绪队列;
  在时间片轮转法中,分配的时间片用完。
  2.调度队列
  在单处理机系统中,只有一个进程处于执行状态,其余所有进程或者在就绪队列中等待CPU,或者因提出I/O请求,而在相应的设备队列中等待。每一个或每一类设备都有自己的队列。对于某些专用设备,如分时终端,至多有一个进程;而对一些可共享设备,如磁盘,可能有多个进程队列在等待。凡在设备队列上等待的进程,当其I/O请求完成后,便进入就绪队列;此外,新创建进程也放在就绪队列中。
  系统可以把就绪队列组织成栈、树或一个无序链表。至于采用何种组织形式,与所采用的调度算法有关。例如,在轮转法中,就绪进程常组织成FIFO队列形式。在最高优先级优先调度算法中,进程在进入就绪队列时,根据其优先级的高低,把它插在队列中相应优先级的位置上。这样,调度程序总是把处理机分配给就绪队列中的首进程。在最高优先级优先的调度算法中,也可采用无序链表方式,即每次进程进入就绪队列时,只被放在队尾,而由调度算法在每次调度时,依次比较队列中各个进程的优先级,从中找出优先级最高的进程,把处理机分配给它。显然,比起优先级队列来说,这种方式调度效率比较低。
  3.分派程序
  进程调度算法只是决定哪一个进程将获得处理机,而将处理机分配给该进程的具体操作是由分派程序完成的。分派程序首先将正在执行进程的CPU状态保存在该进程的PCB的现场保留区中,再从被调度程序选中的进程PCB现场保留区中,取出其CPU状态信息来重新布置CPU现场。CPU状态信息包括程序状态寄存器、若干个通用寄存器、程序计数器等信息。这样被调度到的进程便可继续执行。

关于"最后阶段,真题的正确打开方式_备考经验_考研帮"15名研友在考研帮APP发表了观点

扫我下载考研帮

考研帮地方站更多

你可能会关心:

来考研帮提升效率

× 关闭