第3章 处理机调度与死锁1

1 处理机调度

1.1 分级调度

1.2 作业调度

1.3 进程调度

1.4 常用调度算法

2 死锁

2.1 死锁的概念

2.2 死锁产生的必要条件

2.3 死锁的描述

2.4 死锁的解决方法

2.5 死锁的预防

2.6 死锁的避免

2.7 死锁的检测和解除

3.1 分级调度

3.1.1 作业的状态及其转换

在这里插入图片描述
在这里插入图片描述

作业在整个活动期间一共有四种状态:

  • (1)提交状态
    即用户向系统提交一个作业时,该作业所处的状态。
  • (2)后备状态
    即用户作业经输入设备(如读卡机)送入输出设备(磁盘)中存放,等待进入内存时所处的状况。此时,该作业的数据已转换成内部的机器可读的形式,并且作业请求资源等信息也交给了操作系统。
  • (3)执行状态
    即作业分配到所需的资源,被调入内存,并且在处理机(CPU)上执行相应的程序时所处的状况。此时该作业真正处于活动状况。
  • (4)完成状态
    即作业完成了计算任务,结果由打印机输出,最后由系统回收分配给它的全部资源,准备退出系统时的作业状况。

在这里插入图片描述

3.1.2 调度的层次

  • 1.调度的层次
    所谓调度就是选出待分派的作业或进程。
    处理机调度的主要目的就是为了分配处理机。
    在不同的操作系统中所采用的调度方式并不完全相同。有的系统中仅采用一级调度,而有的系统采用两级或三级,并且所用的调度算法也完全可能不同。
    一般说来,作业从进入系统到最后完成,可能要经历三级调度:高级调度、中级调度和低级调度
    • (1)高级调度:
      又称作业调度或宏观调度。

      其主要功能是根据一定的算法,从输入的一批作业中选出若干个作业,分配必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输入、输出进程),最后把它们的程序和数据调入内存,等待进程调度程序对其执行调度,并在作业完成后作善后处理工作,回收系统资源。

    • (2)中级调度:
      又称交换调度。

      为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。特别在采用虚拟存储技术的系统或分时系统中,往往增加中级调度这一级。

      所以中级调度的功能是在内存使用情况紧张时,将一些暂时不能运行的进程从内存对换到外存上等待。当以后内存有足够的空闲空间时,再将合适的进程重新换入内存,等待进程调度。引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。

      它实际上就是存储器管理中的对换功能。

    • (3)低级调度:
      又称进程调度或微观调度。

      其主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。

      执行低级调度功能的程序称作进程调度程序,由它实现CPU在进程间的切换。进程调度的运行频率很高,在分时系统中往往几十毫秒就要运行一次。

      进程调度是操作系统中最基本的一种调度。在一般类型的操作系统中都必须有进程调度,而且它的策略的优劣直接影响整个系统的计能。

3.1.3 作业与进程的关系

在这里插入图片描述

3.2 作业调度

3.2.1 作业调度功能

1.作业控制块(JCB)
每个作业进入系统时由系统为其建立JCB(Job Control Block,作业控制块)。
作业存在的整个过程中,相应的JCB也存在,只有当作业退出系统时,JCB才被撤销。
JCB是一个作业存在的标志。每个JCB记录了与该作业有关的信息,而具体的内容根据作业调度的要求而定。对于不同的系统,其JCB内容也有所不同。
在这里插入图片描述
2. 作业调度功能
(1)确定数据结构–JCB
(2)确定调度算法
(3)分配资源
(4)善后处理

3.2.2 作业调度目标与性能衡量

  • 作业调度目标:
    (1)公平对待后备作业中的每一个作业。
    (2)使进入内存的多个作业能均衡地使用系统中的资源。
    (3)力争在单位时间内尽可能多地为作业提供服务,提高系统吞吐量。

  • 性能指标:
    (1)处理器利用率要高
    处理器利用率一般在40%—90%
    (2)周转时间要短
    周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔。
    包括:作业在外存后备队列上的等待调度时间、进程在就绪队列上的等待时间、进程在CPU上执行时间、进程等待I/O操作完成时间四个部分。
    平均周转时间
    带权周转时间:作业周转时间T与系统为它提供服务的时间Ts之比
    平均带权周转时间
    (3)系统吞吐量要高
    单位时间内系统完成的作业数

常用调度算法

在这里插入图片描述

在这里插入图片描述

1 先来先服务调度算法

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 短进程优先调度算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

短进程优先调度算法的特点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 高响应比优先调度法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 时间片轮转法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5 优先级法

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.3 进程调度

3.3.1 进程调度的功能和时机

  1. 进程调度的功能
    按照一定的策略,动态地把处理机分配给就绪队列中某一进程,以便使之执行。
    功能:
    (1)记录和保持系统中多有进程的有关情况和状态特征
    (2)决定分配策略
    (3)完成处理机的分配(上下文切换)
    (4)完成处理机的回收

  2. 进程调度的时机
    ①进程完成其任务时。
    ②在一次管理程序调用之后,该调用使现行程序暂时不能继续运行时。
    ③在一次出错陷入之后,该陷入使现行进程在出错处理时被挂起时。
    ④在分时系统中,当进程使用完规定的时间片,时钟中断使该进程让出处理机时。
    ⑤在采用可剥夺调度方式的系统中,当具有更高优先级的进程要求处理机时。

处理机分派程序的操作是非常简单的,它包括如下内容:
①从选中进程的PCB中恢复现场。
②控制转向该进程,它从刚恢复的程序计数器所指示的指令地址开始执行

  1. 上下文切换
    进程上下文是指由正文段、数据段、硬件寄存器的内容及有关的数据结构组成的环境。
    在发生进程调度时,系统必须要做上下文的切换,其切换包括以下步骤:
    (1)决定上下文切换的时机
    (2)保存当前执行进程的上下文
    (3)使用合适的调度算法,选择一个处于就绪状态的进程
    (4)装配所选进程的上下文,将CPU控制权交给所选进程

当一个进程正在运行时,有某个“重要而紧迫”的进程需要处理时,如何分配处理机。

  • 非抢占方式:
    • 仍然让正在执行的进程继续执行,直到该进程完成或发生某事件(如提出I/O请求)而进入“完成”或“等待”状态时,才把处理机分配给“重要而紧迫”的进程,以使之执行。
    • 简单,系统开销小,适用批处理系统中。
  • 抢占调度方式:
    • “重要而紧迫”的进程一到,便暂停正在执行的进程,立即把处理机分配给它。这种方式称为剥夺调度方式。
    • 及时响应,适用于分时和实时系统中。
    • 抢占式

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.3.2 进程调度方式

3.3.3 进程调度性能评价

常用调度算法
在这里插入图片描述

习题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值