首页 > (Interrupt Latency) 中断延迟

(Interrupt Latency) 中断延迟

中断延迟



 (Interrupt Latency) 中断延迟



是指从硬件中断发生到开始执行中断处理程序第一条指令之间的这段时间。

也就是:

计算机接收到中断信号到操作系统作出响应,并完成换到转入中断服务程序的时间。



不严格地,也可以表述为:

(外部)硬件(设备)发生中断,到系统执行中断服务子程序(ISR)的第一条指令的时间。



另外,如果尽可能严格地考虑问题,那么还要考虑下列情况:



1.中断的详细情况就是:外界硬件发生了中断后,CPU到中断处理器读取中断向量,并且查找中断向量表,

找到对应的中断服务子程序(ISR)的首地址,然后跳转到对应的ISR去做相应处理。

此部分时间,我称其为:识别中断时间



2.在允许中断嵌套的实时操作系统中,中断也是基于优先级的,允许高优先级中断抢断正在处理的低优先级中断,

如ucOS/II,所以,如果当前正在处理更高优先级的中断,即使此时有低优先级的中断,

也系统不会立刻响应,而是等到高优先级的中断处理完之后,才会响应。

而即使在不支持中断嵌套,即中断是没有优先级的,中断是不允许被中断的,所以,如果当前系统正在处理一个中断,

而此时另一个中断到来了,系统也是不会立即响应的,而只是等处理完当前的中断之后,才会处理后来的中断。

此部分时间,我称其为:等待中断打开时间



3.在嵌入式系统中,如ucOS/II,(其他类似系统中也有此情况),

常用开关中断来实现共享区的互斥访问。

如:

//利用μC/OS_Ⅱ 宏调用关中断和开中断

void Function (void)

{

     OS_ENTER_CRITICAL(); //关闭中断

     .

     .  

     .

    OS_EXIT_CRITICAL(); //打开中断

}

所以,会出现这种情况:当前中断来了,但由于之前某个程序访问共享区,

而关闭中断了,导致当前中断得不到处理。而只有等待其访问完成共享区之后,再开中断。

(不过,一般来说,关中断的时间都很短,否则也就不适合用开关中断的方法来实现共享区互斥访问,

而应该用信号量或者其他手段实现。因为关中断时间长短,是衡量一个实时系统性能好坏的一个重要指标)

此部分时间,我称其为:关闭中断时间



4.其他的有待高人补充。



所以,总的中断延迟时间就可以表示为:



中断延迟 = 识别中断时间 + [等待中断打开时间] + [关闭中断时间]



当然,对于2,3两种情况,很多时候,并没有遇到,所以,一般多为中断延迟等于识别中断时间。



注:对于保存所要用到的寄存器内容或称保存现场,保存上下文等,此处也叫 中断前导,

并且做相应中断处理,

在处理完之后,进行恢复,此处也叫中断后续,

这些工作,是在中断处理子程序ISR完成的

更多相关:

  • 系统环境 (一)  硬件环境 CPU:S3C4510B SDRAM:W981216DH 16M FLASH:MX29LV160AB 2M (二)  软件环境 tornado2.01 for arm(AKA的FTP上有tornado2.2需要的可以自己去下载:)) (三)  调试环境...

  • 点击打开链接 一,linux软中断的概念软中断(softirq)常常表示可延迟函数的所有种类,目前linux上使用的软中断个数是有限的,linux最多注册32个,目前使用了10个,在interrupt.h中定义,中断上下文:表示内核当前正在执行一个中断处理程序或者一个可延迟函数。软中断(即使同一类型的软中断)可以并发运行在多个CPU上...

  • 生成分析文件 命令行运行: valgrind --tool=callgrind ./palmGateMachine 检测完毕之后会生成一个文件callgrind.out.26805, 后面的数字其实是这个待测进程的pid 可视化方法 可视化方法 可视化工具 kcachegrind 1、下载地址: https://launchp...

  • MQTT 心跳和keepalive配置 内容: 正常MQTT 服务器端会配置一个超时时间,一般为60s, 在这个时间段内一个连接如果没有数据传输的话,服务端会主动断开连接以释放资源, 有两种方式可以规避这个问题: 方式1: 最为简单, 将keepalive的时间设置小于 服务端的超时时间,则客户端每隔 keepalive的时间就...

  • 概述 我们用jmeter做性能测试,必然需要学会分析测试报告。但是初学者常常因为对概念的不清晰,最后被测试报告带到沟里去。   常见的误区 分析响应时间全用平均值响应时间不和吞吐量挂钩响应时间和吞吐量不和成功率挂钩。。。。。   平均值特别不靠谱 平均值为什么不靠谱?相信大家读新闻的时候经常可以看到,平均工资,平均房价,平均支出,等等...

  • 原文: https://mp.weixin.qq.com/s/Dns-ucDwuDeR7lNSlibyAA 放假通知   今年7月1日放暑假 9月2日开学   今天,省教育厅发布通知,2019年全省中小学幼儿园暑期放假时间统一为7月1日,秋季开学时间9月2日。2020年寒假放假时间为1月18日,春季开学时间为2月10日。 刚刚...

  • 1. P117页,练习15:最高响应比 HRRF: 作业 提交时刻 运行时刻 开始时刻 完成时刻 周转时间/min 带权周转时间/min 1 10:00 2:00 10:00 12:00 120 120/120 2 10:10 1:00 12:25 13:25 195 195/60 3 1...

  • 1. 什么时候使用throws ? (1)定义功能方法时候,需要把出现的问题暴露出来,让调用者去处理。那么就通过throws在方法上标识。 (2)有时候,我们是可以对异常进行处理的,但是又有些时候,我们根本就没有权限去处理某个异常。或者说我们处理不了,我就不处理了。为了解决这个出错问题,java针对这种问题,就提供了另一种处理方案:t...