首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux系统中断分类

Linux系统中的中断分类主要基于中断的来源、是否可以被屏蔽、入口跳转方式等因素。以下是对Linux系统中断分类的详细解析:

中断分类

  • 根据中断来源分类
    • 内部中断:来源于CPU内部,如软件中断指令、溢出等。
    • 外部中断:来源于CPU外部,如外设请求、定时器中断等。
  • 根据中断是否可以屏蔽分类
    • 可屏蔽中断:可以通过设置中断屏蔽位来进行屏蔽。
    • 不可屏蔽中断:无法通过设置屏蔽位来屏蔽。
  • 根据中断入口跳转方式分类
    • 向量中断:不同的中断分配不同的中断号,自动跳转到对应的地址执行。
    • 非向量中断:多个中断共享一个入口地址,通过软件判断中断标志来识别具体中断。

中断优先级

  • Linux系统中,中断优先级通常由硬件和操作系统共同决定。例如,软中断INTn的优先级排列原则是n值越小级别越高。

中断处理机制

  • Linux中断处理机制包括中断子系统初始化、中断或异常处理、中断API等。中断服务程序(ISR)是中断处理的核心,它们负责处理特定类型的中断。

实际应用示例

  • 定时器中断:用于实现时间相关的功能,如系统定时任务。
  • 按键中断:常用于用户输入设备的驱动程序中,实现用户输入的实时响应。

通过上述分类和机制,Linux系统能够有效地管理和响应各种中断,确保系统的稳定运行和高效性能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux系统中断的硬件框架

资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...查看中断状态、清中断 3.3.3 GIC ARM体系结构定义了通用中断控制器(GIC),该控制器包括一组用于管理单核或多核系统中的中断的硬件资源。...GIC提供了内存映射寄存器,可用于管理中断源和行为,以及(在多核系统中)用于将中断路由到各个CPU核。...判断中断状态、清中断 3.4.2 GIC ARM体系结构定义了通用中断控制器(GIC),该控制器包括一组用于管理单核或多核系统中的中断的硬件资源。...GIC提供了内存映射寄存器,可用于管理中断源和行为,以及(在多核系统中)用于将中断路由到各个CPU核。

4.5K40

Linux 中断子系统(一):框架

中断是大家用的最多的功能,不管是单片机还是 Linux 系统,都需要用到中断,对它的深入理解是非常必要的。 为什么需要中断?...中断分类 中断是指 CPU 正常运行期间,由于内外部事件或程序预先安排的事件,引起的 CPU 暂时停止正在运行的程序,转而为该内部或外部预先安排的事件服务的程序中去,服务完毕后再返回去继续执行被暂时中断的程序...终止就是系统直接挂掉了。 中断子系统硬件架构 一个完整的设备中,与中断相关的硬件可以划分为3类,它们分别是:设备、中断控制器和CPU本身。...第二层是 Linux 内核提供的通用中断处理模块,这一层存在的意义在于,希望用户在第一层写的驱动在移植的时候更方便,保持接口不变,不让用户直接使用芯片原厂的 API,而是 Linux 的 API。...关于中断子系统,我写了八篇文章,从头到尾讲了一遍,大家可以去我的blog查看: http://www.linuxer.vip/linux-interrupt1/

