0

系统调用是程序如何从操作系统内核请求服务。

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

有什么区别?

例如:

  • 高架
  • 系统时间
4

2 回答 2

1

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

系统调用比普通函数调用慢,但来自英特尔和 AMD 的较新的 x86 芯片有一个特殊的sysenter/syscall操作码,使其只需一百纳秒左右,给予或接受。

于 2014-05-24T14:31:27.903 回答
0

@Leo,

您能否详细说明在内核空间中进行系统调用时的变化?为了更好地理解 Linux 内核,它是用 C 和汇编语言编写的

请注意,系统调用只是用户空间和内核空间之间的接口。当您需要一些计算机资源(文件、网络……)时,您要求内核将其提供给您(在幕后您要求内核运行内核代码,由内核负责)。

系统调用的开销是您需要执行 CPU 中断。正如 Will 提到的,它的时间很大程度上取决于 CPU 类型。

于 2017-08-17T06:47:05.187 回答