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

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

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

  • 相关阅读:
    linux网桥浅析
    linux slub分配器浅析
    vs2015 C# WinForm 使用皮肤 美化窗体
    枚举可以直接赋值给int
    LINK : fatal error LNK1000: Internal error during IncrBuildImage
    map映射类
    map
    time
    int to string
    eclipse
  • 原文地址:https://www.cnblogs.com/locean/p/4760922.html
Copyright © 2011-2022 走看看