当前位置: 首页 > news >正文

操作系统考试大题-处理机调度算法-详解-2

抢占式优先级调度步骤详解

在抢占式优先级调度中,当更高优先级的进程到达时,当前运行的进程会被中断,调度器会选择更高优先级的进程执行。调度顺序基于进程的优先级,优先级高的先执行(假设数字越小优先级越高)。

初始进程信息:
进程到达时间服务时间优先级
A033
B262
C444
D651
E825
调度过程:
  1. 时间 0:只有进程 A 到达,开始执行 A。

    • A 运行时间:0 → 2(此时 B 到达)

    • 当前时间:2

  2. 时间 2:检查就绪队列:

    • 已到达的进程:B(优先级 2)、A(优先级 3)。

    • B 的优先级高于 A,抢占 A 的执行。

    • A 剩余服务时间:3 - 2 = 1。

    • 执行 B。

    • B 运行时间:2 → 6(此时 D 到达)

    • 当前时间:6

  3. 时间 6:检查就绪队列:

    • 已到达的进程:A(剩余 1)、B(剩余 6 - 4 = 2)、C(到达时间 4)、D(优先级 1)、E(未到达)。

    • 就绪进程:A、B、C、D。

    • 优先级顺序:D(1)、B(2)、A(3)、C(4)。

    • D 的优先级最高,抢占 B 的执行。

    • B 剩余服务时间:6 - (6 - 2) = 2。

    • 执行 D。

    • D 运行时间:6 → 11(此时 E 到达)

    • 当前时间:11

  4. 时间 11:检查就绪队列:

    • 已到达的进程:A(剩余 1)、B(剩余 2)、C(到达时间 4)、E(优先级 5)。

    • 就绪进程:A、B、C、E。

    • 优先级顺序:B(2)、A(3)、C(4)、E(5)。

    • B 的优先级最高,继续执行 B。

    • B 运行时间:11 → 13

    • 当前时间:13

  5. 时间 13:检查就绪队列:

    • 就绪进程:A(剩余 1)、C、E。

    • 优先级顺序:A(3)、C(4)、E(5)。

    • 执行 A。

    • A 运行时间:13 → 14

    • 当前时间:14

  6. 时间 14:检查就绪队列:

    • 就绪进程:C、E。

    • 优先级顺序:C(4)、E(5)。

    • 执行 C。

    • C 运行时间:14 → 18

    • 当前时间:18

  7. 时间 18:检查就绪队列:

    • 就绪进程:E。

    • 执行 E。

    • E 运行时间:18 → 20

    • 当前时间:20

调度顺序:

A (0-2) → B (2-6) → D (6-11) → B (11-13) → A (13-14) → C (14-18) → E (18-20)

0 --A-- 2 --B-- 6 --D-- 11 --B-- 13 --A-- 14 --C-- 18 --E-- 20
计算各项时间:
进程到达时间服务时间完成时间周转时间 (完成时间 - 到达时间)带权周转时间 (周转时间 / 服务时间)
A031414 - 0 = 1414 / 3 ≈ 4.67
B261313 - 2 = 1111 / 6 ≈ 1.83
C441818 - 4 = 1414 / 4 = 3.5
D651111 - 6 = 55 / 5 = 1
E822020 - 8 = 1212 / 2 = 6
平均时间:
  • 平均周转时间 = (14 + 11 + 14 + 5 + 12) / 5 = 56 / 5 = 11.2

  • 平均带权周转时间 = (4.67 + 1.83 + 3.5 + 1 + 6) / 5 ≈ 17 / 5 ≈ 3.4

最终表格:
进程到达时间服务时间优先级开始时间完成时间周转时间带权周转时间
A033014144.67
B262213111.83
D65161151
C4441418143.5
E8251820126

非抢占式优先级调度步骤详解

        在非抢占式优先级调度中,进程一旦开始执行就会一直运行到完成,不会被更高优先级的进程打断。调度顺序基于进程的优先级,优先级高的先执行(假设数字越小优先级越高)。

