下列关于μC/OS—Ⅱ操作系统内核任务级的任务调度的说法中,不正确的是( )。

admin2019-01-06  30

问题 下列关于μC/OS—Ⅱ操作系统内核任务级的任务调度的说法中,不正确的是(    )。

选项 A、当前运行态任务因等待某一事件而被阻塞时,有可能进行任务级的任务调度
B、有足够的内存空间保存当前任务的上下文是进行任务级调度的条件之一
C、当发生任务级的任务调度时,内核进行任务级的任务切换,保存当前任务的上下文,并恢复新任务的上下文
D、当前有更高优先级的任务处于就绪态时,有可能进行任务级的任务调度

答案B

解析 μC/OS—Ⅱ总是运行处于就绪态任务中优先级最高的那一个。当前运行态任务因等待某一事件而被阻塞时,或者当前有更高优先级的任务处于就绪态时,都有可能进行任务级的任务调度;任务级的调度是由函数OSSched()完成的。OSSched()函数是任务调度的前导函数,判断进行任务调度的三个条件是否满足。这三个条件是:
(1)中断嵌套层数共享全程变量OSIntNesting=0,也就是所有的ISR已经执行完毕。
(2)任务调度加锁层数共享全程变量OSLockNesting=0,也就是调度没有被禁止。
(3)就绪表查找到的最高优先级任务的优先级比当前任务的优先级高。当发生任务级的任务调度时,内核进行任务级的任务切换,保存当前任务的上下文,并恢复新任务的上下文。故B项不正确。
转载请注明原文地址:https://kaotiyun.com/show/5fMZ777K
0

最新回复(0)