Programming. 2022-07-15 10:11 采纳率: 0%
浏览 46
已结题

操作系统 CPU与I/O设备

这是一道操作系统的题
如果 CPU 在 I/O 完成之前多次忙于等待的循环,轮询 I/O 的完成可能会浪
费大量的 CPU 周期。但如果 I/O 设备已经准备好,轮询的效率 要比中断的效率
更高。描述一种混合策略,结合轮询、休眠和中断为 I/O 设备服务。对于这三种
策略中的每一种(纯轮询、纯中断、 混合),描述一种计算环境,在这种环境中,
该策略比其他任何一种都更有效率

急! 本人操作系统学的不太好,希望能说的详细一些,越详细越好

  • 写回答

2条回答 默认 最新

  • 林地宁宁 2022-07-15 13:41
    关注
    获得2.50元问题酬金

    简单来说,轮询就是把目前运作的 I/O 设备都查一次,而中断是等完成的 I/O 设备来叫你。轮询操作的浪费,主要出于 CPU 可能会询问太多暂未完成 I/O 的设备,也就是 Miss 太多;中断操作的消耗,在于中断请求(IRQ)发到计算机后,计算机需要更换上下文来改变任务。

    这里可以简单的提出一个混合策略,即 CPU 没事的时候都在休眠,接到中断请求后,对当前的所有 I/O 设备进行轮询。

    从纯轮询的角度而言,如果 I/O 设备完成的速度非常快,而且 I/O 设备比较少,那么直接选择轮询等待,而不是之后等待中断上下文切换会更加有效。而从纯中断的角度而言,若 I/O 设备较多,且 I/O 完成的顺序不固定,时间波动幅度大或者耗时长,那么中断会是很好的选择。至于上面提到的混合策略,个人愚见认为,在 I/O 请求比较容易同时完成的情况下,会占有优势。

    评论

报告相同问题?

问题事件

  • 系统已结题 7月23日
  • 创建了问题 7月15日

悬赏问题

  • ¥15 crypto 一道rsa解密题
  • ¥15 survIDINRI已将生存时间转为数值变量,仍错误 Time variable is not numeric。
  • ¥15 重装好几次2022版的vs了,一直sdk报错
  • ¥15 Java安装Idea 下载好jdk 也装好环境配置好了下载好为什么还一直提示这个,为什么啊怎么解决啊
  • ¥15 利用R语言的ActCR包分析昼夜节律数据
  • ¥15 国外SIM卡有信号无法连接,如何解决?
  • ¥15 谷歌怎么像图里这样多开贴吧号
  • ¥80 在UE5中使用AirSim, 无人机无法移动
  • ¥15 bang忙写个 发指定微信名字 excel文件phython
  • ¥15 Python骨架长度检测