【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

记得在读书的时候,教操作系统的老师就告诉我们,在cpu处理中断的时候,是不能进行上下文切换的。至于原因是什么,她就说是影响中断啦、影响性能什么的。再往下深层次讲一点,就没有了。当然了,对老师的话,我们是深信不疑的。

等到后来自己port ucos2实时系统的时候发现,原来在中断返回的时候是可以进行中断上下文切换的。为什么呢?因为cpu刚刚处理了中断,而原来某个高优先级的任务可能刚刚在中断里面被唤醒,它需要立即被执行,所以在中断返回前通过必要的手段切换到这个新的实时任务运行。到了这里,我又想起了老师说过不可以在中断上下文切换的啊,为什么这里又可以了,搞不懂。

后来等到自己有能力阅读linux代码的时候,发现原来linux在中断返回kernel模式之前也是可以进行上下文切换的。ucos和linux都是广泛使用的代码,既然它们都在中断中进行了上下文切换,那么难到真的老师讲错了吗?

后来一天晚上,自己看书的时候,忽然顿悟了。老师说的中断里面不能上下文切换,应该是不能在中断处理到一半的时候进行上下文切换。那如果非要这么做,会带来什么后果呢?我想大约有这么几点,第一,被中断的任务会收到无端的牵连,因为如果中断不发生,它本来有机会继续运行的,现在这种切换反而会导致cpu调度的不公平,但是不会紊乱;第二,嵌套的中断也会因为cpu无端的上下文切换没有得到及时地处理,从而性能大幅度下降,某些硬件行为甚至变得不可测;第三,中断上下文切换花费时间较长,影响cpu处理其他中断,及时性有损失。

这么说来,老师没有说错,linux和ucos也没有错,只是我们自己没有找到root cause而已。这也告诉我自己,学习从来不只是获得知识而已,它还是一个思考和辨析的过程。

随想录(中断中真的不能上下文切换吗)相关推荐

  1. Linux:上下文,进程上下文和中断上下文概念,上下文切换

    Linux:上下文,进程上下文和中断上下文概念,上下文切换 1. 上下文 context:(就是一个环境) 2. 进程上下文 2.1 进程上下文的三个部分:用户级上下文.寄存器上下文以及系统级上下文 ...

  2. 作为“山寨版脸书”Reels在网站推广中真的要和Tik Tok死磕?

    众所周知,因为一些不可说的原因Facebook一直在国际范围内打压Tik Tok,尤其是Tik Tok在印度市场被禁后,更是第一时间在印度推出Reels并上线使用,而Reels一直作为"山寨 ...

  3. 中断中是否可以使用信号量?

    不论是书上还是网上,对这块的解释,总是很凌乱,  让人不好理清.   大部分开发者可能也只知其然,不知所以然. 在网上找到一篇对此解释言简意赅,一看就懂的文章,故分享过来. 1.中断中为何不能使用信号 ...

  4. 嵌入式FreeRTOS系统,在中断中调用FreeRTOS系统的API函数

    作为在中断中调用FreeRTOS系统的API函数的参考,disp_str()是显示屏的显示函数会将传入的字符串进行显示. void TIM5_Int_Init(u16 arr,u16 psc) {TI ...

  5. STM32F103ZE单片机在WWDG窗口看门狗的EWI中断中喂狗导致系统复位的原因及解决办法(中断函数重入问题)

    版权声明:本文为博主原创文章,欢迎转载    https://blog.csdn.net/ZLK1214/article/details/78308058 程序开启了WWDG的Early wakeup ...

  6. 回顾:我们从2次主要API中断中汲取的经验教训

    by Cory Kennedy-Darby 通过科里·肯尼迪·达比 回顾:我们从2次主要API中断中汲取的经验教训 (Retrospective: lessons we learned from 2 ...

  7. FreeRTOS+STM32F103中断中发送任务通知单片机死机问题

    最近在调试FreeRTOS系统遇到了一个比较奇怪的问题,在STM32F103最小系统上调试任务通知模拟事件标志组功能时,中断一触发,单片机就会死机.通过查询方式发送任务通知没任何问题,一旦用按键触发外 ...

  8. STM32中断中调用OLED显示出现OLED花屏

    STM32中断中调用OLED显示出现OLED花屏 在TIM5中断处理函数中,我写了OLED显示,经过DEBUG发现程序执行到OLED显示语句的时候,OLED就会花屏. //中断服务处理函数 void ...

  9. 男女主都是计算机程序,5本男女主互相利用的古言:他们相互算计,却在不知不觉中真的动了心!...

    原标题:5本男女主互相利用的古言:他们相互算计,却在不知不觉中真的动了心! 大家好,我是毛毛虫,今天给大家推荐5本男女主互相利用的古言:他们相互算计,却在不知不觉中真的动了心! 第一本: <第一 ...

最新文章

  1. spring中的bean属性相关访问、编辑、转换
  2. 自制Android相机
  3. 06_pandas入门教程,引包,使用DataFrame和Series做一些事情
  4. Codeforces 993A. Two Squares(暴力求解)
  5. 什么是NVMe驱动器,您应该购买一个吗?
  6. 智能手机进化史——全·全面屏时代回看诺基亚N9
  7. Java单例模式(类和对象)
  8. Springboot 注解最全详解
  9. linux下socket编程常用头文件
  10. Proofs for Inner Pairing Products and Applications 学习笔记
  11. 一文读懂自动驾驶传感器之激光雷达、毫米波雷达、超声波雷达及摄像头
  12. COGS 613. 火车站饭店 解题报告
  13. 【数据结构】-图-输出顶点u到v的所有简单路径
  14. Studio 3T的使用
  15. IT圈子很小,遭遇人肉搜索后果很严重
  16. 高中英语教师资格证考试经验贴
  17. Elasticsearch-Sql+Mybatis+SpringBoot集成
  18. 146_路由器项目_附加功能:可以拿取文件内IP保存到过滤链表中,过滤IP也可以保存到txt文件,也可以终端输入IP,保存到文件【单链表的尾插、头插、删除指定节点、遍历等】】
  19. 总是做不好需求管理?这6款必备工具送给你
  20. 【一篇就够了】springboot微信公众号开发,你的坑我来踩

热门文章

  1. Atmel与ARM合力打造物联网开发平台
  2. WebAPI——自动生成帮助文档
  3. 微软CEO:人工智能应该帮助而非取代劳动者
  4. 天律的云端大数据分析挖掘之旅
  5. zabbix简介及部署
  6. 指定精确度(*号的使用)
  7. EasyUI,对treegrid进行编辑
  8. Java CyclicBarrier介绍
  9. iPhone和SSH
  10. python学习之简介