进程调度算法与系统设计解析

42、解释抢占式调度和非抢占式调度的区别。

当调度仅在进程从运行状态切换到等待状态、进程终止这两种情况下发生时,调度方案为 非抢占式 协作式 ;否则为 抢占式

  • 非抢占式调度
  • 一旦CPU分配给某个进程,该进程会一直占用CPU,直到它通过终止或切换到等待状态来释放CPU。

  • 抢占式调度

  • 当有新进程满足一定条件(如优先级更高)时,当前运行的进程可能会被抢占CPU。

现代操作系统 (如Windows、macOS、Linux和UNIX)大多使用抢占式调度算法。

43、考虑以下一组进程,CPU 突发时间长度以毫秒为单位给出:进程 突发时间 优先级 P1 2 2 P2 1 1 P3 8 4 P4 4 2 P5 5 3 假设这些进程按 P1、P2、P3、P4、P5 的顺序在时间 0 到达。a. 绘制四个甘特图,展示使用以下调度算法执行这些进程的情况:先来先服务(FCFS)、最短作业优先(SJF)、非抢占式优先级调度(优先级数字越大表示优先级越高)和时间片轮转(RR,时间片 = 2)。b. 对于 a 部分中的每个调度算法,每个进程的周转时间是多少?c. 对于这些调度算法,每个进程的等待时间是多少?d. 哪种算法导致所有进程的平均等待时间最短?

a. 甘特图绘制说明

  • FCFS :按进程到达顺序执行,即 P1 → P2 → P3 → P4 → P5。
  • SJF :按短作业优先顺序执行,即 P2 → P1 → P4 → P5 → P3。
  • 非抢占式优先级调度 :按优先级从低到高执行(数值越小优先级越高),执行顺序为 P2 → P1 → P4 → P5 → P3。
  • RR(时间片 = 2) :各进程按时间片轮转执行,依次调度未完成的进程。

b. 周转时间计算

调度算法 P1 P2 P3 P4 P5
FCFS 2 3 11 15 20
SJF 3 1 20 7 12
非抢占式优先级 3 1 20 7 12
RR 需根据轮转情况计算 需根据轮转情况计算 需根据轮转情况计算 需根据轮转情况计算 需根据轮转情况计算

注:周转时间 = 完成时间 - 到达时间


c. 等待时间计算

调度算法 P1 P2 P3 P4 P5
FCFS 0 2 3 11 15
SJF 1 0 12 3 7
非抢占式优先级 1 0 12 3 7
RR 需根据轮转情况计算 需根据轮转情况计算 需根据轮转情况计算 需根据轮转情况计算 需根据轮转情况计算

注:等待时间 = 周转时间 - 执行时间


d. 平均等待时间比较与结论

  • FCFS 平均等待时间 :(0 + 2 + 3 + 11 + 15) / 5 = 6.2
  • SJF 平均等待时间 :(1 + 0 + 12 + 3 + 7) / 5 = 4.6
  • 非抢占式优先级平均等待时间 :(1 + 0 + 12 + 3 + 7) / 5 = 4.6
  • RR 平均等待时间 :需计算后得出

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值