3

在编写驱动程序时,我遇到了下面提到的问题。

给定一个多线程应用程序通过同一个 FD 访问同一个设备文件。考虑在对 OPEN 和 RELEASE 的调用之间,线程组相互持有一些资源(比如互斥锁)。这些资源在 READ/WRITE 调用期间使用,然后在 RELEASE 期间最终放弃或销毁。

如果在 READ/WRITE 期间有一个线程访问资源,而另一个线程同时通过调用 close 调用 RELEASE,VFS 如何确保在 READ、WRITE 或喜欢。什么机制正在处理这种保护?

4

1 回答 1

6

设备驱动程序之上的内核层跟踪存在多少对打开文件的引用,并且在所有这些引用都关闭之前不会调用释放函数。这在 LDD3 中有一些记录:http: //tjworld.net/books/ldd3/#TheReleaseMethod

于 2013-09-25T07:55:32.707 回答