【发布时间】:2014-07-13 19:25:03
【问题描述】:
系统调用是程序向操作系统内核请求服务的方式。
它们可以发生在用户模式和内核模式中。
有什么区别?
例如:
- 开销
- 系统时间
【问题讨论】:
标签: performance system-calls difference kernel-mode usermode
系统调用是程序向操作系统内核请求服务的方式。
它们可以发生在用户模式和内核模式中。
有什么区别?
例如:
【问题讨论】:
标签: performance system-calls difference kernel-mode usermode
@Leo,
您能否详细说明在内核空间中进行系统调用时的变化?为了更好地理解 Linux 内核,它是用 C 和汇编语言编写的
请注意,系统调用只是用户空间和内核空间之间的接口。当您需要一些计算机资源(文件、网络等)时,您要求内核将其提供给您(在后台您要求内核运行内核代码,由内核负责)。
系统调用的开销是您需要执行 CPU 中断。正如 Will 提到的,时间很大程度上取决于 CPU 类型。
【讨论】:
系统调用是您在应用程序(“用户模式”)和内核之间转换的方式。
系统调用比正常的函数调用慢,但来自 Intel 和 AMD 的较新 x86 芯片有一个特殊的sysenter/syscall 操作码,使其只需一百纳秒左右,无论给予还是索取。
【讨论】: