【发布时间】:2020-05-24 20:22:35
【问题描述】:
read() 系统调用是否会导致内核设备驱动程序代码被执行? 我的意思是,当我想从磁盘或任何驱动程序中读取文件时,我使用 read() 系统调用。那个系统调用是不是必须使用驱动代码才能完成这个任务?
谢谢。
【问题讨论】:
-
驱动代码是什么意思?您是指内核中的设备驱动程序代码吗?
-
@sks-15。确实。我想知道设备驱动程序代码是否应该在这种情况下运行。
-
好吧,将请求排队到驱动程序的代码将运行,并且驱动程序可能会实际启动读取。调用者通常会被挂起,等待来自驱动程序的 I/O 完成中断和信号。
-
视情况而定。对大多数设备的访问是完全缓冲的。如果系统缓冲区有足够的数据来满足用户的 read() 请求,则不必执行实际的 I/O,并且驱动程序代码不参与这些情况。
标签: operating-system linux-device-driver system-calls