无MMU抢占式操作系统的抢占工作原理
关注+ 星标公众 号 ,不错过精彩内容 作者 | strongerHuang 微信公众号 | strongerHuang 操作系统对于初学者来说是一个很神秘的东西,里面很多原理摸不清楚,导致还没入门就放弃了。 本文就来从底层开始,详细讲述 抢占式 操作系统(大多数RTOS)的抢占原理。 包含: 线程基础原理 线程之间抢占 中断抢占线程 中断抢占中断 strongerHuang 1 运行多个线程 1.单核“单线程 ” 严格来说,单核处理器一次只能执行一条指令,也就是说只能“单线程 ” 。 (当然,多核处理器就不一样) 为了在单核处理器上运行多个线程,我们实际上需要定期在线程之间进行 快速切换 ,以便用户感觉多个线程在并行运行。 比如处理器执行两个线程,处理器实际在两个线程之间来回切换,如下图: 2.处理器在线程之间切换,它是如何做到的? 我们说的单核处理器是“单线程 ” 的,它 有一组寄存器,我们就叫这组寄存器属于一个“线程 ” 。 例如,计算两个数字的总和时: //假设我们有两个整数:a和b int c = a + b ; 实际发生的情况如下所示(当然,它取决于的MCU类型,但总体思路是相同): # MIPS反汇编: LW V0, - 32744 (GP) # "a" 的值从RAM加载到寄存器V0 LW V1, - 32740 (GP) # 值 "b" 从RAM加载到寄存器V1