用户与内核系统调用之间的区别

时间:2014-05-24 14:25:21

标签: performance system-calls difference kernel-mode usermode

系统调用是程序从操作系统内核请求服务的方式。

它们可以在用户模式和内核模式下发生。

有什么区别?

例如:

  • 开销
  • 系统时间

2 个答案:

答案 0 :(得分:1)

系统调用是您在应用程序("用户模式")和内核之间转换的方式。

Syscalls比正常的函数调用慢,但是来自Intel和AMD的更新的x86芯片有一个特殊的sysenter / syscall操作码,只需要一百纳秒左右,给予或接受。 / p>

答案 1 :(得分:0)

@Leo,

  

您是否可以详细说明在内核空间内进行系统调用的方式有何不同?为了更好地理解Linux内核,它是用C和汇编语言编写的

请注意,系统调用只是用户空间和内核空间之间的接口。当你需要一些计算机资源(文件,网络......)时,你要求内核把它交给你(你要求内核运行内核代码,负责它)。

系统调用的开销是您需要执行CPU中断。正如Will所说,它的时间非常取决于CPU的类型。