系统调用是程序从操作系统内核请求服务的方式。
它们可以在用户模式和内核模式下发生。
有什么区别?
例如:
答案 0 :(得分:1)
系统调用是您在应用程序("用户模式")和内核之间转换的方式。
Syscalls比正常的函数调用慢,但是来自Intel和AMD的更新的x86芯片有一个特殊的sysenter
/ syscall
操作码,只需要一百纳秒左右,给予或接受。 / p>
答案 1 :(得分:0)
@Leo,
您是否可以详细说明在内核空间内进行系统调用的方式有何不同?为了更好地理解Linux内核,它是用C和汇编语言编写的
请注意,系统调用只是用户空间和内核空间之间的接口。当你需要一些计算机资源(文件,网络......)时,你要求内核把它交给你(你要求内核运行内核代码,负责它)。
系统调用的开销是您需要执行CPU中断。正如Will所说,它的时间非常取决于CPU的类型。