异常、中断、陷阱
int 3 指令是常见的 断点中断,研究这个的时候发现个系统的一些机制有关。就研究了一下中断的分类,还有异常和陷阱。下面是我百度之后的一些总结: 中断的分类:外中断和内中断 根据系统对中断处理的需要,操作系统一般对中断进行分类并对不同的中断赋予不同的处理优先级,以便在不同的中断同时发生时,按轻重缓急进行处理。 根据中断源产生的条件,可把中断分为外中断和内中断。 外中断是指来自处理器和内存外部的中断,包括I/0设备发出的I/O中断、外部信号中断(例如用户键人ESC键)。各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。外中断在狭义上一般被称为中断。 内中断主要指在处理器和内存内部产生的中断。内中断一般称为陷阱(trap)或异常。它包括程序运算引起的各种错误,如地址非法、校验错、页面失效、存取访问控制错、算术操作溢出、数据格式非法、除数为零、非法指令、用户程序执行特权指令、分时系统中的时间片中断以及从用户态到核心态的切换等都是陷阱的例子。 为了按中断源的轻重缓急处理响应中断,操作系统为不同的中断赋予不同的优先级。各中断源的优先级在系统设计时给定,在系统运行时是固定的。而处理器的优先级则根据执行情况由系统程序动态设定。 除了在优先级的设置方面有区别之外, 中断和陷阱还有如下主要区别: 1、陷阱通常由处理器正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的