"可剥夺型内核"与“不可剥夺型内核”
来源:互联网 发布:手机京东秒杀辅助软件 编辑:程序博客网 时间:2024/05/01 07:23
1.不可剥夺型内核
概念:不可剥夺型内核要求每个任务自我放弃 CPU 的所有权。
不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。 但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃 CPU 的使用权时, 那个高优先级的任务才能获得 CPU的使用权。
优点1:不可剥夺型内核的一个优点是响应中断快。
在任务级,不可剥夺型内核允许使用不可重入函数。 每个任务都可以调用非可重入性函数,而不必担心其它任务可能正在使用该函数,从而造成数据的破坏。因为每个任务要运行到完成时才释放 CPU 的控制权。当然该不可重入型函数本身不得有放弃 CPU 控制权的企图。
优点2:使用不可剥夺型内核时, 任务级响应时间比前后台系统快得多。
此时的任务级响应时间取决于最长的任务执行时间。
优点3:几乎不需要使用信号量保护共享数据。
运行着的任务占有 CPU,而不必担心被别的任务抢占。但这也不是绝对的, 在某种情况下,信号量还是用得着的。处理共享 I/O 设备时仍需要使用互斥型信号量
2.可剥夺型内核
概念:当系统响应时间很重要时,要使用可剥夺型内核。最高优先级的任务一旦就绪,总能得到 CPU 的控制权。
当一个运行着的任务使一个比它优先级高的任务进入了就绪态, 当前任务的 CPU 使用权就被剥夺了, 或者说被挂起了, 那个高优先级的任务立刻得到了 CPU 的控制权。 如果是中断服务子程序使一个高优先级的任务进入就绪态, 中断完成时, 中断了的任务被挂起, 优先级高的那个任务开始运行。
优点1:使用可剥夺型内核, 最高优先级的任务什么时候可以执行,可以得到 CPU 的控制权是可知的。 使用可剥夺型内核使得任务级响应时间得以最优化。
优点2:使用可剥夺型内核时, 应用程序不应直接使用不可重入型函数。调用不可重入型函数时,要满足互斥条件, 这一点可以用互斥型信号量来实现。 如果调用不可重入型函数时, 低优先级的任务 CPU 的使用权被高优先级任务剥夺, 不可重入型函数中的数据有可能被破坏。
综上所述, 可剥夺型内核总是让就绪态的高优先级的任务先运行, 中断服务程序可以抢占 CPU,到中断服务完成时, 内核让此时优先级最高的任务运行(不一定是那个被中断了的任务)。任务级系统响应时间得到了最优化, 且是可知的。
- "可剥夺型内核"与“不可剥夺型内核”
- 实时内核:可剥夺型与不可剥夺型
- 可剥夺与不可剥夺内核区别
- uC/OS-II 学习笔记之:不可剥夺型内核与可剥夺型内核
- 不可剥夺内核和可剥夺内核的比较
- 一个简单的不可剥夺型内核
- 可剥夺型内核实时系统计算CPU使用率
- 内核的可剥夺性和函数的可重入
- 为什么说ucos ii是可剥夺的内核。
- 为什么说ucos ii是可剥夺的内核。
- 剥夺与增添
- 制造依赖与客体剥夺
- 小虎OS(XiaoHuOS)打造自己的RTOS,基于stc12c5a60s2(51内核)的可剥夺多任务管理操作系统
- 尽可能的剥夺
- 是谁剥夺了我们的智慧与能力(发泄一下)
- 安卓中剥夺EditText焦点方法
- 关于可剥夺式进程调度方案,计算CPU利用率的题目
- 可剥夺式处理机调度问题实例及进程调度算法
- SURF算法与源码分析、上
- ContentProvider详解
- 说说为什么主张反对使用Android Fragment
- 03-11-2015-bbs_v0.1完结
- android实现应用程序只在第一次启动时显示引导界面
- "可剥夺型内核"与“不可剥夺型内核”
- 找电子书的一种方法
- oracle sql性能调优
- SURF算法与源码分析、下
- Java中的文件I/O
- memcached 缓存参数的详解
- postgtresql语言SQL函数学习整理
- CAsyncMonikerFile 下载
- 【c#源码】安卓客户端通过TCP通信与Windows服务器进行文件传输