Linux 内核 Procfs 多次读/写

标签 linux linux-kernel procfs

Linux 内核如何处理对 procfs 的多次读/写?例如,如果两个进程同时写入 procfs,一个进程是否排队(即内核陷阱实际上阻塞了其中一个进程),或者是否有一个内核线程为每个内核运行?

问题是如果你在一个函数中使用了一个缓冲区(对全局空间是静态的),你是否必须保护它或者代码将按顺序运行?

最佳答案

这取决于每个 procfs 文件的实现。甚至没有人能给你一个明确的答案,因为每个驱动程序都可以实现自己的 procfs 文件夹和文件(你没有指定任何特定文件。快速浏览 http://lxr.free-electrons.com/source/fs/proc/ 显示某些文件确实使用了锁)。

无论哪种方式,您都不能使用全局缓冲区,因为上下文切换总是会发生,如果不在内核中,那么它可以在完成读取系统调用之后和开始处理读取数据之前立即捕获您的读取线程.

关于Linux 内核 Procfs 多次读/写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12862752/

相关文章:

c - 实现我自己的 ps 命令

python - Python中的sscanf

linux - 在 Linux 上使用 Node 0.12.7 获取 "Unexpected reserved word"

linux - 以普通用户身份执行程序(同时是 root)

python - 跟踪 bash 调用

c - 如何从内核模块引用非导出的 Linux 内核函数?

编译linux内核模块show_mem例程

linux - 操作系统中 Admin-Guest 登录部分的编码

linux -/proc/pid/sched 中的 clock-delta 是什么?

linux - 如何在特定行之后使用 sed 每隔一行打印一次