软中断有优先级之分吗

author author     2023-04-08     207

关键词:

参考技术A 1.中断的基本概念中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。引起中断发生的事件被称为中断源。中断源向CPU发出的请求中断处理信号称为中断请求,而CPU收到中断请求后转到相应的事件处理程序称为中断响应。在有些情况下,尽管产生了中断源和发出了中断请求,但CPU内部的处理器状态字PSW的中断允许位已被清除,从而不允许CPU响应中断。这种情况称为禁止中断。CPU禁止中断后只有等到PSW的中断允许位被重新设置后才能接收中断。禁止中断也称为关中断,PSW的中断允许位的设置也被称为开中断。开中断和关中断是为了保证某段程序执行的原子性。还有一个比较常用的概念是中断屏蔽。中断屏蔽是指在中断请求产生之后,系统有选择地封锁一部分中断而允许另一部分中断仍能得到响应。不过,有些中断请求是不能屏蔽甚至不能禁止的,也就是说,这些中断具有最高优先级,只要这些中断请求一旦提出,CPU必须立即响应。例如,电源掉电事件所引起的中断就是不可禁止和不可屏蔽的。2.中断的分类与优先级根据系统对中断处理的需要,操作系统一般对中断进行分类并对不同的中断赋予不同的处理优先级,以便在不同的中断同时发生时,按轻重缓急进行处理。根据中断源产生的条件,可把中断分为外中断和内中断。外中断是指来自处理器和内存外部的中断,包括I/0设备发出的I/O中断、外部信号中断(例如用户键人ESC键)。各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。外中断在狭义上一般被称为中断。内中断主要指在处理器和内存内部产生的中断。内中断一般称为陷阱(trap)或异常。它包括程序运算引起的各种错误,如地址非法、校验错、页面失效、存取访问控制错、算术操作溢出、数据格式非法、除数为零、非法指令、用户程序执行特权指令、分时系统中的时间片中断以及从用户态到核心态的切换等都是陷阱的例子。为了按中断源的轻重缓急处理响应中断,操作系统为不同的中断赋予不同的优先级。例如在UNIX系统中,外中断和陷阱的优先级共分为8级。为了禁止中断或屏蔽中断,CPU的处理器状态字PSW中也设有相应的优先级。如果中断源的优先级高于PSW的优先级,则CPU响应该中断源的请求;反之,CPU屏蔽该中断源的中断请求。各中断源的优先级在系统设计时给定,在系统运行时是固定的。而处理器的优先级则根据执行情况由系统程序动态设定。除了在优先级的设置方面有区别之外,中断和陷阱还有如下主要区别:陷阱通常由处理器正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。CPU执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。例如执行指令非法时,尽管被执行的非法指令不能执行结束,但CPU仍可对其进行处理。3.软中断软中断的概念主要来源于UNIX系统。软中断是对应于硬中断而言的。通过硬件产生相应的中断请求,称为硬中断。而软中断则不然,它是在通信进程之间通过模拟硬中断而实现的一种通信方式。中断源发出软中断信号后,CPU或者接收进程在适当的时机进行中断处理或者完成软中断信号所对应的功能。这里适当的时机,表示接收软中断信号的进程须等到该接收进程得到处理器之后才能进行。如果该接收进程是占据处理器的,那么,该接收进程在接收到软中断信号后将立即转去执行该软中断信号所对应的功能。4.中断处理过程一旦CPU响应中断,转人中断处理程序,系统就开始进行中断处理。下面对中断处理过程进行详细说明:1)CPU检查响应中断的条件是否满足。CPU响应中断的条件是:有来自于中断源的中断请求、CPU允许中断。如果中断响应条件不满足,则中断处理无法进行。2)如果CPU响应中断,则CPU关中断,使其进入不可再次响应中断的状态。3)保存被中断进程现场。为了在中断处理结束后能使进程正确地返回到中断点,系统必须保存当前处理器状态字PSW和程序计数器PC等的值。这些值一般保存在特定堆栈或硬件寄存器中。4)分析中断原因,调用中断处理子程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。在系统中,为了处理上的方便,通常都是针对不同的中断源编制有不同的中断处理子程序(陷阱处理子程序)。这些子程序的人口地址(或陷阱指令的人口地址)存放在内存的特定单元中。再者,不同的中断源也对应着不同的处理器状态字PSW。这些不同的PSW被放在相应的内存单元中,与中断处理子程序人口地址一起构成中断向量。显然,根据中断或陷阱的种类,系统可由中断向量表迅速地找到该中断响应的优先级、中断处理子程序(或陷阱指令)的入口地址和对应的PSW。5)执行中断处理子程序。对陷阱来说,在有些系统中则是通过陷阱指令向当前执行进程发出软中断信号后调用对应的处理子程序执行。6)退出中断,恢复被中断进程的现场或调度新进程占据处理器。7)开中断,CPU继续执行。5.设备管理程序与中断方式处理器的高速和输入输出设备低速之间的矛盾,是设备管理要解决的一个重要问题。为了提高整体效率,减少在程序直接控制方式中的CPU等待时间以及提高系统的并行工作效率,采用中断方式来控制输入输出设备和内存与CPU之间的数据传送,是很有必要的。在硬件结构上,这种方式要求CPU与输入输出设备(或控制器)之间有相应的中断请求线,而且在输入输出设备控制器的控制状态寄存器上有相应的中断允许位。

中断与操作系统之间有啥关系?

