系统调用:一次和多次,哪个更好?

时间:2018-06-19 08:12:15

标签: c++ system-calls

我有一个内核驱动程序来处理I2C内容。

它支持单个R / W或通过I2C批处理(多个)R / W

如果批处理,最好的方法是什么:

  1. 将批量数据从用户传输到内核。然后从内核
  2. 多次调用I2C
  3. 从用户多次呼叫单个R / W。
  4. 哪种方式更好?

1 个答案:

答案 0 :(得分:0)

除非您正在处理一个简单的exokernel,否则系统调用将涉及硬件中的上下文切换。这将花费更多的时间,而不是函数调用或甚至复制几页数据。

我假设你不是在讨论数兆字节的数据,而只是几个字节。最好打包和解压缩它们,绝对减少系统调用次数。