打印

学嵌入式.我问个概念型问题(非占先式和占先式内核)

[复制链接]
5454|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
peter_2011|  楼主 | 2011-1-4 20:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不好意思,在啃书,碰到个基本概念...


非占先式内核:运行a任务中..高优先中断b任务到来..要等到
                   a任务结束才运行b任务,最后再转到被打断的a任务

占先式内核:  运行a任务中..高优先中断b任务到来..就直接
                  运行
b..运行完后同样转到被打断的a..


是这样理解吗?重点我用红字标出来了,大家看仔细点啊,帮我解答下,谢谢了

相关帖子

沙发
HWM| | 2011-1-4 21:07 | 只看该作者
re LZ:

占先式内核一般多为实时系统(RTOS),高优先级任务一旦就绪便立刻抢占CPU资源,而被打断的低优先级任务将退出运行重新进入排队等待下一次调度。

非占先式内核的当前执行任务虽然同样可以被中断,但并不完全失去CPU的使用权。当中断完毕后将恢复此任务的执行。只有当前任务执行完毕后才交出CPU资源给其他任务。

使用特权

评论回复
板凳
xwj| | 2011-1-4 21:27 | 只看该作者
占先式内核可以由高优先级事件中断、定时器中断、消息传递及任务消息等产生调度,一旦优先级高的任务进入就绪状态,当前任务的CPU的使用权就被剥夺了,那个高优先级的任务就立刻得到CPU的控制权。系统总是运行优先级最高的任务。

而非占先式内核则不具有这种抢占特性,中断任务可以使一个高优先级的任务由挂起状态变为就绪状态,但中断任务以后控制权还是回到原来被中断的任务,直到该任务主动放弃CPU使用权时(比如延时、等待消息)、或者时间片轮转到下一任务时,另一个任务才能获得CPU的使用权

使用特权

评论回复
地板
peter_2011|  楼主 | 2011-1-5 22:08 | 只看该作者
本帖最后由 peter_2011 于 2011-1-5 22:10 编辑

3# xwj
楼上2位的意思是

占先式内核:B任务打断a任务后..B任务执行后不会回到A任务吗?
而非占先式内核:会回到被打断的A任务的

是这样吗

使用特权

评论回复
5
HWM| | 2011-1-6 08:37 | 只看该作者
to 4L:

基本可以这样认为。但如果B执行完毕后A任务为最高优先级的话,将继续A任务的执行。

使用特权

评论回复
6
peter_2011|  楼主 | 2011-1-6 18:46 | 只看该作者
to 4L:

基本可以这样认为。但如果B执行完毕后A任务为最高优先级的话,将继续A任务的执行。
HWM 发表于 2011-1-6 08:37

哦 原来是这样..谢谢啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

70

帖子

0

粉丝