学嵌入式.我问个概念型问题(非占先式和占先式内核)
不好意思,在啃书,碰到个基本概念...非占先式内核:运行a任务中..高优先中断b任务到来..要等到
a任务结束才运行b任务,最后再转到被打断的a任务
占先式内核:运行a任务中..高优先中断b任务到来..就直接
运行b..运行完后同样转到被打断的a..
是这样理解吗?重点我用红字标出来了,大家看仔细点啊,帮我解答下,谢谢了 re LZ:
占先式内核一般多为实时系统(RTOS),高优先级任务一旦就绪便立刻抢占CPU资源,而被打断的低优先级任务将退出运行重新进入排队等待下一次调度。
非占先式内核的当前执行任务虽然同样可以被中断,但并不完全失去CPU的使用权。当中断完毕后将恢复此任务的执行。只有当前任务执行完毕后才交出CPU资源给其他任务。 占先式内核可以由高优先级事件中断、定时器中断、消息传递及任务消息等产生调度,一旦优先级高的任务进入就绪状态,当前任务的CPU的使用权就被剥夺了,那个高优先级的任务就立刻得到CPU的控制权。系统总是运行优先级最高的任务。
而非占先式内核则不具有这种抢占特性,中断任务可以使一个高优先级的任务由挂起状态变为就绪状态,但中断任务以后控制权还是回到原来被中断的任务,直到该任务主动放弃CPU使用权时(比如延时、等待消息)、或者时间片轮转到下一任务时,另一个任务才能获得CPU的使用权 本帖最后由 peter_2011 于 2011-1-5 22:10 编辑
3# xwj
楼上2位的意思是
占先式内核:B任务打断a任务后..B任务执行后不会回到A任务吗?
而非占先式内核:会回到被打断的A任务的
是这样吗 to 4L:
基本可以这样认为。但如果B执行完毕后A任务为最高优先级的话,将继续A任务的执行。 to 4L:
基本可以这样认为。但如果B执行完毕后A任务为最高优先级的话,将继续A任务的执行。
HWM 发表于 2011-1-6 08:37 https://bbs.21ic.com/images/common/back.gif
哦 原来是这样..谢谢啊
页:
[1]