gpt4 book ai didi

linux - 信号与异常与硬件中断和陷阱

转载 作者:太空狗 更新时间:2023-10-29 12:24:42 25 4
gpt4 key购买 nike

我读了this回答,我认为我有一个清晰的想法。但是然后 this答案又让我困惑了。

谁能给我清楚地说明信号、异常、硬件中断和陷阱之间的区别?

另外,我想知道这些阻塞CPU抢占的内核代码有哪些?

示例会有所帮助。

最佳答案

中断 由硬件针对处理器内核外部的事件生成。这些本质上是异步的,这意味着处理器不知道何时会生成中断。这些也称为硬件中断。示例:键盘在屏幕上键入字符产生的中断,或定时器中断。

异常:当处理器在执行指令时检测到错误条件时发生异常,异常被归类为故障陷阱或< strong>中止 取决于它们的报告方式以及导致异常的指令是否可以在不丢失程序或任务连续性的情况下重新启动。 (这些技术术语至少在 x86 上使用,可能在其他架构或一般情况下使用。)示例:除以零或页面错误。

陷阱:基本上是告诉内核从用户模式切换到内核模式的指令。示例:在系统调用期间,TRAP 指令将强制内核代表进程在内核(内核模式)内执行系统调用代码。陷阱是一种异常(exception)。
x86 int 0x80“软件中断”指令是一个陷阱,不像外部中断。 x86 对中断和异常使用单一的处理程序表;其他 ISA 也可能这样做。

有些人更普遍地使用这个术语,作为“异常”的同义词。例如你可能会说“MIPS add 会陷入有符号溢出,所以编译器总是使用 addu。”

信号:信号由内核或进程(kill 系统调用)生成。它们最终由操作系统内核管理,将它们传递给目标线程/进程。例如。除以零指令将导致内核向运行它的进程传递 SIGFPE 信号(算术异常)。 (例如,x86 #DE 错误由内核处理,为当前进程生成软件 SIGFPE。)


相关:

关于linux - 信号与异常与硬件中断和陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45485093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com