0
点赞
收藏
分享

微信扫一扫

操作系统(3.3.1)--进程调度的任务、机制和方式

1.进程的调度任务

进程调度的任务主要有三:

(1)保存处理机的现场信息。在进程调度进行调度时,首先需要保存当前进程的处理机的现场信息,如程序计数器、多个通用寄存器中的内容等

(2)按某种算法选取进程。调度程序按某种算法从就绪队列中选取一个进程,把它的状态改为运行状态,并准备把处理机分配给它。

(3)把处理器分配给进程。由分派程序把处理器分配给该进程,此时需为选中的进程恢复处理机现场,即把选中进程的进程控制块内有关处理机现场的信息装入处理器相应的各个寄存器中,把处理器的控制权交给该进程,让它从取出的断点处开始继续运行。

进程调度机制(计算机操作系统第四版图例):

操作系统(3.3.1)--进程调度的任务、机制和方式_分派程序

2.进程调度机制

为了实现进程调度,应具有如下三个基本机制:

(1)排队器。为了提高进程调度的效率,应事先将系统中所有的就绪进程按照一定的方式排成一个或多个队列,以便调度程序能最快地找到它。

(2)分派器(分派程序)。分派器把由进程调度程序所选定的进程,从就绪队列中取出,然后进行上下文切换,将处理机分配给它。

(3)上下文切换机制。当对处理机进行切换时,会发生两对上下文切换操作。

  • ①第一对上下文切换时,操作系统将保存当前进程的上下文,而装入分派程序的上下文,以便分派程序运行;
  • ②第二对上下文切换时,将移出分派程序,而把新选进程的CPU现场信息装入到处理机的各个相应寄存器中,以便新进程运行。

3.进程调度方式

1)非抢占方式(Nonpreemptive Mode)

一旦把处理机分配给某进程后,不管它要运行多长时间,都一直让它运行下去,决不会因为时钟中断等原因而抢占正在运行进程的处理机,也不允许其它进程抢占已经分配给它的处理机。直至该进程完成,自愿释放处理机,或发生某事件而被阻塞时,才再把处理机分配给其他进程。

在采用非抢占调度方式时,可能引起进程调度的因素可归结为如下几个:

  • (1)正在执行的进程执行完毕,或因发生某事件而不能再继续执行;
  • (2)执行中的进程因提出I/0请求而暂停执行;
  • (3)在进程通信或同步过程中执行了某种原语操作,如P操作(wait操作)、Block原语、Wakeup原语等。
优缺点

非抢占调度方式的优点是实现简单,系统开销小,适用于大多数的批处理系统环境。但它难以满足紧急任务的要求——立即执行,因而可能造成难以预料的后果。在要求比较严格的实时系统中,不宜采用这种调度方式

2)抢占方式(Preemptive Mode)

允许调度程序根据某种原则去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。

抢占调度方式是基于一定原则的,主要有如下几条:

  • 优先权原则。
  • 短作业(进程)优先原则。
  • 时间片原则。
优缺点

抢占方式的优点是,可以防止一个长进程长时间占用处理机,能为大多数进程提供更公平的服务,特别是能满足对响应时间有着较严格要求的实时任务的需求。

但抢占方式比非抢占方式调度所需付出的开销较大。


举报

相关推荐

0 条评论