第二章进程管理(2)

第二章进程管理(2)

2.2 调度

2.2.1 处理机调度的概念及层次

1. 处理机调度的基本概念
  • 就绪队列 → 处理机
    在这里插入图片描述
2. 调度的三个层次
  • 高级调度(作业调度)
  • 中级调度(内存调度)
  • 低级调度(进程调度)

(1)高级调度(作业调度)

  • 作用对象:作业
  • 位置变化:外存 → 内存(建立PCB)
  • 使用频率:一个作业经历两次
    • 运行作业:调入(由操作系统决定),一次
    • 作业结束:调出,一次
      在这里插入图片描述

(2)中级调度(内存调度)

  • 作用对象:“挂起”状态的进程(引入挂起状态)
  • 挂起状态:将不能运行的进程放置外存,(但对应的PCB还留在内存
  • 位置变化:外存 → 内存【激活挂起进程】【将进程设置成挂机状态貌似不叫中级调度】
  • 使用频率:一个进程可被使用多次
    在这里插入图片描述

(3)补充知识:进程的挂起态与七状态模型

  • 新增加状态:就绪挂起、阻塞挂起
  • 挂起与阻塞的区别:位置的不同(外存、内存)
    在这里插入图片描述

(4)低级调度(进程调度)

  • 作用对象:“就绪”状态的进程
  • 位置变化:内存 → CPU
  • 使用频率:使用频率最高的调度,一个进程可被使用多次
    在这里插入图片描述

(5)三层调度的联系和对比
在这里插入图片描述

3. 本节整体结构

在这里插入图片描述


2.2.2 进程调度的时机、方式、切换与过程

【进程调度(低级调度):是处理机调度的其中一个层次】

1. 时机

(1)需要进行进程调度的情况
在这里插入图片描述

(2)不能进行进程调度的情况
在这里插入图片描述

(3)内核程序临界区与普通临界区的进程调度情况(不能进程调度的第二种情况)

  • 临界资源、临界区
    在这里插入图片描述

  • 内存程序临界区【不能进行进程调度】
    在这里插入图片描述

  • 普通临界区【可以进行进程调度】
    在这里插入图片描述

2. 进程调度的方式
  • 根据进程主动 or 被动放弃处理机的划分方式
    在这里插入图片描述
3. 进程的切换与过程
  • 这里是进程的切换(涉及两个进程),不是进程状态的切换(涉及单个进程的状态)
    在这里插入图片描述
4. 本节整体结构

在这里插入图片描述


2.2.3 调度算法的评价标准

1. CPU利用率

在这里插入图片描述

2. 系统吞吐量

在这里插入图片描述

3. 周转时间
  • (作业)周转时间

    • 组成部分:高级调度(单次) + (就绪态 + 执行态 + 阻塞态)(多次)
      在这里插入图片描述
  • 带权周转时间
    在这里插入图片描述

4. 等待时间
  • 针对的对象不同,开始的时机不同
    在这里插入图片描述
5. 响应时间

在这里插入图片描述


2.2.4 作业/进程调度算法

  • (FCFS先来先服务、SJF短作业优先、HRRN高响应比优先)
1. 学习算法思路

在这里插入图片描述

2. 先来先服务-FCFS(First come first sever)
  • 介绍
    在这里插入图片描述

  • 例题
    在这里插入图片描述

3. 短作业优先-SJF(Shortest Job First)
  • 介绍

    • 最短的平均等待时间、平均周转时间
      在这里插入图片描述
  • 例题

    • 非抢占式——对应进程的称为SPF
      在这里插入图片描述

    • 抢占式——SRTN
      在这里插入图片描述

在这里插入图片描述

  • 注意几个细节
    在这里插入图片描述
4. 高响应比优先-HRRN(Highest Response Ratio Next)
  • 高响应比优先是FCFS和SJF的综合
    在这里插入图片描述

  • 介绍
    在这里插入图片描述

  • 例题
    在这里插入图片描述

5. 三种算法的对比总结

在这里插入图片描述


2.2.5 作业/进程调度算法

1. 学习算法思路

在这里插入图片描述

2. 时间片轮转-RR(Round-Robin)
  • 介绍(时间片特指:处理机时间片,所以用于进程调度)
    在这里插入图片描述

  • 例题

    • 【时间片 == 2的情况】
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    • 【时间片 == 5的情况】
      在这里插入图片描述

    • 时间片太大的问题
      在这里插入图片描述

    【时间片最小的程度:一般来说,设计时间片要让切换进程的开销占比不超过1%】
    在这里插入图片描述

3. 优先级调度算法
  • 介绍
    在这里插入图片描述

  • 例题

    • 【非抢占例子】
      在这里插入图片描述

    • 【抢占例子】
      在这里插入图片描述

  • 补充

    • 优先级是否可以动态变化:静态、动态优先级;
    • 可以把高响应比优先算法,看作是特殊的优先级调度算法。
      在这里插入图片描述
4. 多级反馈队列调度算法

在这里插入图片描述

5. 三种算法的对比总结

在这里插入图片描述


2.2.6 上述6种调度算法的分类

  1. 只能用于进程调度的算法:
    • 时间片轮转
    • 多级反馈队列调度算法
  2. 只有抢占式的算法:
    • 时间片轮转
    • 多级反馈队列调度算法
  3. 只有非抢占式的算法:
    • 先来先服务
    • 高响应比优先
  4. 既有抢占式、也有非抢占式的算法:
    • 短作业优先
    • 优先级调度算法
  5. 会造成进程饥饿的算法:
    • 短作业优先:一直有短进程/作业到达,长进程/作业得不到服务;
    • 优先级调度算法:一直有高优先级进程/作业到达,之前已经到达的低优先级进程/作业得不到服务;
    • 多级反馈队列调度算法:一直有新的短进程到达,导致下级队列中的进程得不到服务。

参考:

  • https://www.bilibili.com/video/av70156862
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值