可剥夺型内核与不可剥夺型内核的区别
由于嵌入式系统只有一个CPU,因此在一个具体时刻只能允许多个任务中的一个任务使用CPU。根据系统中的任务获得使用CPU的权利的方式,多任务实时操作系统的内核分为可剥夺型内核和不可剥夺型内核两种类型。但无论在两种类型的内核中,每一种任务都必须具有一个唯一的优先级别来表示它获得CPU的权利。
不可剥夺型内核也叫合作型多任务内核。在这种内核中,总是优先级别高的任务最先获得CPU的使用权。为防止某个任务始终霸占CPU的使用权,这种内核要求每个任务必须能主动放弃CPU的使用权。
在可剥夺型内核中,CPU总是运行多个任务中优先级别最高的那个任务,即使CPU正在运行某个低级别的任务,当有高优先级别的任务准备就绪时,该优先级别的任务就会剥夺正在运行任务的CPU使用权,从而使自己获得CPU的使用权。
由于可剥夺型内核实时性较好,所以目前大多数嵌入式实时操作系统是可剥夺型内核。
一、不可剥夺型内核的执行过程:
(1)当任务A运行时发生中断,进入中断服务程序,使更高优先级任务B就绪。
(2)中断服务执行完毕,返回,继续运行任务A。
(3)直到任务A结束,任务B才获得运行。
![](/assets/blank.gif)
二、可剥夺型内核的执行过程:
(1)当任务A运行时发生中断,进入中断服务程序,使更高优先级任务B就绪。
(2)中断服务执行完毕,返回,任务B优先级较高,获得运行。
(3)直到任务B结束,任务A才获得运行。
![](/assets/blank.gif)
可剥夺型内核与不可剥夺型内核的区别相关推荐
- 可剥夺型内核与“不可剥夺型内核”
1.不可剥夺型内核 概念:不可剥夺型内核要求每个任务自我放弃 CPU 的所有权. 不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU.异步事件还是由中断服务来处理.中断服务可以使一个高 ...
- 实例规格 ECS (共享计算型)和 (通用型-原独享)性能上有什么区别?...
实例规格 ECS (共享计算型)和 (通用型-原独享)性能上有什么区别? 实例规格 共享计算型 和 通用型(原独享), 如果同样是2核4G 或者4核8G ; 性能上有什么差异/差距大 ...
- 关于设计模式的创建型、结构型和行为型
设计模式主要分三个类型:创建型.结构型和行为型. 其中创建型有: 一.Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 二.Abstract Factory,抽象工厂 ...
- ML之ME/LF:机器学习中的模型评估指标/损失函数(连续型/离散型)的简介、损失函数/代价函数/目标函数之间区别、案例应用之详细攻略
ML之ME/LF:机器学习中的模型评估指标/损失函数(连续型/离散型)的简介.损失函数/代价函数/目标函数之间区别.案例应用之详细攻略 目录 损失函数的简介 损失函数/代价函数/目标函数之间区别 损失 ...
- C++阶段01笔记02【数据类型(整型、sizeof关键字、实型(浮点型)、字符型、转义字符、字符串型、布尔类型 bool、数据的输入)】
C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 2 数据类型 2.1 整型 2.2 sizeof关键字 2.3 实型(浮点型) 2.4 字符型 2.5 转义字符 2.6 字符串 ...
- php无符号整数转有符号整数,PHP中把有符号整型转换为无符号整型方法_PHP教程...
PHP中把有符号整型转换为无符号整型方法 这篇文章主要介绍了PHP中把有符号整型转换为无符号整型方法,转换的方法很简单,本文直接给出转换方法,需要的朋友可以参考下 在一个短地址项目中,根据六位字符与I ...
- 手型显示html,css各种手型集合(css禁止手型)
html> css各种手型集合(css禁止手型) .auto { cursor: auto; } .deafult { cursor: default; } ...
- 八、一篇文章快速搞懂MySQL 常见的数据类型(整型、小数、字符型、日期型详解)
常见的数据类型 1.数值型: 整型 小数: 定点数 浮点数 2.字符型: 较短的文本:char.varchar 较长的文本:text.blob(较长的二进制数据) 3.日期型: 一.整型 1)分类: ...
- onu光功率多少是正常_熔融拉锥型(FBT) VS平面波导型(PLC)光分路器,如何选择?...
光分路器(Splitter)是连接光线路终端(OLT)和光网络单元(ONU)的核心光器件,其主要作用是将光信号从一根光纤中分至多条光纤中,光分路器的性能直接关系到整个网络链路的稳定性. 光分路器的工作 ...
最新文章
- mysql的B+树如何存储主键和数据,磁盘io和innodb页大小的一些问题
- ob_start()失效与phpunit的非正常结束
- Android异步下载网络图片(其三:ExecutorService)
- JRebel : java.lang.OutOfMemoryError: PermGen space 异常
- Angular2.0 基础: User Input
- 雷死人不偿命-----六年级小学生的字条
- 脑裂问题解决方案_从解决方案到问题
- [转载]Oracle ltrim() 函数用法
- 《Head First设计模式》 读书笔记16 其余的模式(二) 蝇量 解释器 中介者
- Linux进程全解9——进程状态、system函数、进程间的关系
- 如何基于大数据及AI平台实现业务系统实时化?
- ETL__pentaho__SPOON_PDI
- 企业发展步入“新两化” 用友优普助力中型企业商业创新
- Eclipse卸载插件SpringSoource-tool-suite
- 关于js中window.location.href、location.href、parent.location.href、top.location.href的用法...
- x264 编码数配置
- 作为项目经理如何开展BI项目
- 目标检测数据集标注-VOC格式
- zabbix报警 High swap space usage ( less than 50% free) 解决方案
- 让靠谱的人推荐靠谱的人:基于关系链计算的职场社交应用“脉脉”,上线“好友推荐候选人”功能