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

admin2021-05-11  35

问题 在μ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://kaotiyun.com/show/Cm0Z777K
0

最新回复(0)