Law*_*ceC 10
任何 I/O 都由进程调用的系统调用处理。最终,这样的系统调用将向下传递到一些适当的低级设备驱动程序函数,以执行实际的 I/O 操作。
I/O 可能很棘手 - 要真正将数据输入和输出设备,可能需要按顺序执行各种步骤,并且可能还需要时序要求。如果这些步骤没有自动完成,下一次尝试时,设备可能无法响应、行为异常,甚至导致系统锁定。每个设备的这些步骤可能不同且独特,因此为什么有这么多设备驱动程序。
编写良好的设备驱动程序应该知道如何处理它尝试服务的设备,因此它通常不会遇到问题,除非存在驱动程序错误、您为设备使用了错误的驱动程序或物理设备出现故障。
看完莫里斯·巴赫的《Unix操作系统的设计》一书,让我自己来回答这个问题。
简而言之,使 I/O 不间断是为了使 I/O 任务尽快完成,不受信号干扰。
我从书中获得的一些相关知识: