|
先占需要注意两点:
' n, W5 |9 O1 b6 d9 M$ `1、想要抢占当前的任务,这个任务必须分配出去,也就是说如果先占任务留在任务分配器(简称DP)里面(而不是直接分到指定任务执行器(简称TE)身上)是不会出现抢占的,在DP使用“第一个可用”(return 0;)它只会向空闲的TE分派任务。您这个例子中如果直接使用return 1;强行分派给TE,那么先占完全可以实现;$ s3 W" D- K+ H- _5 x! w2 {- M" s' |
2、如果TE已经在执行先占任务,那么此时又传递过来一个先占任务,则基于他们的优先级,如果优先级高于当前执行的先占任务,才会发生抢占。(详见下面用户手册截图原话),否则将会跟一般任务一样存入任务序列队列中,自然不会发生抢占。% P, [9 d4 r$ ~# Z+ a2 ~9 z! m
( p9 ]0 r, y+ ^, Z2 \ q0 l- H
我无法实现您截图树结构中的这种情况,因为激活的任务序列(activetasksequence)只可能有一个0 w7 w- U5 V3 @6 b8 V
) k! X; |( o" U; _0 u, F+ e& V) \
' p. _ I3 ]3 F" }; Z |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|