第3章 处理机调度与死锁

第3章 处理机调度与死锁

3.1 处理机调度的层次和调度算法的目标

  1. 作业
    用户提交作业以后(用户提交给操作系统计算的一个独立的任务),当作业被调度,系统会为作业创建进程,一个进程无法完成时,系统会为这个进程创建子进程。
  2. 进程:完成任务的执行实体
  3. 联系:
    没有作业任务,进程无事可做;
    没有进程,作业任务无法完成。
    一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。
3.1.1 处理机调度的层次

调度层次

  1. 高级调度(作业调度或长程调度)
    调度对象:作业

  2. 低级调度(进程调度或短程调度)
    调度对象:进程或内核级线程

  3. 中级调度(内存调度)
    定义:把暂时不能运行的进程调度至外存等待,被调出的进程的状态称为就绪驻外存状态(挂起状态),实际上就是存储器管理中的对换功能
    调度对象:进程
    目的:提高内存利用率和系统吞吐量

3.1.2 处理机调度算法的目标

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

  • 资源利用率
    在这里插入图片描述
  • 公平性
    使诸进程都获得合理的CPU时间,不会发生饥饿现象。
  • 平衡性
    调度算法应尽可能保持系统资源使用的平衡性。
  • 策略强制执行
    只要需要,就必须予以明确的执行,即使会造成某些工作的延迟也要执行。

2、批处理系统的目标

  • 平均周转时间短
    周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔。
  • 系统吞吐量高
    吞吐量指的是在单位时间内系统所完成的作业书
  • 处理及利用率高

3、分时系统的目的

  • 响应时间快
    响应时间:从用户通过键盘提交一个请求开始,直到屏幕上显示出处理结果为止的一段时间间隔。
  • 均衡性
    系统响应时间的快慢应与用户所请求的服务的复杂性相适应

4、实时系统的目的

  • 截至时间的保证
    指某任务必须开始的最迟时间或必须完成的最迟时间。
  • 可预测性
    eg:3D重建、电影的连续播放

3.2 作业与作业调度

作业
用户提交给操作系统计算的一个独立的任务。
作业:任务实体
进程:完成任务的执行实体
没有作业任务,进程无事可做;
没有进程,作业任务无法完成。
3.2.1 批处理系统中的作业
  1. 作业和作业步
    以作业为基本单位从外存调入内存
    作业步:编译→链接装配→运行

  2. 作业控制块JCB
    保存了系统对作业进行管理和调度所需的全部信息。

  3. 运行阶段和运行状态
    在这里插入图片描述

3.2.2 作业调度的主要任务
  1. 接纳多少个作业
    在每一次进程调度时,应当从后备队列中选取多少作业调入内存,取决于多道程序度,即允许多少个作业同时在内存中运行。

  2. 接纳哪些作业
    应选择后备队列中的那些作业调入内存,取决于所采用的调度算法。

  3. 最简单:先来先服务算法。
    常用:短作业优先、基于作业优先级的调度算法
    较好:相应比高优先调度算法

3.2.3 先来先服务调度算法(FCFS)

按照作业到达的先后次序来进行调度;
优先考虑在系统中等待时间最长的作业;

示例:
在这里插入图片描述

  1. 周转时间:进入调度进内存的总时间(就绪时间+执行时间)
    周 转 时 间 = 作 业 完 成 时 刻 − 作 业 到 达 时 刻 周转时间=作业完成时刻-作业到达时刻 =
  2. 带权周转时间:
    带 权 周 转 时 间 = 周 转 时 间 ÷ 服 务 时 间 带权周转时间=周转时间\div服务时间 =÷
  3. 平均周转时间=作业周转总时间/作业个数;
  4. 平均带权周转时间=带权周转总时间/作业个数;

3.2.4 短作业优先调度算法(SJF)

1、定义:以作业的长短来计算优先级,作业越短,其优先级越高

示例:
在这里插入图片描述

作业

作业1
有一个内存中只能装入2道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的抢占式调度算法。如下表所示,表中所列优先数是进程调度的优先数,且优先数越小优先级越高。
在这里插入图片描述
问:
(1) 列出所有作业进入内存的时刻以及结束的时刻。
(2) 计算作业的平均周转时间。
答:
在这里插入图片描述


3.2.5 优先级调度算法(PSA)

基于作业的紧迫程度,由外部赋予作业相应的优先级;
调度算法根据优先级进行调度。

3.2.6 高响应比优先调度算法

以作业的长短来计算优先级,作业越短,其优先级越高;
作业的长短是以作业所要求的运行时间来衡量的。
在这里插入图片描述


3.3 进程调度(重点)

3.3.1 进程调度的任务、机制和方式

1、任务

  • 保存处理机现场信息
  • 按某种算法选取程序
  • 把处理器分配给进程

