请教下任务调度器为什么上锁?

ucos 任务调度器(调度器上锁函数OSSchedlock() )为什么要上锁 是在什么时候上锁,是在中断的时候来上锁吗

慕码人8056858
浏览 138回答 2
2回答

FFIVE

书上讲的很清楚,是在嵌套的时候上锁,并且上锁和开锁函数成对出现,上锁之后不能进行各种信息交流例如信号量,上锁函数其实就是将嵌套层数加1的过程,可以说是一个保护环境、保护现场的作用吧。OSLockNesting是用来表示嵌套层数的。其实ucos里面时钟中断的处理函数就是一个查看优先级就绪表的过程,调度发生在中断的时候,中断的时候可能调度会发生,多层调度会发生嵌套,要上锁

PIPIONE

是在嵌套的时候上锁,并且上锁和开锁函数成对出现,上锁之后不能进行各种信息交流例如信号量,上锁函数其实就是将嵌套层数加1的过程,可以说是一个保护环境、保护现场的作用吧。OSLockNesting是用来表示嵌套层数的。其实ucos里面时钟中断的处理函数就是一个查看优先级就绪表的过程,调度发生在中断的时候,中断的时候可能调度会发生,多层调度会发生嵌套,要上锁。
打开App,查看更多内容
随时随地看视频慕课网APP