块设备是否知道发起读/写的实际用户/进程?

块设备是否知道发起读/写的实际用户/进程?

VFS知道哪个用户/进程发送了读/写请求。实际的块设备是否知道这些细节。

“bio”结构是否包含指向用户空间参数的任何详细信息?使用current_uid()等,将 UID 指定为 0,它实际上对应于执行读/写操作的 kjournald

答案1

不,块设备不知道哪个进程或用户导致了磁盘访问。它不知道的根本原因是这个概念没有明确定义。磁盘访问和文件访问之间没有直接关系。例如,如果多个进程几乎同时从同一文件中的同一位置读取数据,那么它们可能都有一个待处理的读取请求,该请求会向下渗透到硬件。另一个示例是,缓冲写入可能会在导致写入的活动终止后发生。

相关内容