...现的时候,内核会唤醒一组内核线程来处理。这些线程的优先级最低(nice值为19),这能避免它们跟其它重要的任务抢夺资源。但它们最终肯定会被执行,所以这个折中的方案能够保证在软中断很多时用户程序不会因为得不到处理... 查看详情

linux信号机制

...似软中断。  信号和软中断的区别:    [1]中断有优先级,而信号没有优先级。    [2]信号处理程序是在用户态下运行的,而中断处理程序是在核心态下运行。    [3]中断响应是及时的,而信号响应通常都有较大... 查看详情

单片机学习中断定时器优先级的一些理解

...模块的信号进来;内部中断:内部配置定时器。 4、优先级分为抢占优先级和响应优先级。比如抢占优先级 0 1 2 3响应优先级 0 1 2 3同时存在中断A、B:如果A先执行,B再执行,抢占优先级A<B,... 查看详情

内核线程软中断和定时器有何区别(代码片段)

内核线程、软中断和定时器有何区别?在慢速中断的过程中,允许别的中断发生   Re:内核线程、软中断和定时器有何区别?2.4中还有慢速中断吗?    Re:内核线程、软中断和定时器有何区别?有,其实就是... 查看详情

内核线程软中断和定时器有何区别(代码片段)

内核线程、软中断和定时器有何区别?在慢速中断的过程中,允许别的中断发生   Re:内核线程、软中断和定时器有何区别?2.4中还有慢速中断吗?    Re:内核线程、软中断和定时器有何区别?有,其实就是... 查看详情

中断下半部之tasklet(代码片段)

...a;HI_SOFTIRQ和TASKLET_SOFTIRQ。这两者之间唯一的区别在于前者优先级比后者高。使用①声明你自己的tasklet静态创建DECLARE_TASKLET(name,_callback)DECLARE_TASKLET_DISABLED(name,_callback)动态创建tasklet_init()②编写你自己的tasklet程序voidtasklet_fn(unsignedl... 查看详情

13系统里有哪些软中断?

...过查看 ​​/proc/softirqs​​​ 的内容来知晓「软中断」的运行情况,以及 ​​/proc/interrupts​​ 的内容来知晓「硬中断」的运行情况。接下来,就来简单的解析下 ​​/proc/softirqs​​ 文件的内容,在我服... 查看详情

cortex-m系统中断延迟及其测量方法

...间阈值内必须完成响应,而软实时则仅需根据任务的优先级尽可能快地完成响应即可。无论是RTOS环境还是裸机环境下,系统最原始的实时性保障其实来自于MCU内核的中断响应能力,关于中断响应能力有一个重要指标... 查看详情

如何排查用户态cpu使用率高(代码片段)

...否则表示系统存在某些瓶颈。ni(nice):表示用nice修正进程优先级的用户态进程执行的CPU时间。nice是一个进程优先级的修正值,如果进程通过它修改了优先级,则会单独统计CPU开销。id(idle):表示CPU处于空闲态的时间占比,此时,... 查看详情

stm32中断优先级

把STM32中断优先级搞懂了现在与大家分享:一:综述STM32目前支持的中断共为84个(16个内核+68个外部),16级可编程中断优先级的设置(仅使用中断优先级设置8bit中的高4位)和16个抢占优先级(因为抢占优先级最多可以有四位数... 查看详情

51单片机的中断优先级及中断嵌套

说最基本的,老的51单片机(80C51系列)有5个中断源,2个优先级,可以实现二级中断服务嵌套。现在很多扩展的51单片机已经有4个优先级(或更多)和更多的中断源了。在说到中断之前,我先来定义一下优先级,明白了什么是优... 查看详情

软中断和tasklet介绍

今天看了下tasklet,重点分析了其和软中断的关系,特此记录 关于软中断,在之前的中断文章中已经有所介绍,这里就不多说了,只是说明下,系统中默认支持32种软中断,而实际上系统定义的软中断仅有以下几种。enum{HI_SOFT... 查看详情

nrf51822的中断优先级是怎么规定的,不同的中断可以设置相同的优先级吗,

他的中断优先级的设置和M3系列的stm类似吗,每个中断有2中不同的类型,抢占式和sub参考技术AMCS-51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器(IP)中的相应位的状... 查看详情

stm32优先级

参考技术ASTM32中有两个关于优先级的概念,分别是抢占式优先级和响应优先级,每个中断源都需要被指定这两种优先级,其属性编号越小,表明它的优先级别越高。下面将先大致介绍一下这两个优先级的概念。首先,如何确定优... 查看详情

stm32中断

...16 个内核+68 个外部), 16 级可编程中断优先级 的设置(仅使用中断优先级设置 8bit 中的高 4 位)和16个抢占优先级(因为抢占优先级最多可以有四位数)。 STM32(Cortex-M3)中有两个优先级的概... 查看详情

linux中断处理总结(代码片段)

...信号线保持高电平;中断控制器经过仲裁,选择一个最高优先级中断信号,路由给CPU,CPU没有ACK之前,一直维持信号线的电平状态;ARM收到中断信号,开始响应时,硬件自动屏蔽CPU中断(清除daif位),软件从中断控制器读出具体... 查看详情

硬中断和软中断(转)

...et/zhangskd/article/details/21992933 概述 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某... 查看详情

系统软中断cpu使用率升高,怎么办

一:中断,分上半部分,硬中断,下半部分,软中断。软中断包括网络收发,定时,调度等。可以查看/proc/softirps文件查看软中断情况。每个cpu都有一个软中断内核进程,叫ksoftirqd/cpu编号。如果软中断频率太高,CPU处理不及时,... 查看详情