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

admin2019-01-06  37

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

选项 A、进行中断级任务级调度的条件之一是:当前任务的优先级比处于就绪态的最高优先级任务的优先级高
B、中断级的任务调度是调用函数OSIntExit()完成的
C、进行中断级任务级调度的条件之一是:所有的中断服务程序均已经执行完毕
D、内核通过系统函数OS_rFASK_SW()进行任务级的任务调度

答案A

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

最新回复(0)