什么是中断,什么是俘获,中断和俘获有什么不同?

中断:

由处理机外部事件引起的中断称为外中断,又称中断。在x86中称之为异步中断,它是随着CPU的时钟随机产生的,又能发生在一条指令执行过程中,也可能发生在一条指令执行之后。包括I/O中断、外中断。

俘获:

由处理机内部事件引起的中断称之为俘获,在x86中称为异常,也称同步中断,包括访管中断、程序性中断、机器故障中断。同步中断值得是由CPU控制单元产生,是在一条指令执行之后才会发出的中断。

不同点:

中断是由处理机外部事件引起的,俘获是由内部事件引起的。

在同时发生中断和俘获请求时,俘获总是优先得到响应和处理。即俘获的响应次序在中断的前面。

时间: 2024-10-12 06:59:48

什么是中断,什么是俘获,中断和俘获有什么不同?的相关文章

硬件中断和软件中断以及中断与函数调用的区别

<汇编语言程序设计>Richard Blum著:6.2.3中断   中断有两种形式: (1)硬件中断: (2)软件中断.   硬件设备生成硬件中断. 使用硬件中断发出信号,表示硬件层发生的事件(比如I/O端口接收到输入信号时).   程序生成软件中断. 它们是把控制交给另一个程序的信号.   当一个程序被中断调用时,发出调用的程序暂停,被调用的程序接替它运行.指令指针被转移到被调用的程序,并且从被调用的程序内继续执行.被调用的程序完成时,它可以把控制返回给发出调用的程序(使用中断返回指令).

5.分析内核中断运行过程,以及中断3大结构体:irq_desc、irq_chip、irqaction

本节目标:    分析在linux中的中断是如何运行的,以及中断3大结构体:irq_desc.irq_chip.irqaction 在裸板程序中(参考stmdb和ldmia详解): 1.按键按下, 2.cpu发生中断, 3.强制跳到异常向量入口执行(0x18中断地址处) 3.1使用stmdb将寄存器值保存在栈顶(保护现场) stmdb sp!, { r0-r12,lr } 3.2执行中断服务函数 3.3 使用ldmia将栈顶处数据读出到寄存器中,并使pc=lr(恢复现场) ldmia sp!,

【CC2530入门教程-03】CC2530的中断系统及外部中断应用

第3课  CC2530的中断系统及外部中断应用 广东职业技术学院  欧浩源 一.中断相关的基础概念  内核与外设之间的主要交互方式有两种:轮询和中断. 轮询的方式貌似公平,但实际工作效率很低,且不能及时响应紧急事件:中断系统使得内核具备了应对突发事件的能力. 在执行CPU当前程序时,由于系统中出现了某种急需处理的情况,CPU暂停正在执行的程序,转而去执行另外一段特殊程序来处理出现的紧急事务,处理结束后,CPU自动返回到原来暂停的程序中去继续执行. 这种程序在执行过程中由于外界的原因而被中间打断的

信号中断与异步信号中断安全编程

1.什么是中断? 1.1.什么是中断 外围设备的速度远低于CPU的速度,所以为提高CPU计算效率,现代计算机变内核主动为硬件主动,只在硬件需要的时候才发送信号,通知内核来处理数据.这样外围设备与内核的协作方式即为中断机制.而设备发送的信号即为中断,其本质为一种特殊的电信号. 硬中断处理流程: 1.各外围设备与中断管理器各输入引脚相连: 2.中断管理器与CPU之间只存在一条中断管线: 3.设备发送一个中断到中断管理器: 4.中断管理器发送对应电信号给CPU. 5.CPU中断当前工作,开始处理中断,

驱动:中断【2】中断处理程序、中断上下文中处理延时及一些函数的调用规则(调IIC中断驱动有感)

中断处理程序.中断上下文中处理延时及一些函数的调用规则(调IIC中断驱动有感)http://blog.csdn.net/samantha_sun/article/details/6790492 1,中断处理程序中不能使用有睡眠功能的函数,如ioremap,kmalloc,msleep等,理由是中断程序并不是进程,没有进程的概念,因此就没有休眠的概念: 2,中断处理程序中的延时可以用忙等待函数来代替,如ndelay,udelay,mdelay等,这些函数在实现上本质是根据CPU频率进行一定 次数的

linux中断源码分析 - 中断发生(三)

本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 回顾 上篇文章linux中断源码分析 - 初始化(二)已经描述了中断描述符表和中断描述符数组的初始化,由于在初始化期间系统关闭了中断(通过设置CPU的EFLAGS寄存器的IF标志位为0),当整个中断和异常的初始化完成后,系统会开启中断(设置CPU的EFLAGS寄存器的IF标志位为1),此时整个系统的中断已经开始可以使用了.本篇文章我们具体研究一次典型中断发生时的运行流程. 中断产生 我们需要先明确一下,中断控

中断(一)——中断描述符表的定义和初始化 (基于3.16-rc4)

1.中断描述符表的定义(arch/x86/kernel/traps.c) 1 gate_desc debug_idt_table[NR_VECTORS] __page_aligned_bss; 定义的描述符表为一个结构体数组,数组元素类型为gate_desc,大小为8B.NR_VECTORS宏为256,即描述符表大小为256*8B. 2.idt_descr变量的定义(arch/x86/kernel/head_32.S) 1 idt_descr: 2 .word IDT_ENTRIES*8-1 #

同步异步阻塞非阻塞可中断的睡眠不可中断的睡眠

同步:所有程序是按照一定逻辑先后顺序执行的,前一个代码没有执行完成,后面的代码不会执行. 异步:程序可能有若干分支,各自的执行时间点没有约束,也不可提前预测. 阻塞:阻塞指的是一个程序在执行的时候,没有成功获取到相应的资源(变量/标志/内存/数据等),那么就一直等待在这里循环或者睡眠等待资源可以被获取.这个时候我们一般会把阻塞的进程放到等待队列中,等待被唤醒.这个会涉及到等待队列的知识,在本章最后会讲解. 非阻塞:非阻塞指的是程序在获取资源或者其他数据的时候没有成功,那么直接返回错误码. 不可中

按中断的功能来分,中断有哪几种类型?

按中断功能分类: 1.输入输出中断 2.外中断 3.机器故障中断 4.程序性中断 5.访管中断 补充: 一般中断按功能.中断方式.终端来源分类 按中断方式分类 1.强迫性中断 2.自愿中断 按中断来源分类1.中断 2.俘获