3.3K10
  • Linux 中断子系统(二):GIC 中断控制器

    比如按键中断、串口中断等等,这些中断所有的 Core 都可以处理,不限定特定 Core。...③、SGI(Software-generated Interrupt),软中断,由软件触发引起的中断,通过向寄存器 GICD_SGIR 写入数据来触发,系统会使用 SGI 中断来完成多核之间的通信。...中断源有很多,为了区分这些不同的中断源肯定要给他们分配一个唯一 ID,这些 ID 就是中断 ID。...分发器收集所有的中断源,可以控制每个中断的优先级,它总是将优先级最高的中断事件发送到 CPU 接口端。分发器端要做的主要 工作如下: ①、全局中断使能控制。 ②、控制每一个中断的使能或者关闭。...有一点需要说明:不管 GIC 如何对中断进行分类,对 CPU core 来讲,只分为 IRQ、FIQ、VIRQ、VFIQ,一般所有的外部中断对CPU core来讲都属于IRQ: 即便在 GIC 内部分为了

    6.2K20

    原语,中断、异常和系统调用的关系,中断的分类,系统调用和过程调用,常见系统调用

    中断、异常和系统调用的关系 1.中断的概念 中断是CPU的一个功能,就是; CPU停下当前的工作, 保留现场后 自动地转去执行相应的处理程序, CPU控制权发生改变 处理完该事件后再返回断点继续执行被刚才被打断的程序...2.中断的分类 2.1分为软中断和硬中断 软中断: a.编程异常通常叫做软中断(空指针,数组越界,classnotfound) b.软中断是通讯进程之间用来模拟硬中断的 一种信号通讯方式。...c.硬中断的中断号是由中断控制器提供的(NMI硬中断中断号系统指定为02H);软中断的中断号由指令直接给出,无需使用中断控制器。 d.硬中断是可屏蔽的(NMI硬中断不可屏蔽),软中断不可屏蔽。...第三类由于在程序中使用了请求系统服务的系统调用而引发的过程,称作“陷入”(trap,或者陷阱)。前两类通常都称作中断,它们的产生往往是无意、 被动的,而陷入是有意和主动的。...第一类(中断)+第二类(异常)= 中断 第三类(系统调用)= 系统调用 系统调用:由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface

    16510

    Linux 中断子系统(三):中断处理知识点大全

    Linux 中断相关节点 /proc/interrupts cat 这个节点,会打印系统中所有的中断信息,如果是多核CPU,每个核都会打印出来。...更多介绍请参看 Linux 内核源代码自带的文档:linux-4.14/Documentation/IRQ-affinity.txt /proc/irq/{IRQ}/smp_affinity /proc...所以 Linux 下: 1、高优先级中断无法抢占正在执行的低优先级中断。 2、同处于 pending 状态的中断,优先响应高优先级中断进行处理。...FreeRTOS 中是允许高优先级中断抢占正在执行的低优先级中断,不同系统设定不一样。...2、中断上下文处于关中断中,需要发送个 EOI 通知 GIC 中断处理结束,GIC 和CPUinterface 才会进入下一次中断处理。如果中途 schedule,那么整个系统的中断都会被屏蔽掉。

    5.7K20

    Linux中断 - IDT

    中断描述符项定义 当中断发生,cpu获取到中断向量后,查找IDT中断描述符表得到相应的中断描述符,再根据中断描述符记录的信息来作权限判断,运行级别转换,最终调用相应的中断处理程序; 这里涉及到Linux...传统系统调用的实现 这里所说的传统系统调用主要指旧的32位系统使用 int 0x80软件中断来进入内核态,实现的系统调用。...传统系统调用相关 IDT 的设置 Linux系统启动过程中内核压解后最终都调用到start_kernel, 在这里会调用trap_init, 然后又会调用idt_setup_traps: void...entry_INT80_32系统调用对应的中断处理程序 ENTRY(entry_INT80_32) ASM_CLAC pushl %eax /* pt_regs->orig_ax...硬件中断相关IDT的初始化也是在Linux启动时完成,在start_kernel中通过调用init_IRQ完成,我们来看一下: void __init init_IRQ(void) { int

    6.6K10

    详解中断系统

    详解中断系统 中断系统是计算机的重要指标之一。可以解决快速CPU与慢速外设之间的矛盾,使之能并行工作。可以及时处理随机参数及故障,提高可靠性。 1....中断流程 中断请求-中断响应-保护断点-中断服务-中断返回。 2....中断概念 **(1)中断系统:**实现中断功能的硬件系统和软件系统 **(2)中断源:**产生中断的请求源 **(3)中断请求:**中断源向CPU提出的处理请求。...中断系统的一般功能 中断系统一般应具有如下功能: 实现中断及返回 当某中断源发出中断申请时,若允许响应,CPU必须在现行的指令执行完后,把断点处的PC值压入堆栈保存,称为保护断点。...实现中断的撤除 在响应中断后,返回主程序之前,中断请求应该撤除,否则,将影响对其它中断申请的响应。 MCS-51中断系统只能对一部分中断申请,在响应后自动撤除,使用中应注意。 4.

    91220

    中断系统结构及中断控制详解

    中断系统结构及中断控制详解 MCS—51提供5个中断请求源,2个中断优先级,可实现两级中断服务程序嵌套。...当CPU执行关中断指令后(或复位),将屏蔽所有中断请求,只有CPU执行开中断指令后才有可能接受中断请求,每个中断源可由软件编程为允许中断和禁止中断,每个中断源可程控为高优先级中断或低优先级中断。...一、中断系统内部结构 MCS-51的中断系统结构框图如下图所示,与中断有关的特殊功能寄存器有4个,分别为中断源寄存器(即专用寄存器TCON和SCON的相关位)、IE和IP。...EX0=1,允许外部中断0中断 MCS-5l系统复位后,IE中各中断允许位均被清“0” 。 五、 中断优先级 中断优先级——设计人员给每个中断源事先安排中断响应的优先顺序。然后按轻重缓急的次序响应。...PT0——T0中断优先级控制位。 PX0——外部中断0中断优先级控制位。 以上对应位为1,高优先级;为0,低优先级。 当系统复位后,IP低5位全部清“0”,将所有中断源设置为低优先级中断。

    3.4K20

    Linux 中断处理浅析

    最近在研究异步消息处理, 突然想起linux内核的中断处理, 里面由始至终都贯穿着”重要的事马上做, 不重要的事推后做”的异步处理思想....这是由内核的设计决定的, 中断服务程序没有自己的task结构(即操作系统教科书上说的进程控制块), 所以它不能被内核调度....中断处理的这几个阶段中不能调用可能导致睡眠的函数(包括分配内存); 对于第一个问题, 较新的linux内核增加了ksoftirqd内核线程, 如果持续处理的softirq超过一定数量, 则结束中断处理过程...据说在montavista(一种嵌入式实时linux)中, 将内核的中断机制做了修改. (某些中断的)中断处理过程被赋予了task结构, 能够被内核调度. 解决了上述两个问题....工作队列 linux基线版本的内核在解决上述问题上, 提供了workqueue机制.

    7.4K80

    聊聊 Linux 中断机制

    又过了几年,Linus Torvalds 基于 UNIX 操作系统开发了 Linux,一直流传至今。...我没有查到中断到底是何时引入的,但是从 Linux 问世以来就已经有了,而且 Linux 是基于 UNIX 开发的,可以认为 UNIX 就已经引入中断机制了,而且换个角度来说,UNIX 作为如此著名的操作系统...对于 Linux 内核来说,中断信号分为两类:硬件中断和软件中断,每个中断是由 0 - 255 之间的一个数字来标识。...在 Linux 系统中,将 int32 - int47 对应于 8259A 中断控制芯片发出的硬件中断请求信号 IRQ0 - IRQ15,并把程序编程发出的系统调用中断设置为 int128 ,也就是 0x80...最常见的情况就是 Linux 中的这些中断不会所有的都用到,有些中断是保留中,另外对于系统中所使用的一些中断,内核会在其初始化过程中重新设置这些中断描述符,让他们指向实际的处理过程。

    10210

    操作系统-中断

    中断可以提高操作系统运行的效率,有了中断系统才能并发运行。 并发是指单位时间内处理的工作量,比如每秒并发数是100,意思是指1s内CPU处理的请求总量是100个。...操作系统本质上就是个死循环,但是这个死循环只是为了保证操作系统周而复始的运行下去,而运行的目的就是为了等待某件事情的发生,当事件(中断)发生时去做响应的工作,操作系统是中断驱动的。...可屏蔽中断是通过INTR信号线进入CPU,外部硬件设备产生的中断CPU可以理会,可以不理会,因为此类中断不会让操作系统宕机。...不可中断是指通过NMI信号线进入CPU,表示系统中出现了致命的错误,此类错误会导致操作系统宕机,因此不可以屏蔽,必须进行响应的处理。 可屏蔽中断处理程序为什么要分为上下部分?...本期操作系统中断就到这,扫码关注,更多内容我们下期再见!

    1.3K30

    linux内核缺页中断处理

    缺页中断处理一般流程: 1.硬件陷入内核,在堆栈中保存程序计数器,大多数当前指令的各种状态信息保存在特殊的cpu寄存器中。 2.启动一个汇编例程保存通用寄存器和其他易丢失信息,以免被操作系统破坏。...3.当操作系统发现缺页中断时,尝试发现需要哪个虚拟页面。通常一个硬件寄存器包含了这些信息,如果没有的话操作系统必须检索程序计数器,取出当前指令,分析当前指令正在做什么。...4.一旦知道了发生缺页中断的虚拟地址,操作系统会检查地址是否有效,并检查读写是否与保护权限一致,不过不一致,则向进程发一个信号或者杀死该进程。...6.一旦页框干净后,操作系统查找所需页面在磁盘上的地址,通过磁盘操作将其装入,当页面被装入后,产生缺页中断的进程仍然被挂起,并且如果有其他可运行的用户进程,则选择另一用户进程运行。...9.调度引发缺页中断的进程,操作系统返回调用他的汇编例程 10.该例程恢复寄存器和其他状态信息,返回到用户空间继续执行,就好像缺页中断没有发生过。

    10.8K22

    linux 中断机制《Rice linux 学习笔记》

    这篇文章以按键为例子讲解linux的中断原理,中断的架构,中断的实现。 在我们的开发中,检测按键是否触发,无非就两种方法—轮询和中断。作者认为两种方法最大的区别就是CPU的利用率。...Linux的中断原理: 中断:处理器异常的一种,它是一种特殊的电信号,用硬件发给处理器,处理器接收到中断后,会马上向操作系统反映此信号的到来,然后就由操作系统负责处理这些新到来的数据。...Linux中断的相关函数: 1、注册中断函数: 中断处理函数结构: typedef irqreturn_t (*irq_handler_t)(int, void*); 注册中断函数:int request_irq...dev:与request_irq的参数dev必须一致,将request_irq指定的dev传递给这个参数; Linux中断处理分析: 第一种方式:应用层的读,不管什么情况下,都会返回。...Linux中断实现: 这里例子采用等待队列的方式实现(也就是上述的第二种方法)。

    4.8K10

    Linux内核硬中断 软中断的原理和实现

    (1)硬中断 由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。...我们通常所说的中断指的是硬中断(hardirq)。 (2)软中断 为了满足实时系统的要求,中断处理应该是越快越好。...linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。...(3)中断嵌套 Linux下硬中断是可以嵌套的,但是没有优先级的概念,也就是说任何一个新的中断都可以打断正在执行的中断,但同种中断除外。软中断不能嵌套,但相同类型的软中断可以在不同CPU上并行执行。...在那些显示检查和执行待处理的软中断的代码中,如网络子系统中 而不管是用什么方法唤起,软中断都要在do_softirq()中执行。

    22.7K21

    Linux中断虚拟化(一)

    作者简介 王柏生 资深技术专家,先后就职于中科院软件所、红旗Linux和百度,现任百度主任架构师。在操作系统、虚拟化技术、分布式系统、云计算、自动驾驶等相关领域耕耘多年,有着丰富的实践经验。...著有畅销书《深度探索Linux操作系统》(2013年出版)。 谢广军 计算机专业博士,毕业于南开大学计算机系。资深技术专家,多年的IT行业工作经验。...多年来一直从事操作系统、虚拟化技术、分布式系统、大数据、云计算等相关领域的研发工作,实践经验丰富。 本文内容节选自《深度探索Linux虚拟化技术》,已获得机械工业出版社华章公司授权。...中断是计算机系统中非常重要的部分,计算机基础理论书籍往往也会花上很多篇幅讨论中断,但是因为操作系统都替开发人员处理好中断了,所以除非是系统工程师,否则一般开发人员对中断很难有一个很直观的认识,因此理解如何通过软件的方式来模拟中断更是一个挑战...CPU将执行Guest系统IDT中对应的中断处理服务,图3-2为单核系统使用PIC中断芯片下的虚拟中断过程。

    6.5K30

    Linux中断虚拟化(二)

    作者简介 王柏生 资深技术专家,先后就职于中科院软件所、红旗Linux和百度,现任百度主任架构师。在操作系统、虚拟化技术、分布式系统、云计算、自动驾驶等相关领域耕耘多年,有着丰富的实践经验。...著有畅销书《深度探索Linux操作系统》(2013年出版)。 谢广军 计算机专业博士,毕业于南开大学计算机系。资深技术专家,多年的IT行业工作经验。...多年来一直从事操作系统、虚拟化技术、分布式系统、大数据、云计算等相关领域的研发工作,实践经验丰富。 本文内容节选自《深度探索Linux虚拟化技术》,已获得机械工业出版社华章公司授权。...当然是CPU中的操作系统。因此这一步,8259A将会检查收到的中断请求是否被屏蔽。 4)在某一个时刻,可能有多个中断请求,或者是之前存在IRR中的中断并没有被处理,8259A中积累了一些中断。...对于多处理器系统,然后再向目标CPU发送一个“重新调度”的IPI中断,那么被唤醒的VCPU线程很快就会被调度,执行切入Guest的过程,从而完成中断注入。

    6.1K10

    Linux 软中断机制分析

    软中断分析最近工作繁忙,没有时间总结内核相关的一些东西。上次更新博客到了linux内核中断子系统。这次总结一下软中断,也就是softirq。之后还会总结一些tasklet、工作队列机制。...这样的后果会造成有可能丢失外部中断。于是,linux内核设计出了一种架构,中断函数需要处理的任务分为两部分,一部分在中断处理函数中执行,这时系统关闭中断。...在linux系统的进程数据结构里,有这么一个数据结构 #define preempt_count()(current_thread_info()->preempt_count), 利用preempt_count...Linux内核就中断方面就必须考虑平衡这三个方面的问题。而下面我要分析的__do_softirq函数就恰似在这三者之间打太极,游刃有余,面面俱到!...处理软中断内核线程 之前我说到不能让CPU长时间来处理中断事务,这样会影响系统的响应时间,严重影响用户和系统之间的交互式体验。

    8.8K91

    内核中断子系统介绍

    很多人在学习中断子系统的过程中,在对基本概念与整体不太了解的情况下,过早的陷入了各种架构的实现细节,如同盲人摸象。这里主要给大家明确中断的各个基本概念,希望从这个角度能让大家更好的理解中断子系统。...中断子系统中的中断指的是其中硬件的一方,后续中断均按此理解。 中断处理的参与对象和流程 中断处理中有着多个对象的参与,理解每个对象在其中是如何参与是很重要的。以下列举了中断处理的参与对象。...中断子系统 现在把之前的流程具有的部分对比内核中断子系统,可以发现还多出了一个通用中断处理层。...另一方面,系统硬件拓扑结构的信息一般由设备树源码 DTS 体现。 硬件封装层 硬件封装层包括 cpu 和中断控制器两部分。...另一方面,考虑到系统中可能存在多个中断控制器,使得单一中断控制器的中断号不足以区分中断事件,所以引入了软件中断号的概念。

    1.2K21
    领券