随想录(中断中真的不能上下文切换吗)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
记得在读书的时候,教操作系统的老师就告诉我们,在cpu处理中断的时候,是不能进行上下文切换的。至于原因是什么,她就说是影响中断啦、影响性能什么的。再往下深层次讲一点,就没有了。当然了,对老师的话,我们是深信不疑的。
等到后来自己port ucos2实时系统的时候发现,原来在中断返回的时候是可以进行中断上下文切换的。为什么呢?因为cpu刚刚处理了中断,而原来某个高优先级的任务可能刚刚在中断里面被唤醒,它需要立即被执行,所以在中断返回前通过必要的手段切换到这个新的实时任务运行。到了这里,我又想起了老师说过不可以在中断上下文切换的啊,为什么这里又可以了,搞不懂。
后来等到自己有能力阅读linux代码的时候,发现原来linux在中断返回kernel模式之前也是可以进行上下文切换的。ucos和linux都是广泛使用的代码,既然它们都在中断中进行了上下文切换,那么难到真的老师讲错了吗?
后来一天晚上,自己看书的时候,忽然顿悟了。老师说的中断里面不能上下文切换,应该是不能在中断处理到一半的时候进行上下文切换。那如果非要这么做,会带来什么后果呢?我想大约有这么几点,第一,被中断的任务会收到无端的牵连,因为如果中断不发生,它本来有机会继续运行的,现在这种切换反而会导致cpu调度的不公平,但是不会紊乱;第二,嵌套的中断也会因为cpu无端的上下文切换没有得到及时地处理,从而性能大幅度下降,某些硬件行为甚至变得不可测;第三,中断上下文切换花费时间较长,影响cpu处理其他中断,及时性有损失。
这么说来,老师没有说错,linux和ucos也没有错,只是我们自己没有找到root cause而已。这也告诉我自己,学习从来不只是获得知识而已,它还是一个思考和辨析的过程。
随想录(中断中真的不能上下文切换吗)相关推荐
- Linux:上下文,进程上下文和中断上下文概念,上下文切换
Linux:上下文,进程上下文和中断上下文概念,上下文切换 1. 上下文 context:(就是一个环境) 2. 进程上下文 2.1 进程上下文的三个部分:用户级上下文.寄存器上下文以及系统级上下文 ...
- 作为“山寨版脸书”Reels在网站推广中真的要和Tik Tok死磕?
众所周知,因为一些不可说的原因Facebook一直在国际范围内打压Tik Tok,尤其是Tik Tok在印度市场被禁后,更是第一时间在印度推出Reels并上线使用,而Reels一直作为"山寨 ...
- 中断中是否可以使用信号量?
不论是书上还是网上,对这块的解释,总是很凌乱, 让人不好理清. 大部分开发者可能也只知其然,不知所以然. 在网上找到一篇对此解释言简意赅,一看就懂的文章,故分享过来. 1.中断中为何不能使用信号 ...
- 嵌入式FreeRTOS系统,在中断中调用FreeRTOS系统的API函数
作为在中断中调用FreeRTOS系统的API函数的参考,disp_str()是显示屏的显示函数会将传入的字符串进行显示. void TIM5_Int_Init(u16 arr,u16 psc) {TI ...
- STM32F103ZE单片机在WWDG窗口看门狗的EWI中断中喂狗导致系统复位的原因及解决办法(中断函数重入问题)
版权声明:本文为博主原创文章,欢迎转载 https://blog.csdn.net/ZLK1214/article/details/78308058 程序开启了WWDG的Early wakeup ...
- 回顾:我们从2次主要API中断中汲取的经验教训
by Cory Kennedy-Darby 通过科里·肯尼迪·达比 回顾:我们从2次主要API中断中汲取的经验教训 (Retrospective: lessons we learned from 2 ...
- FreeRTOS+STM32F103中断中发送任务通知单片机死机问题
最近在调试FreeRTOS系统遇到了一个比较奇怪的问题,在STM32F103最小系统上调试任务通知模拟事件标志组功能时,中断一触发,单片机就会死机.通过查询方式发送任务通知没任何问题,一旦用按键触发外 ...
- STM32中断中调用OLED显示出现OLED花屏
STM32中断中调用OLED显示出现OLED花屏 在TIM5中断处理函数中,我写了OLED显示,经过DEBUG发现程序执行到OLED显示语句的时候,OLED就会花屏. //中断服务处理函数 void ...
- 男女主都是计算机程序,5本男女主互相利用的古言:他们相互算计,却在不知不觉中真的动了心!...
原标题:5本男女主互相利用的古言:他们相互算计,却在不知不觉中真的动了心! 大家好,我是毛毛虫,今天给大家推荐5本男女主互相利用的古言:他们相互算计,却在不知不觉中真的动了心! 第一本: <第一 ...
最新文章
- spring中的bean属性相关访问、编辑、转换
- 自制Android相机
- 06_pandas入门教程,引包,使用DataFrame和Series做一些事情
- Codeforces 993A. Two Squares(暴力求解)
- 什么是NVMe驱动器,您应该购买一个吗?
- 智能手机进化史——全·全面屏时代回看诺基亚N9
- Java单例模式(类和对象)
- Springboot 注解最全详解
- linux下socket编程常用头文件
- Proofs for Inner Pairing Products and Applications 学习笔记
- 一文读懂自动驾驶传感器之激光雷达、毫米波雷达、超声波雷达及摄像头
- COGS 613. 火车站饭店 解题报告
- 【数据结构】-图-输出顶点u到v的所有简单路径
- Studio 3T的使用
- IT圈子很小,遭遇人肉搜索后果很严重
- 高中英语教师资格证考试经验贴
- Elasticsearch-Sql+Mybatis+SpringBoot集成
- 146_路由器项目_附加功能:可以拿取文件内IP保存到过滤链表中,过滤IP也可以保存到txt文件,也可以终端输入IP,保存到文件【单链表的尾插、头插、删除指定节点、遍历等】】
- 总是做不好需求管理?这6款必备工具送给你
- 【一篇就够了】springboot微信公众号开发,你的坑我来踩