操作系统——(3)处理机调度与死锁

一、处理机调度

1、定义

就绪队列中按照一定的算法选择一个进程并将处理及分配给它运行,以实现进程的并发执行

2、分类

(1)、高级调度(作业调度、宏观调度)

高级调度又称长程调度或作业调度,调度对象是作业,主要功能是根据某种算法,决定将外存上处于后备队列的哪几个作业调入内存,为它们创建进程,分配必要的资源,并将它们放入就绪队列。高级调度主要用于多道批处理系统中

任务:决定将外存上后备队列中的哪些作业调入内存

(3)、低级调度(进程调度)

又称进程调度或短程调度,其所调度的对象是进程(或内核级线程)主要功能是根据某种算法决定就绪队列中的哪个进程应能获得处理机,并由分派程序将处理机分配给被选中的进程。配置在多道批处理、分时和实时三种类型的OS中

任务:决定就绪队列中的哪些进程将获得处理机。

(3)、中级调度

又称内存调度,平衡负载调度,主要目的是提高内存利用率和系统吞吐量。暂时不能运行的进程,调至外存等待,把外存上的那些已具备运行条件的就绪进程再重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待。

二、进程调度方式

1、不可剥夺方式( 非抢占方式)

    1. 采用这种调度方式时,一旦把处理机分配给某个进程,该进程将一直执行下去,直到运行完毕或因某种原因不能运行,才把处理机分配给其它进程,决不允许其它进程强占正在运行进程占有的处理机。

2、可剥夺方式( 抢占方式)

    1. 这种方式下,允许一个进程按照某种原则,抢占其它进程占有的处理机。抢占采用优先权原则的比较多,也就是说,如果一个进程比正在运行进程的优先级高,则它可以抢占处理机而运行。

三、处理结果调度算法的目标

1、处理机调度算法的共同目标

  • 资源利用率

  • 公平性

  • 平衡性

  • 策略强制执行

2、批处理系统的目标

  • 平均周转时间短

  • 系统吞吐量高

  • 处理机利用率高

3、分时系统的目标

  • 响应速度快

  • 均衡性

4、实时系统的目标

  • 截止时间的保证

  • 可预测性

四、作业调度和进程调度

1、作业控制块JCB

(1)、定义

作业控制快JCB:为了管理和调度作业,在多道批处理操作系统中,为每个作业设置了一个作业控制块,它是作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需要的全部信息。

(2)、包含信息

  • 作业标识

  • 用户名称

  • 用户账号

  • 作业类型

  • 作业状态

  • 调度信息

  • 资源需求

  • 资源使用情况

(3)、JCB的三个阶段

  • 收容阶段

  • 运行阶段

  • 完成阶段

(4)、JCB的三种状态

  • 后备状态

  • 运行状态

  • 完成状态

2、批处理作业调度

(1)、先来先服务算法(FCFS)

思想:对于作业调度,从后备作业中选择最先进入该队列的作业,将他们调入内存,为它们分配资源、创建进程,然后放入就绪队列;或者说它是优先考虑在系统中等待时间最长的作业,而不管改作业所需执行时间的长短,从后备作业队列中选择几个最先进入该队列的作业,将他们调入内存,为他们分配子资源和创建进程,然后把它放入就绪队列。该算法只考虑作业的等待时间,而忽视了作业的运行时间。

特点:

(2)、短作业优先算法(SJF)

思想:短作业优先是从后备队列中选择估计运行时间最短的进程,将处理机分配给它,使之执行并一直到完成或因发生某事件而阻塞放弃处理机时,再重新调度。该算法只考虑作业的运行时间,而忽视了作业的等待时间

特点

缺点:

(3)、高响应比优先调度算法(HRRN)

是FCFS与SJF两种算法的折衷——既考虑作业等待时间,又考虑作业的运行时间,既照顾短作业又不使长作业等待过久,改善了调度性能,仍属于非抢占式算法

响应比为作业的响应时间与作业所需运行时间之比,简化为:

响应比 =1 +(已等待的时间 / 估计运行时间)

3、交互系统进程调度

(1)、时间片轮转法

进程按FCFS在就绪队列排队,调度程序把CPU分配给队首进程,令其执行一个时间片,一个时间片执行完毕将进程排在队尾。

  • 时间片大小的确定

  响应时间T=用户数目N*时间片q

  • 响应时间T

  当N一定,T与q成正比。T若要求快,则q也要小。

  • 就绪队列的进程数N

  T一定, q与N成反比。N越多, q要小。

系统的处理能力

  保证用户键入的常用命令能在一个时间片内处理完毕。

(2)、优先级调度算法(PAS)

在优先级调度算法中,则是基于作业的紧迫程度,由外部赋予作业相应的优先级,调度算法是根据该优先级进行调度的。这样就可以保证紧迫性作业优先运行。优先级调度算法可作为调作业调度算法,也可作为进程调度算法。当把该算法用于作业调度时,系统是从后备队列中选择若干个优先级最高的作业调入内存。

五、死锁

1、定义

死锁:一个进程集合中的每一个进程都在等待只能由该集合中的其它进程才能引发的事件,那么该进城进入死锁状态。

2、产生死锁的原因

3、产生死锁的必要条件

4、处理死锁的方法

  • 破坏“请求与保持条件”

  • 破坏“不可抢占条件”

  • 破坏“循环等待条件"

猜你喜欢

转载自blog.csdn.net/qq_41819893/article/details/121328922