在μC/OS一Ⅱ中,OSSched()函数是任务调度的前导函数,用于判断进行任务调度的条件是否满足。下列满足条件的变量值为( )。

admin2018-06-19  37

问题 在μC/OS一Ⅱ中,OSSched()函数是任务调度的前导函数,用于判断进行任务调度的条件是否满足。下列满足条件的变量值为(    )。

选项 A、OSIntNesting=0,OSLockNesting=0
B、OSIntNesting=0,OSLockNesting=1
C、OSIntNesting=1,OSLockNesting=0
D、OSIntNesting=1,OSLockNesting=1

答案A

解析 OSSched()函数是任务调度的前导函数,判断进行任务调度的三个条件是否满足。这三个条件是:
(1)中断嵌套层数共享全程变量OSIntNesting=0,也就是所有的ISR已经执行完毕。
(2)任务调度加锁层数共享全程变量OSLockNesting=0,也就是调度没有被禁止。调度器上锁函数OSSchedlock()对共享变量OSLockNesting做加1操作,用于禁止任务调度,直到任务完成后,再调用给调度器开锁函数OSSchedUnlock()对共享变量OSLockNesting做减1操作。
(3)就绪表查找到的最高优先级任务的优先级比当前任务的优先级高。故本题选择A。
转载请注明原文地址:https://jikaoti.com/ti/WD17FFFM
0

最新回复(0)