您好、欢迎来到现金彩票网!
当前位置:双彩网 > 向量屏蔽 >

中断异常陷阱软硬中断同异步??

发布时间:2019-07-04 00:38 来源:未知 编辑:admin

  1. 首先是中断和异常还有陷阱的区别和联系 2. 同步中断和 异步中断 3. 软中断和硬中断 按照《深入理解linux内核》中的分析,中断分为同步中断和异步中断。 同步中断是当指当指令执行时由cpu控制单元产生的,只有在一条指令终止执行之后cpu才会发生中断。那么也可以理解为这个中断是cpu主动产生的,或者说是cpu可以预知的中断。这个中断被称为 异常。有的也说是陷阱???? 异步中断是由其他硬件设备按照cpu时钟信号随机产生的。…

  中断和异常是强制性的执行流的转移,从当前正在执行的程序或任务转移到一个特殊的例程或任务。当处理器收到中断信号或检测到异常时,便挂起当前正在运行的进程或者任务,而转去执行中断或异常处理例程。中断或异常处理例程执行完毕之后,处理器继续执行被中断的进程或任务。

  中断:又称为异步中断,是其他硬件依照CPU时钟信号随机产生的。中断又被分为可屏蔽硬件中断和不可屏蔽中断。在微机原理课程中,处理器中有两个引脚NMI和INTR负责接受中断信号,还有高级可编程中断控制器(APIC),如8259A管理中断信号。则可屏蔽硬件中断:任何通过INTR或着局部APIC传递到处理器的中断信号都被称为可屏蔽硬件中断,由IO设备产生的IRQ(Interrupt ReQuest)也是可屏蔽硬件中断。但是通过INTR引脚传递的可屏蔽硬件中断可使用Intel架构定义的中断向量(0-255),而局部的APIC传递的部分只能使用16-255号向量。若中断信号从NMI引脚传递过来,则发生的是一个不可屏蔽中断。

  异常:又称为同步中断,是当指令执行时CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断。在不失进程执行连续性的同时,按引起的异常的指令是否能重新执行,且依据它们被报告的方式,异常分为错误,陷阱,和终止三种情况。

  错误:错误是一种通常可以能够被修正的异常,一旦修正,程序能够不失去连续性地接着执行。当报告错误发生时,处理器将机器状态恢复到执行错误之前的状态。错误处理例程的返回地址指向产生错误的指令,而不是错误指令之后的的那条指令。如页错误。

  陷阱:当引起陷阱的指令发生时,马上产生该异常。陷阱允许程序不失去连续性的继续执行。陷阱处理例程的返回地址指向引起陷阱的指令的下一条指令(与错误本质上的区别)。如溢出。

  终止:它并不总是报告产生异常的指令的确定位置,也不允许引起终止的进程或任务重新执行。如总线错误导致异常终止。

  Intel x86共支持256中向量中断,Intel给每种中断源编号,从0-255,并把这个无符号整数叫做一个中断向量。不可屏蔽中断的向量和异常的向量是固定的,而可屏蔽的硬件中断可以通过对中断控制器编程来改变。

  中断描述符表(Interrupt Descriptor Table,IDT)是一个系统表,它与每一个中断或异常向量相关,每一个向量在表中有相应的中断或异常处理程序的入口地址。内核在允许中断发生前,必须适当地初始化IDT,用lidt汇编指令初始化idtr。

  任务门:当中断信号发生时,必须取代当前进程的那个进程的TSS选择符存放在任务门中。

  中断门:包含段选择符和中断或异常处理程序的段内偏移量。当控制权转移到一个适当的段时,处理器清IF标志,从而关闭将来会发生的可屏蔽中断。

  陷阱门:与中断门相似,只是控制权传递到一个适当的段时处理器不修改IF标志。

  上面是我自己的理解,来自shui » 中断和异常,但是关于软中断 ,我的理解为中断的下半部分.

  软中断又叫做编程异常,主要用于执行系统调用即int 0x80以及给调试程序通报一个特定的事件,所以软中断是异常的一种,属于同步中断。所以不能说异步中断分为软中断和硬中断。

  当指令执行时由CPU控制单元产生,并且只有在该指令终止执行后CPU才会发出中断。

  对于中断和异常的处理,主要是利用中断描述符表IDT中的中断描述符。中断描述符属于系统描述符,与代码段描述符、数据段描述符不同。中断描述符是系统描述符中的门描述符,具体可以分为3种:

  正如@shuidu提到的,Linux利用中断门处理中断,利用陷阱门处理异常。

  这是否意味着在Linux中可以将异常可以陷阱画等号?我也是初学这些,有错请大佬指正。

http://bluecaleel.com/xiangliangpingbi/224.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有