一步一步学ucos之可剥夺型内核和不可剥夺型内核

不可剥夺型内核

不可剥夺型内核要求每个任务自我放弃CPU 的所有权。 不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个 CPU。异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。 但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃 CPU 的使用权时,那个高优先级的任务才能获得 CPU的使用权。

不可剥夺型内核允许每个任务运行,直到该任务自愿放弃 CPU的控制权。中断可以打入运行着的任务。 中断服务完成以后将 CPU 控制权还给被中断了的任务。任务级响应时间要大大好于前后系统,但仍是不可知的,商业软件几乎没有不可剥夺型内核。

不可剥夺型内核的工作过程见下图:

<ignore_js_op>

 

可剥夺型内核

 当系统响应时间很重要时,要使用可剥夺型内核。因此,μC/OS-Ⅱ以及绝大多数商业上销售的实时内核都是可剥夺型内核。 最高优先级的任务一旦就绪, 总能得到CPU 的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态, 当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了 CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。使用可剥夺型内核,最高优先级的任务什么时候可以执行,可以得到 CPU的控制权是可知的。使用可剥夺型内核使得任务级响应时间得以最优化。

可剥夺型内核的工作过程是这样的:

<ignore_js_op>

冯大同 发表于03-04 08:58 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

冯大同
冯大同(总统)
金币:1539个|学分:90654个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号