中断和异常的再总结

@(OS)

内部异常(内中断)

故障(fault)
自陷(trap)
终止(abort)
是源自CPU执行指令内部的事件。如:非法操作码,地址越界,算术溢出,虚存系统的缺页,陷入指令等引起的事件。内部异常不可被屏蔽,一旦出现立马处理。

外中断:来自CPU执行指令以外的事件。如:I/O中断,时钟中断等。

在操作系统层次上,我们多听到“异常”(Exception)而少见“中断”(Interrupt),且往往笼统地称其为异常,但处理器微体系结构规范通常会区分中断和异常。

一般而言,中断是异步的,异常是同步的,所谓同步和异步的概念,又与我们网络通信或函数调用中的同步异步有所不同。中断是来自处理器外部的I/O设备的信号的结果,它不是由指令流中某条指令执行引起的,从这个意义上讲,它是异步的,是来自指令流之外的。

异常又分为三类:陷阱(Trap)、故障(Fault)和终止(Abort),它们都是执行当前指令流中的某条指令的结果,是来自指令流内部的,从这个意义上讲它们都是同步的。

陷阱是有意而为之的异常,是明知有套还往里钻——人家要的就是这个结果,其最常见的用途就是操作系统的系统调用。

故障是由错误条件引起的,可能被故障处理例程修复。如果可以修复,则啥事儿没有,继续干活;如果不能修复则会转化为终止,并进入下一步。常见的故障如缺页。

终止是不可恢复的致命的错误造成结果。终止处理程序不再将控制返回给引发终止的应用程序,而是交给了系统——其结果往往是系统终止应用程序。
————————————————
版权声明:本文为CSDN博主「DrCrypto」的原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011240016/article/details/53117093

原文地址:https://www.cnblogs.com/feng9exe/p/12559229.html

时间: 2024-10-20 01:17:38

中断和异常的再总结的相关文章

中断与异常详解(二)

中断或异常发生之前 当 CPU 执行了当前指令之后,CS 和 EIP 这对寄存器中所包含的内容就是下一条将要执行 指令的逻辑地址.在对下一条指令执行前,CPU 先要判断在执行当前指令的过程中是否发生 了中断或异常. 如果发生了一个中断或异常 那么 CPU 将做以下事情 • 确定所发生中断或异常的向量i(在 0-255 之间). • 通过 IDTR 寄存器找到 IDT 表,读取 IDT 表第i项(或叫第i个门). • 分两步进行有效性检查:首先是“段”级检查,将 CPU 的当前特权级 CPL(存放

中断和异常

同步中断和异步中断: 同步中断(异常)是当前指令执行时由CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断. 异步中断(中断)是由其他硬件设备依照CPU时钟信号随机产生的. 1.中断信号的作用: 2.中断和异常: (1)中断:可屏蔽中断和非屏蔽中断 (2)异常: 1)处理器探测异常:故障.陷阱.异常终止 故障:可以纠正,一旦纠正,程序就可以在不失连贯性的情况下重新开始. 陷阱:只有当没有必要重新执行已终止的指令时,才触发陷阱.陷阱的主要用途是为了调试程序. 异

中断、异常和系统调用

所谓中断是指CPU对系统发生的某个事件做出的一种反应,CPU暂停正在执行的程序,保留现场后自动地转去执行相应的处理程序,处理完该事件后再返回断点继续执行被"打断"的程序. 中断可分为三类,第一类是由CPU外部引起的,称作中断,如I/O中断.时钟中断.控制台中断等.第二类是来自CPU的内部事件或程序执行中的事件引起的过程,称作异常,如由于CPU本身故障(电源电压低于105V或频率在47-63Hz之外).程序故障(非法操作码.地址越界.浮点溢出等)等引起的过程. 第三类由于在程序中使用了请

一个操作系统的实现(9)-中断和异常

这节讲了中断与异常的一些基本概念.然后通过代码实现一个显示字符的中断和时钟中断. 实模式与保护模式下的中断有区别 保护模式下的中断与实模式下的中断有几点不同. 实模式下的中断向量表在保护模式下被IDT取代 实模式下可以使用BIOS中断,而保护模式下不能用 这里面出现了一个新的名词IDT,接下来就介绍什么是IDT. 中断描述符表(IDT,Interrupt Descriptor Table) 中断描述符表的作用 与GDT和LDT一样,IDT也是一个描述符表,IDT的描述符可以是下面三种之一: 中断

中断与异常详解(三)

再次梳理会用到的一些数据结构和名词 中断向量表(中断描述符表) idt_table 全局,8字节64位,从低到高位16位段选择符,32位偏移量,16位状态信息 256项 起始地址在内核数据节的idt中 用于寻找各种门,门的作用是防止用户程序访问陷阱门.中断门等特殊资源,出于安全考虑,linux为用户留有3,4,5,128号系统调用门供用户使用 中断描述符表寄存器 IDTR 寄存器,6字节48位,低16位界限,高32位基址 1项 用于快速寻找中断描述符,linux定义的16位界限为8*256-1,

x86关于中断和异常的总结

<一>80386的中断和异常 8086/8088把中断分为内部中断和外部中断两大类.为了支持多任务和虚拟存储器等功能,80386把外部中断称为“中断”,把内部中断称为“异常”.与8086/8088一样,80386通常在两条指令之间响应中断或异常.80386最多处理256种中断或异常. 1.中断 对80386而言,中断是由异步的外部事件引起的.外部事件及中断响应与正执行的指令没有关系.通常,中断用于指示I/O设备的一次操作已完成.与8086/8088一样,80386有两根引脚INTR和NMI接受

4,中断和异常

中断信号的作用.  使CPU转而去运行正常控制流之外的代码.为了它.就要在内核态堆栈保存程序计数器的当前值(eip和cs寄存器).并把与中断类型相关的一个地址放在程序计数器. 中断处理与进程切换的差异:由中断或异常处理程序执行的代码不是一个进程,而是内核控制路径.代表中断发生时正在运行的进程执行.其比进程"轻". 中断和异常  中断:  可屏蔽中断(maskable): I/O设备发出的中断请求(irq)都属于.可处于两种状态:屏蔽的/非屏蔽的. 非屏蔽中断(nonmaskable):

中断和异常的处理

本文为<x86汇编语言:从实模式到保护模式> 第17章笔记 中断和异常 中断和异常概述 中断和异常的作用是指示系统中的某个地方发生一些事件, 需要引起处理器(包括正在执行中的程序和任务)的注意. 当中断和异常发生时, 典型的结果是迫使处理器将控制从当前正在执行的程序或任务转移到另一个历程或任务中去. 该例程叫做中断处理程序, 或者异常处理程序. 如果是一个任务, 则发生任务切换. 1. 中断(Interrupt) 中断包括硬件中断和软中断. 硬件中断是由外围硬件设备发出的中断信号引发的, 以请

中断与异常

中断interrupt被定义为一个事件,该事件改变处理器执行的指令顺序. 中断分为同步中断(异常exception)和异步中断(中断interrupt): 同步中断是当指令执行时由CPU控制单元产生的,只有在一条指令终止执行后CPU才会发出中断. 异步中断是由其他硬件设备依照CPU时钟信号随机产生的. 中断是由间隔定时器和I/O设备产生的,如用户的一次按键会引起一个中断. 异常是由程序的错误产生的(内核发出信号来处理异常),或由内核必须处理的异常条件产生的(缺页.int指令.sysenter指令