实时内核-可剥夺型与不可剥夺型

实时内核-可剥夺型与不可剥夺型不可剥夺型内核 不可剥夺型内核 或非抢占式内核 Non Preemptive Kernel 不可剥夺型内核要求每个任务自我放弃 CPU 的所有权 不可剥夺型调度法也称作合作型多任务 各个任务彼此合作共享一个 CPU 异步事件还是由中断服务来处理 中断服务 可以使一个高优先级的任务由挂起状态变为就绪状态

大家好,我是讯享网,很高兴认识大家。

不可剥夺型内核

不可剥夺型内核(或非抢占式内核,Non-Preemptive Kernel)

不可剥夺型内核要求每个任务自我放弃CPU的所有权.

不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU.

异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。

不可剥夺型内核优点

不可剥夺型内核的一个优点是响应中断快

在任务级,不可剥夺型内核允许使用不可重入函数

每个任务都可以调用非可重入性函数,而不必担心其它任务可能正在使用该函数,从而造成数据的破坏。因为每个任务要运行到完成时才释放CPU的控制权。当然该不可重入型函数本身不得有放弃CPU控制权的企图。

不可剥夺型内核几乎不需要使用信号量保护共享数据。

运行着的任务占有CPU,而不必担心被别的任务抢占。但这也不是绝对的,在某种情况下,信号量还是用得着的。处理共享I/O设备时仍需要使用互斥型信号量。

例如,在打印机的使用上,仍需要满足互斥条件

不可剥夺型内核缺点

不可剥夺型内核的最大缺陷在于其响应时间.高优先级的任务已经进入就绪态,但还不能运行,要等,也许要等很长时间,直到当前运行着的任务释放CPU.与前后系统一样,不可夺型内核的任务级响应时间是不确定的,不知道什么时候最高优先级的任务才能拿到CPU的控制权,完全取决于应用程序什么时候释放CPU.

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

不可剥夺型内核运行原理


讯享网

可剥夺型内核

当系统响应时间很重要时,要使用可剥夺型内核(或抢占式内核,Preemptive Kernel)。

最高优先级的任务一旦就绪,总能得到CPU的控制权。

当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说挂起了,那个高优先级的任务立刻得到了CPU的控制权。

如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那

个任务开始运行。

# 使用可剥夺型内核,最高优先级的任务什么时候可以执行,可以得到CPU的控制权是可知的。

# 使用可剥夺型内核使得任务级响应时间得以最优化。

# 使用可剥夺型内核时,应用程序不应直接使用不可重入型函数。调用不可重入型函数时,要满足互斥条件,这一点可以用互斥型信号量来实现。如果调用不可重入型函数时,低优先级的任务CPU的使用权被高优先级任务剥夺,不可重入型函数中数据有可能被破坏。

# 可剥夺型内核总是让就绪态的高优先级的任务先运行,中断服务程序可以抢占CPU,到中断服务完成时,内核让此时优先级最高的任务运行(不一定是那个被中断了的任务)。任务级系统响应时间得到了最优化,且是可知的。

可剥夺型内核运行原理


区别




小讯
上一篇 2025-04-04 11:47
下一篇 2025-01-14 19:26

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/67854.html