zoukankan      html  css  js  c++  java
  • 任务就绪问题

     所谓就绪状态是指任务准备运行,但CPU没空,任务等待运行的状态。
       任务就绪算法涉及:

    1)任务就绪表OSRdyTbl

    2)映射表OSMapTbl

    3)优先级判定表OSUnMapTbl

    4)变量OSRdyGrp

    5)相关的任务优先级prio

    其中映射表OSMapTbl优先级判定表OSUnMapTbl是2个常数表,用于查表算法。

    一、将优先级为19的任务放入就绪表中

    1):初始化
    任务就绪算法

    2)优先级的3-5位,即010,查映射表,找到对应的值,赋给字节变量OSRdyGrp,这就确定了就绪表中的某一行。
    任务就绪算法

    3)优先级的0-2位,即011,查映射表,将值赋给前面找到的那一行就绪表值任务就绪算法

    4)找到对应的bit,填充为1

    任务就绪算法

       总结:由优先级的3-5位查映射表,找到的行对应着变量OSRdyGrp,这个变量中为1的位就是我们要找的就绪表中的行号,即确定了Y轴点位置;由优先级的0-2位查映射表,找到一组值,该值中为1的Bit的序列就是我们要找的X轴点位置,有了X、Y的值,就能唯一的确定一个点。


    二、脱离就绪列表

    和前面的动作相反,将映射表中的相应行取反后,与就绪表中的相应行相与。

    三、优先级判定表

    1)

    任务就绪算法

    2)
    任务就绪算法


    四、查找就绪表中最高优先级的任务

    1)由OSRdyGrp变量中的值69H,在映射表中找到Y轴,即就绪表中的某一行

    任务就绪算法

    2)根据就绪表中的这一行值,在映射表中找到X轴

    任务就绪算法

    3)然后Y左移3位加上X就是当前最高优先级的就绪任务

    任务就绪算法

  • 相关阅读:
    hdu 1.2.4
    交换机&&路由器
    AP、AC、无线路由器
    肩胛骨
    无线路由器
    背部肌肉
    胸部肌肉
    redis未授权访问
    进制
    攻防实验
  • 原文地址:https://www.cnblogs.com/wgang171412/p/5098295.html
Copyright © 2011-2022 走看看