Operating system 轮询与使用慢速/快速I/O设备的中断

Operating system 轮询与使用慢速/快速I/O设备的中断,operating-system,Operating System,我正在学习操作系统课上I/O的轮询和中断之间的区别,我的老师提到的一件事是I/O设备的速度可以决定哪种方法更好。他没有跟进,但我一直在绞尽脑汁,不知道为什么。我觉得使用中断几乎总是更好的,我只是不知道I/O设备的速度与此有什么关系。通常您会希望使用中断,因为轮询会浪费大量CPU周期。但是,如果事件频繁,则同步(如果应用了其他因素,例如轮询时间较短……)轮询是一个很好的选择,特别是因为中断比轮询周期产生更多开销 您可能还需要查看此线程以了解更多详细信息: 轮询的唯一优势在于,您不在乎发生的每一个变

我正在学习操作系统课上I/O的轮询和中断之间的区别,我的老师提到的一件事是I/O设备的速度可以决定哪种方法更好。他没有跟进,但我一直在绞尽脑汁,不知道为什么。我觉得使用中断几乎总是更好的,我只是不知道I/O设备的速度与此有什么关系。

通常您会希望使用中断,因为轮询会浪费大量CPU周期。但是,如果事件频繁,则同步(如果应用了其他因素,例如轮询时间较短……)轮询是一个很好的选择,特别是因为中断比轮询周期产生更多开销

您可能还需要查看此线程以了解更多详细信息:

轮询的唯一优势在于,您不在乎发生的每一个变化

假设您有一个实时系统,用于测量用于成型的熔融塑料桶的温度。我们还可以说,您的设备可以测量到1/1000度的分辨率,并且可以每1/10000秒测量一次新的温度

但是,你只需要每秒钟一次温度,你只需要知道温度在1/10度之内

在这种环境中,轮询设备可能更可取。每秒进行一次轮询请求。如果使用中断,当温度移动+/-1/1000度时,每秒可以得到10000次中断

轮询过去常用于某些I/O设备,如操纵杆和指针设备


这就是说,投票的必要性很小,而且几乎已经消失了。

是的。在计时器中断中轮询键盘/小键盘并不少见,因为检查se自上次以来是否有任何键状态发生了更改非常快,并且通常需要多次读取才能解除抖动。除此之外,在上面提到的某些情况下,并没有人会因为CPU、内存带宽和能源浪费而进行投票。这不仅仅是CPU周期。这是内存带宽(影响其他内核)和能源浪费(停止的CPU使用更少的电源)。