操作系统如何将 I/O 操作映射到“正确”的进程/线程?

问题描述

我已经通读了https://lwn.net/Articles/250967/,但觉得我遗漏了一个细节(可能是因为它已经超出了我的脑海):

假设我打开了一个 PDF。这显然是通过从磁盘读取 -> ram -> 并通过某些程序绘制到我的屏幕上来完成的。

同时,另一个进程发出了读。是什么确保PDF信息和第二次阅读不会交错和混淆?具有与其各自进程/线程相关的标识符的缓冲区?如果是这样,这些标识符必须与实际读取一起传递,或者是一条物理线仅限于一次读/写,然后由 MC 管理,例如。 (假设信息现在在 RAM 中)

"A" issues a read -> some identifier is stored -> sent to MC -> MU "physically" reads from RAM and,during this operation locks one data line and its accompanying buffer with some identifying information -> send read data + identifier and unlock that particular bus(?) -> trigger some I/O related interrupt?

MC 是否有责任确保在达到饱和时避免交织?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)