Linux 操作系统-操作系统如何将就绪设备数据映射到各个进程

Linux 操作系统-操作系统如何将就绪设备数据映射到各个进程,linux,operating-system,Linux,Operating System,让我们看一看硬盘/网络接口。它由多个进程共享。现在,多个进程可能会向硬盘发出并发命令以读取数据。当数据可用时,内核如何知道数据准备好用于哪个进程?操作系统和硬盘之间是否遵循某种协议。i、 e.随就绪数据返回的某些元数据?当涉及到每个进程特定的数据时(例如,访问从硬盘上的文件系统或接收网络打开的文件),通常使用锁定机制对其进行序列化。“协议”(将正确检索到的数据分配给请求进程)或多或少是特定于驱动程序或内核部分的,例如网络代码和虚拟文件系统代码 这在Kroah Hartman、Rubini、Cor

让我们看一看硬盘/网络接口。它由多个进程共享。现在,多个进程可能会向硬盘发出并发命令以读取数据。当数据可用时,内核如何知道数据准备好用于哪个进程?操作系统和硬盘之间是否遵循某种协议。i、 e.随就绪数据返回的某些元数据?

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


这在Kroah Hartman、Rubini、Corbet编写的Linux设备驱动程序书中的“并发和竞争条件”一章中有很好的描述。您可以在此处查看:

“操作系统和硬盘驱动器之间是否遵循某种协议?”。i、 e.一些随就绪数据一起返回的元数据?“通常是的,因为驱动器本身可能具有可考虑的缓冲,并同时为多个请求提供服务。