这是一道操作系统的题
如果 CPU 在 I/O 完成之前多次忙于等待的循环,轮询 I/O 的完成可能会浪
费大量的 CPU 周期。但如果 I/O 设备已经准备好,轮询的效率 要比中断的效率
更高。描述一种混合策略,结合轮询、休眠和中断为 I/O 设备服务。对于这三种
策略中的每一种(纯轮询、纯中断、 混合),描述一种计算环境,在这种环境中,
该策略比其他任何一种都更有效率
急! 本人操作系统学的不太好,希望能说的详细一些,越详细越好
这是一道操作系统的题
如果 CPU 在 I/O 完成之前多次忙于等待的循环,轮询 I/O 的完成可能会浪
费大量的 CPU 周期。但如果 I/O 设备已经准备好,轮询的效率 要比中断的效率
更高。描述一种混合策略,结合轮询、休眠和中断为 I/O 设备服务。对于这三种
策略中的每一种(纯轮询、纯中断、 混合),描述一种计算环境,在这种环境中,
该策略比其他任何一种都更有效率
急! 本人操作系统学的不太好,希望能说的详细一些,越详细越好
简单来说,轮询就是把目前运作的 I/O 设备都查一次,而中断是等完成的 I/O 设备来叫你。轮询操作的浪费,主要出于 CPU 可能会询问太多暂未完成 I/O 的设备,也就是 Miss 太多;中断操作的消耗,在于中断请求(IRQ)发到计算机后,计算机需要更换上下文来改变任务。
这里可以简单的提出一个混合策略,即 CPU 没事的时候都在休眠,接到中断请求后,对当前的所有 I/O 设备进行轮询。
从纯轮询的角度而言,如果 I/O 设备完成的速度非常快,而且 I/O 设备比较少,那么直接选择轮询等待,而不是之后等待中断上下文切换会更加有效。而从纯中断的角度而言,若 I/O 设备较多,且 I/O 完成的顺序不固定,时间波动幅度大或者耗时长,那么中断会是很好的选择。至于上面提到的混合策略,个人愚见认为,在 I/O 请求比较容易同时完成的情况下,会占有优势。