小编arr*_*ags的帖子

x86_64 linux 中的系统调用是否仍会产生中断?

在旧版本的 linux 架构中,系统调用在执行过程中总是会产生中断。它们将通过将系统调用号设置为 %eax 并将参数设置为 %ebx、%ecx 等,然后发出特定中断 int 0x80 来执行。因此,系统调用可以说是系统上软件中断的常见原因。

然而,在 x86_64 的现代体系结构上,有一个特定的系统调用指令“syscall”,它绕过了使用中断 0x80 的需要,因此根本不需要中断描述符表。虽然我相信之前为 syscall 生成中断的方法仍然受支持,但 syscall 指令似乎是在实践中完成的方式。

因此,我的问题是:说系统调用产生中断是否不再正确?例如,系统调用是否仍会增加在 vmstat 的“中断”列输出中看到的数字?

linux interrupts

5
推荐指数
1
解决办法
925
查看次数

标签 统计

interrupts ×1

linux ×1