操作系统导论-课后作业-ch4

对应异步社区资源HW-CPU-Intro

1.

运行

./process-run.py -l 5:100,5:100

结果如下图所示
在这里插入图片描述
5代表运行5条cpu指令,而100表示100%为cpu运行的指令。由于不涉及任何的IO,最终cpu利用率为100%
在这里插入图片描述

2.

运行

./process-run.py -l 4:100,1:0

结果如下图所示
在这里插入图片描述
可见有4条cpu指令和1条占用io的指令,运行时间如下:
在这里插入图片描述
可见默认运行一条IO指令所用的时间默认为5倍的普通指令,共需要10个ticks

3.

交换顺序后运行结果如下:
在这里插入图片描述
由于IO进程转为WAITING状态,调度后CPU程序会运行,故只需要6个ticks即可执行完成:
在这里插入图片描述

4.

在这里插入图片描述
这个标志代表的调度策略是只有当当前这个进程结束后调度器才会开始调度,故就算当前进程进入WAITING状态调度器也不会调度故一直在等待。

5.

在这里插入图片描述
这种策略就是IO也会进行调度,比较合理,并且我测试了一下这样的策略当当前进程结束依然能够调度:
在这里插入图片描述

6.

运行结果如下:
在这里插入图片描述
这种情况下,当IO进程也就是图中的pid0从WAITING状态下转换到READY时也就是io结束后,在调度队列中显然排在后面,这也就导致先运行了其他的进程,导致最后要等待IO,系统资源未能有效利用。(其实需要一种判定机制来确定是否需要IO)

7.

在这里插入图片描述
这种模式下,IO进程IO结束后判定为立即调度,也就是认为当前进程很有可能再次IO,把它以抢占式的方式立即运行,cpu和io的利用率会更好。

8.

由于无法判定随机判定哪个进程可能涉及IO,所以这几种调度策略各有好坏。

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值