性能

- I/O是系统性能的一个主要因素。
- 它对CPU施加了巨大压力,因为CPU需要执行设备驱动和内核I/O代码。
- 中断导致的上下文切换也会影响性能,因为每次中断都需要CPU停止当前任务并保存状态,然后处理中断。
- 数据复制也是性能的一个考虑因素,因为在控制器和物理内存之间复制数据需要占用内存总线。
- 网络流量尤其会对系统性能造成压力

- 减少上下文切换的数量。上下文切换是资源密集型的操作,减少它们可以减少CPU的负担。
- 减少数据复制。这可以通过优化程序设计或使用更高效的数据传输机制来实现。
- 通过使用大型传输和智能控制器减少中断。这样可以减少CPU响应中断的次数,从而提高效率。

https://www.notion.so/I-O-HARDWARE-3a5b3cf0e77044eeadf4c6b9d0dcc419?pvs=4#15a4965c76754d34a85593a3553da414
- 使用直接内存访问(DMA)。DMA允许硬件设备直接读写内存,而不需要CPU介入,从而释放CPU资源。
- 平衡CPU、内存、总线和I/O性能以获得最高吞吐量。这意味着系统的各个组件需要协同工作,以确保没有瓶颈影响整体性能。

I/O设备在复杂性上有很大差异。例如,鼠标是一个较简单的设备,其移动和按钮点击可以转换成数值,并由鼠标设备驱动处理,然后传递给应用程序。

相比之下,Windows磁盘设备驱动所提供的功能更为复杂,它管理个别磁盘,并将应用程序的读写请求转换成一系列协调的磁盘I/O操作。此外,它还包括错误处理和数据恢复算法,以及为了优化磁盘性能而执行的其他操作。