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

时间:2012-06-16 04:36:40

标签: c linux linux-kernel kernel

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

2 个答案:

答案 0 :(得分:8)

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

然而,正如大多数这类优化问题一样,首先要问的是“为什么你认为这是必要的?”你有时间信息等吗?你介绍过吗?您真正拥有多少性能问题,并且额外的复杂性是否值得加速?

答案 1 :(得分:0)

我认为Linux不会很快支持系统调用链接。您可能有更多的运气在另一个内核上实现它并移植您的应用程序。

也就是说,编写代理来为您完成内核空间的工作并不困难,但不要指望它在上游合并。我从事过实时工作,我们有这样的解决方案,但由于支持问题从未在生产中使用过:/。