初始进程信息:
进程到达时间服务时间优先级
A033
B262
C444
D651
E825
调度过程:
  1. 时间 0:只有进程 A 到达,开始执行 A。

    • A 运行时间:0 → 3

    • 当前时间:3

  2. 时间 3:检查就绪队列:

    • 已到达的进程:B(到达时间 2)、C(到达时间 4,未到达)、D(到达时间 6,未到达)、E(到达时间 8,未到达)。

    • 就绪进程:B。

    • 执行 B(优先级 2)。

    • B 运行时间:3 → 9

    • 当前时间:9

  3. 时间 9:检查就绪队列:

    • 已到达的进程:C(到达时间 4)、D(到达时间 6)、E(到达时间 8)。

    • 就绪进程:C、D、E。

    • 优先级顺序:D(1)、C(4)、E(5)。

    • 执行 D(优先级最高)。

    • D 运行时间:9 → 14

    • 当前时间:14

  4. 时间 14:检查就绪队列:

    • 就绪进程:C、E。

    • 优先级顺序:C(4)、E(5)。

    • 执行 C(优先级更高)。

    • C 运行时间:14 → 18

    • 当前时间:18

  5. 时间 18:检查就绪队列:

    • 就绪进程:E。

    • 执行 E。

    • E 运行时间:18 → 20

    • 当前时间:20

调度顺序:

A → B → D → C → E

0 --A-- 3 --B-- 9 --D-- 14 --C-- 18 --E-- 20
计算各项时间:
进程到达时间服务时间完成时间周转时间 (完成时间 - 到达时间)带权周转时间 (周转时间 / 服务时间)
A0333 - 0 = 33 / 3 = 1
B2699 - 2 = 77 / 6 ≈ 1.17
C441818 - 4 = 1414 / 4 = 3.5
D651414 - 6 = 88 / 5 = 1.6
E822020 - 8 = 1212 / 2 = 6
平均时间:
  • 平均周转时间 = (3 + 7 + 14 + 8 + 12) / 5 = 44 / 5 = 8.8

  • 平均带权周转时间 = (1 + 1.17 + 3.5 + 1.6 + 6) / 5 ≈ 13.27 / 5 ≈ 2.65

最终表格:
进程到达时间服务时间优先级开始时间完成时间周转时间带权周转时间
A0330331
B2623971.17
D65191481.6
C4441418143.5
E8251820126

 

最高响应比优先(HRRN)调度步骤详解

最高响应比优先(HRRN)是一种非抢占式调度算法,选择响应比最高的进程执行。响应比的计算公式为:

$$
[ R = \frac{\text{等待时间} + \text{服务时间}}{\text{服务时间}} ]
$$

初始进程信息:
进程到达时间服务时间
A03
B26
C44
D65
E82
调度过程:
  1. 时间 0:只有进程 A 到达,开始执行 A。

    • A 运行时间:0 → 3(完成)

    • 当前时间:3

  2. 时间 3:检查就绪队列:

    • 已到达的进程:B(到达时间 2)、C(到达时间 4,未到达)、D(到达时间 6,未到达)、E(到达时间 8,未到达)。

    • 就绪进程:B。

    • 执行 B。

    • B 运行时间:3 → 9(完成)

    • 当前时间:9

  3. 时间 9:检查就绪队列:

    • 已到达的进程:C(到达时间 4)、D(到达时间 6)、E(到达时间 8)。

    • 计算响应比:


      • ( R_C = \frac{(9 - 4) + 4}{4} = \frac{9}{4} = 2.25 )

      • ( R_D = \frac{(9 - 6) + 5}{5} = \frac{8}{5} = 1.6 )
      • ( R_E = \frac{(9 - 8) + 2}{2} = \frac{3}{2} = 1.5 )
    • C 的响应比最高,执行 C。

    • C 运行时间:9 → 13(完成)

    • 当前时间:13

  4. 时间 13:检查就绪队列:

    • 已到达的进程:D(到达时间 6)、E(到达时间 8)。

    • 计算响应比:

      • ( R_D = \frac{(13 - 6) + 5}{5} = \frac{12}{5} = 2.4 )

      • ( R_E = \frac{(13 - 8) + 2}{2} = \frac{7}{2} = 3.5 )

    • E 的响应比最高,执行 E。

    • E 运行时间:13 → 15(完成)

    • 当前时间:15

  5. 时间 15:检查就绪队列:

    • 已到达的进程:D(到达时间 6)。

    • 执行 D。

    • D 运行时间:15 → 20(完成)

    • 当前时间:20

