《Operating Systems:Three Easy Pieces》第八章课后习题解答

本文探讨了使用Python实现的多级反馈队列(MLFQ)调度算法,通过模拟展示了如何配置参数使其类似轮转调度。在特定场景下,配置了两个工作和两个队列,关闭I/O,作业按时间片轮转。分析了如何避免长时间运行作业的饥饿现象,提出了每隔200ms提升作业优先级以确保至少5%的CPU利用率。

8.1

1.只用两个工作和两个队列运行几个随机生成的问题。针对每个工作计算 MLFQ 的执行记录。限制每项作业的长度并关闭 I/O,让你的生活更轻松。
在这里插入图片描述
答:python3 mlfq.py -n 2 -j 2 -m 15 -M 0 -s 50参数设置-n 2代表2个队列,-j 2 代表2个作业,-m 15 表示随机生成的作业最大运行时间为15,-M 0 表示随机生成的作业最大I/O频率为0,即关闭I/O,-s 20 设置随机种子为50。最后随机生成的情况为每队列时间片为10,Job 0: startTime 0 - runTime 7 - ioFreq 0,Job 1: startTime 0 –runtime 9 -ioFreq 0。
计算MLFQ执行记录如下:
Time Job Queue The situation of CPU
0 0 1 作业0、1到达,运行作业0的1时间单位
1 0 1 运行作业0的1时间单位
2 0 1 运行作业0的1时间单位
3 0 1 运行作业0的1时间单位
4 0 1 运行作业0的1时间单位
5 0 1 运行作业0的1时间单位
6 0 1 运行作业0的1时间单位
7 1 1 作业0完成,运行作业1的1时间单位
8 1 1 运行作业1的1时间单位
9 1 1 运行作业1的1时间单位
10 1 1 运行作业1的1时间单位
11 1 1 运行作业1的1时间单位
12 1 1 运行作业1的1时间单位
13 1 1 运行作业1的1时间单位
14 1 1 运行作业1的1时间单位
15 1 1 运行作业1的1时间单位
16 - - 作业1完成

Job Response Turnaround Wait
0 0 7 0
1 7 16 7
average 3.50

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值