zoukankan      html  css  js  c++  java
  • [FSM]状态机平面(任务平面)


    给一个口头定义:
    如果两个函数总不可能同时执行(比如顺次执行的),并能保证自己执行的原子性,那么这两个函数
    处于同一个任务平面。

    推论:
    合作式调度器所有的任务都在主循环里面执行,都是依次执行的,都能保证自己的原子性。那么可以
    说合作式调度器的任务都是在同一个任务平面的。

    混合式调度器引入了一个中断,假定这个中断执行完成之前,不允许嵌套,并且有且只有一个这样的
    中断,那么我们说,合作式调度器拥有两个任务平面:
    显然,主循环里面执行的函数都属于同一个任务平面;中断处理程序里面执行的函数也都属于一个平面,
    只不过是不同于主循环平面的另外一个世界。
    不同平面间如果存在公共的存储器资源,那么对于这部分资源的访问就必须要进行临界区保护。

    同一个任务平面里面的任务都是合作调度的——也就是顺次执行的,你方唱罢我登场。
    不同平面的任务之间如果没有建立任何联系(比如信号亮通讯),那么执行顺序以及原子性都无法保证。

    抢占式调度器是一个典型的多任务平面系统:
    调度器自己的调度程序占用一个任务平面,可以说大部分系统服务都是可以被主观上判定为属于这个任务
    平面的(根据定义你很容易找到这种说法的依据:1、不可能同时执行;2、原子性)
    调度器调度的每一个任务都有自己独有的任务平面……所谓的任务切换,实际上就是任务平面切换,我喜
    欢称之为宇宙切换,或者多维空间切换(很科幻,但是印象很深刻哈)

    混合调度器的任务平面切换是硬件完成的,所以不需要额外代码。

    原文:

    https://www.eefocus.com/GorgonMeducer/blog/11-02/204534_3c577.html

  • 相关阅读:
    Windows phone 墓碑机制的一些源码
    关于Image一些比较抽象的东西(Build Type与 同步以及异步加载的差异)
    自定义控件之Button控件的自定义
    Java集合最全解析,学集合,看这篇就够用了!!!
    看完让你彻底搞懂Websocket原理
    别人的前途我不敢决定
    花一年的时间让自己过得像个人样
    开篇
    你看得懂吗?
    反思
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/14169340.html
Copyright © 2011-2022 走看看