调度顺序:

A → B → C → E → D

0 --A-- 3 --B-- 9 --C-- 13 --E-- 15 --D-- 20
计算各项时间:
进程到达时间服务时间完成时间周转时间 (完成时间 - 到达时间)带权周转时间 (周转时间 / 服务时间)
A0333 - 0 = 33 / 3 = 1
B2699 - 2 = 77 / 6 ≈ 1.17
C441313 - 4 = 99 / 4 = 2.25
E821515 - 8 = 77 / 2 = 3.5
D652020 - 6 = 1414 / 5 = 2.8
平均时间:
  • 平均周转时间 = (3 + 7 + 9 + 7 + 14) / 5 = 40 / 5 = 8

  • 平均带权周转时间 = (1 + 1.17 + 2.25 + 3.5 + 2.8) / 5 ≈ 10.72 / 5 ≈ 2.14

最终表格:
进程到达时间服务时间开始时间完成时间周转时间带权周转时间响应比(选择时)
A030331-
B263971.17-
C4491392.252.25
E82131573.53.5
D651520142.82.4
关键点说明:
  1. 响应比计算

    • 在时间 9:C、D、E 的响应比分别为 2.25、1.6、1.5,选择最高的 C。

    • 在时间 13:D、E 的响应比分别为 2.4、3.5,选择最高的 E。

  2. 非抢占式:进程一旦开始执行,会一直运行到完成。

  3. 性能指标

    • 平均周转时间:8(时间单位)

    • 平均带权周转时间:2.14

http://www.lqws.cn/news/605125.html

相关文章:

  • 【GHS】Green Hills软件MULTI-IDE的安装教程
  • 文心快码答用户问|Comate AI IDE专场
  • UniApp(vue3+vite)如何原生引入TailwindCSS(4)
  • 如何备份和恢复 Ubuntu 系统 ?
  • Electron 快速上手
  • AWS RDS Aurora全局数据库转区域数据库实战指南:无缝迁移零停机
  • 数学建模_插值
  • 银行回单ocr api集成解析-图像文字识别-文字识别技术
  • Linux--线程池
  • Node.js 使用 WebSockets 和 Socket.IO 实现实时聊天应用程序
  • 移动conda虚拟环境的安装目录
  • MAC 多应用切换技巧,单应用切换技巧
  • Adobe高阶技巧与设计师创意思维的进阶指南
  • 「日拱一码」015 机器学习常用库——scikit-learn
  • Appium与Appium Inspector配置教程
  • 埃隆・马斯克公司Neuralink 2025发布:脑机接口的跨越式突破
  • 【GNSS定位原理及算法杂记2】GNSS观测量:伪距、载波相位、多普勒频移
  • Day 24
  • 使用 Ansys Discovery 为初学者准备几何结构
  • IDS检测原理和架构
  • 分布式定时任务:xxl-job
  • CDC是什么?一文讲清CDC如何打通数据孤岛
  • linux升级降级内核实验
  • 使用 Pytorch Lightning 时追踪指标和可视化指标
  • JavaEE-博客系统项目
  • 不引入变量 异或交换的缺点
  • 模板编译原理
  • OpenLayers 入门指南:序言
  • TEXT Submitting Solutions
  • SpringBoot中RocketMQ的使用教程