我正在学习操作系统类中I / O的轮询和中断之间的区别,我的老师提到的一点是I / O设备的速度可以改变哪种方法会更好。他没有跟进,但我一直在抨击我的大脑,我无法弄明白为什么。我觉得使用Interrupts几乎总是更好,我只是看不出I / O设备的速度与它有什么关系。
答案 0 :(得分:2)
当您不关心发生的每一个变化时,轮询的唯一优势就在于此。
假设您有一个实时系统来测量用于成型的大桶熔融塑料的温度。我们还要说你的设备可以测量到1/1000度的分辨率,并且可以每1 / 10,000秒采用新的温度。
然而,你每秒只需要温度,你只需要知道温度在1/10度之内。
在这种环境中,轮询设备可能更为可取。每秒发出一次轮询请求。如果您使用了中断,那么当温度移动了+/- 1/1000度时,您可以每秒获得10,000次中断。
轮询过去常见于某些I / O设备,例如操纵杆和指点设备。
也就是说,投票很少,而且几乎已经消失了。
答案 1 :(得分:1)
通常你会想要使用中断,因为轮询会浪费很多CPU周期。但是,如果事件是频繁的,同步的(并且如果其他因素适用,例如短轮询时间......)轮询可能是一个很好的选择,特别是因为中断比轮询周期产生更多的开销。
您可能还需要查看此主题以获取更多详细信息: Polling or Interrupt based method