操作系统 - 操作系统如何将设备数据映射到相应的进程

时间:2017-04-13 13:31:14

标签: linux operating-system

我们来一个硬盘/网络接口。它由多个进程共享。现在,多个进程可以向硬盘驱动器发出并发命令以读取数据。当数据可用时,内核如何知道哪个进程已准备好数据?操作系统和硬盘驱动器之间是否遵循一些协议。即使用就绪数据返回的一些元数据?

1 个答案:

答案 0 :(得分:1)

当涉及特定于每个进程的数据时(例如,访问从硬盘驱动器或接收网络上的文件系统打开的文件),它通常使用锁定机制进行序列化。 “协议”(将适当的检索数据分配给请求过程)或多或少地依赖于驱动程序或内核部分 - 在例如网络代码和虚拟文件系统代码。

在Kapah-Hartman,Rubini,Corbet的Linux设备驱动程序书籍的“并发和竞争条件”一章中对此进行了详细描述。你可以看看这里:https://www.safaribooksonline.com/library/view/linux-device-drivers/0596005903/ch05.html