c - 我如何使用 linux 内核一次进行多个系统调用?

标签 c linux linux-kernel kernel

我想知道我是否可以同时进行大量系统调用,而只有一个切换开销。我需要这个,因为我需要同时进行许多 (128) 个系统调用。如果我可以在不在内核和用户空间之间切换 256 次以上的情况下做到这一点,我认为它可以使我的(速度敏感的)库明显更快。

最佳答案

你真的不能从应用程序中做到这一点。您可以做的是构建一个可加载的内核模块来实现这些操作并提供一个简单的 API -- 然后您可以更改上下文一次,完成所有工作,然后返回。

但是,对于大多数此类优化问题,首先要问的是“您认为为什么有必要这样做?”你有时间信息等吗?你有侧写吗?您真正遇到了多少性能问题,增加的复杂性是否值得加速?

关于c - 我如何使用 linux 内核一次进行多个系统调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11060863/

相关文章:

php - preg_match_all 在不同服务器上表现怪异

linux - 如何在 Linux 内核源代码中打印 IP 地址或 MAC 地址

c - 编译新模块时内核顶层 Makefile 的作用是什么?

c - 如何开始在 Linux 中编写键盘背光驱动程序?

C语言strstr段错误

c - TCP 无法检测到客户端中已关闭的套接字

c - 无法从串口获取数据结构

linux - 如何在 Linux 内核中的特定范围内分配 dma 缓冲区?

检查宏参数是否为文字

c - 在c中编码词法分析器时出错