2、进程调度机制
在这里插入图片描述
3、调度方式
非抢占式
抢占式


3.3.2 轮转调度算法(重点)

基于时间片的轮转(round robin,RR)调度算法

  1. 原则
    系统将所有的就绪进程按照FCFS策略排成一个就绪队列。

  2. 进程切换时机
    若一个时间片尚未用完,正在运行的进程便已完成,则立即激活调度程序,将其从就绪队列中删除,再调度就绪队列中队首进程运行;
    在一个时间片用完时,计时器中断处理程序被激活,若进程尚未运行完毕,调度程序将其送到就绪队列的末尾。

  3. 时间片大小的确定
    略大于一次典型的交互所需要的时间,使大多数交互式进程能在一个时间片内完成,从而获得很小的响应时间。

示例:
在这里插入图片描述
答:

  1. 一线法:时间线上CPU,时间线下就绪队列
    在这里插入图片描述
  2. 图示法
    在这里插入图片描述

3.3.3 多级反馈队列调度算法(重点)

多级反馈队列调度算法

  1. 设置多个就绪队列
    优先级:高级就绪队列>低级就绪队列
    被抢占时:第 0~ n-1 队列 抢占第 n 队列进程A时,进程A进入该第 n 队列末尾。
  2. 每个就绪队列中采用FCFS算法
    在这里插入图片描述

作业

作业1
假设一个系统中有5个进程,它们的到达时间和服务时间如下表所示,忽略I/O以及其他开销时间,若分别按
先来先服务(FCFS)
抢占的短作业优先(SJF)
时间片轮转(RR,时间片=1)
多级反馈队列调度算法(FB,第级队列的时间片=2i-1)。
在这里插入图片描述
问:
请给出各进程的完成时间,周转时间带权周转时间,平均周转时间和平均带权周转时间。
答:

  1. FCFS
    在这里插入图片描述
  2. SJF
    在这里插入图片描述
  3. RR
    在这里插入图片描述
  4. FR
    在这里插入图片描述

3.4 实时调度

3.4.1 实现实时调度的基本条件
  1. 信息
    就绪时间
    开始截止时间和完成截止时间
    处理时间
    资源要求
    优先级

  2. 系统处理能力

  3. 采用抢占式调度机制平衡性
    优先权
    开始截止时间
    结束截止时间

  4. 具有快速切换机制
    对中断的快速响应能力
    快速的任务分派能力

3.4.2 实时调度算法的分类

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


3.4.3 最早截止时间优先算法EDF(Earliest Deadline First)

看谁的截止时间最早,谁先执行
在这里插入图片描述

示例
例:有2个周期性任务:
A:周期20ms,处理时间10ms
B:周期50ms,处理时间25ms
在这里插入图片描述


3.4.4 最低松弛度优先算法LLF(Least laxity First)

最低松弛度优先算法:松驰度为0时抢占

  1. 优先级:根据任务的紧急情况。
  2. 公式:
    松 驰 度 = 必 须 完 成 时 间 − 其 本 身 运 行 所 需 时 间 − 当 前 时 间 松驰度=必须完成时间-其本身运行所需时间-当前时间 =
  3. 开始运行后:
    松驰度不变:做做反而有多余时间吗?做做反而完成不了吗
    其本身运行所需时间 ↓ \darr

示例
例:有2个周期性任务:
A:周期20ms,处理时间10ms
B:周期50ms,处理时间25ms
在这里插入图片描述


3.7 避免死锁

3.7.1 系统安全状态

预先并不设置限制性条件!但是把系统分为安全和不安全状态,在每次资源分配的时候,检测是否导致系统进入不安全状态。保证系统永远处于安全状态。

示例:
在这里插入图片描述
问:此时,P3申请一台设备,能分配吗?
答:不能,不安全。
问:此时,P2申请一台设备,能分配吗?
答:可以,安全,能找到一个安全序列(P2-P1-P3)
问:此时,P1申请一台设备,能分配吗?
答:可以,安全能找到一个安全序列(P2-P1-P3)


3.7.2 利用银行家算法避免死锁

示例:
在这里插入图片描述
问:判断该状态是否安全?
答:安全,能找到一个安全序列(P1-P3-P4-P0-P2)
问:若进程P1提出请求Request(1、0、2)后,系统能否将资源分配给它。
答:可以,因为有安全序列

练习:
题目: 在银行家算法中,若出现下面的资源分配情况:
在这里插入图片描述
问:
1、请计算每组进程对应Allocation的值。
2、判断该状态是否安全?
3、若进程P2提出请求Request(1、2、2、2)
后,系统能否将资源分配给它。
4、如果系统立即满足P2的请求,系统是否立即进入死锁状态?


3.8 死锁的检测与解除

3.8.1 死锁的检测
3.8.1 死锁的解除

抢占资源\终止进程

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

folielxx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值