zoukankan      html  css  js  c++  java
  • ucos_ii 上锁函数OSSchedLock()函数透析

    因为任务调度时一般都是通过OSTIMEDLY()来实现。在这个函数中会对当前的任务执行挂起。同时查看任务调度表中是否有优先级合适的就绪任务。如果当前任务运行时调用OSSchedLock()给调度器上锁,这样再调用OSTIMEDLY()时就会把当前任务挂起。但由于调度器上锁而不能使其他任务得到CPU的使用权。这样除了中断意外就没有任务可以运行了。除非中断中对这种情况有处理。我想调用其余两个函数也是同OSTIMEDLY()一样的道理了!

    在上锁函数执行后,若任务遇到中断,则中断函数的执行会为OSIntNesting变量加1,所以上锁函数执行后,CPU一直处于当前任务与中断服务函数之间的运行,直到解锁函数将OSLockNesting和OSIntNesting的值减到0时。方可解除系统锁定。。。。

  • 相关阅读:
    java命令模式
    java中介者模式
    java访问者模式
    java状态模式
    java责任链模式
    java策略模式(及与工厂模式的区别)
    github token 位置
    Yii2 Queue队列
    sz与rz
    vim
  • 原文地址:https://www.cnblogs.com/locean/p/4760922.html
Copyright © 2011-2022 走看看