OS-额外两道题作业

文章详细描述了短作业优先的作业调度策略和抢占式进程调度算法的应用,以及在银行家算法中的资源分配安全判断。通过实例展示了作业A-D的执行顺序和平均周转时间,同时分析了给定资源情况下银行家算法的决策过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内容仅供参考

1. 有一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的抢占式调度算法,有如下表所示的作业序列(表中所列作业优先数即为进程优先数,数值越小优先级越高)。

① 列出所有作业进入内存的时间及结束时间;要写出为什么

② 计算平均周转时间。

作业名到达时间估计运行时间优先数
A10:0040分5
B10:2030分3
C10:3050分4
D10:5020分6

答:

① 作业进入内存时间及结束时间

作业 A

  • 到达时间:10:00
  • 进入内存时间:10:00
  • 结束时间:11:10
  • 原因:作业A到达时,系统内存为空,因此立即进入内存并开始执行。10:20,优先级更高的B到达,A被抢占,进入就绪态,此时A还有20分钟;10:30,C到达,但内存中已有A和B两个作业;10:50,B运行结束,D进入内存,但A的优先级比D高,A先执行,执行20分钟,在11:10结束。

作业 B

  • 到达时间:10:20
  • 进入内存时间:10:20
  • 结束时间:10:50
  • 原因:作业B到达时,作业A正在执行,内存中只有A,且作业A的估计运行时间还剩20分钟。根据抢占式调度算法,当新作业到达时,如果其优先级高于正在执行的作业,则会被抢占。因此,作业B进入内存并开始执行。作业B的估计运行时间为30分钟,所以结束时间为10:50。

作业 C

  • 到达时间:10:30
  • 进入内存时间:11:10
  • 结束时间:12:00
  • 原因:作业C到达时,内存中已经有A和B两个作业,所以C无法进入内存;10:50,B运行结束,内存中只剩A,但此时D到达,根据短作业优先,D先进内存;11:10,A运行结束,此时内存中只剩下D,作业C被调度进入内存。此时内存中有作业D和作业C,由于作业C的优先级高于作业D,作业C先运行,在12:00结束。

作业 D

  • 到达时间:10:50
  • 进入内存时间:10:50
  • 结束时间:12:20
  • 原因:10:50,作业D到达时,内存中只有A,此时没有进入内存的有C和D,但由于短作业优先调度,作业D时间比C短,作业D进内存;11:10,作业A运行结束,作业C进入内存,根据抢占式调度算法,作业D的优先级低于作业C,因此C先运行;12:00,作业C执行完毕,作业D开始执行,执行20分钟,完成时间为12:20。
② 平均周转时间
作业A作业B作业C作业D
到达时间10:0010:2010:3010:50
完成时间11:1010:5012:0012:20
周转时间70min30min90min90min

平均周转时间 = 70 + 30 + 90 + 90 4 = 70 =\frac{70 + 30 + 90 + 90} {4} = 70 =470+30+90+90=70 (min)

(2025.3.29更新) 有同学问为什么A比C先执行,画了个图,可以参考(因为在干别的事情,写得比较潦草)
在这里插入图片描述

2. 在银行家算法中,若出现下述资源分配情况

ProcessAllocationNeed
P00 0 3 20 0 1 2
P11 0 0 01 7 5 0
P21 3 5 42 3 5 6
P30 0 3 20 6 5 2
P40 0 1 40 6 5 6
Available: 1 6 2 2
  • 该状态是否安全?为什么?
  • 若进程 P2 提出请求 Request (1,2,2,2) 后,系统能否将资源分配给它?为什么?

答:(1)不安全。系统安全性分析:

WorkAllocationNeedWork+Allocation
A B C DA B C DA B C DA B C D
P01 6 2 20 0 3 20 0 1 21 6 5 4
P1/1 0 0 01 7 5 0/
P2/1 3 5 42 3 5 6/
P31 6 5 40 0 3 20 6 5 21 6 8 6
P41 6 8 60 0 1 40 6 5 61 6 9 10

首先把资源分配给P0,收回后得到 1 6 5 4;再分配给P3,收回后得到 1 6 8 6;此时可以分配给P4,得到 1 6 9 10 。此时1 6 9 10无法满足任何一个Need,因此无法分配给任何一个Process,不存在安全序列,不安全。

(2)

Request1 (1, 2, 2, 2) < Need (2, 3, 5, 6)

Request1 (1, 2, 2, 2) < Available (1, 6, 2, 2)

假如先试着满足P2的这个请求,则 Available 变为 (0, 4, 0, 0) 。

系统状态变化见下表:

MaxAllocationNeedAvailable
A B C DA B C DA B C DA B C D
P00 0 4 40 0 3 20 0 1 20 4 0 0
P12 7 5 01 0 0 01 7 5 0
P22 4 8 81 3 5 41 1 3 4
P31 8 10 61 2 5 40 6 5 2
P40 6 6 100 0 1 40 6 5 6

再对系统进行安全性分析,见下表:

WorkAllocationNeedWork+Allocation
A B C DA B C DA B C DA B C D
P0/0 0 3 20 0 1 2/
P1/1 0 0 01 7 5 0/
P2/1 3 5 41 1 3 4/
P3/1 2 5 40 6 5 2/
P4/0 0 1 40 6 5 6/

不存在安全序列,故系统不安全,进程P2的这个请求不能被满足。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值