464|1

2549

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

《嵌入式软件的时间分析》二:操作系统章节学习笔记 [复制链接]

本帖最后由 数码小叶 于 2024-7-11 20:50 编辑

        在这一章节里首先介绍了目前嵌入式的常用开发模式:无RTOS 情况下的无限循环+中断、轮询+无中断,第一种是大多数情况下使用的,可以满足很多场合。第二种的优点是避免了数据一致性问题,但是实时性没有第一种高。在这种模式下,引入了新的概念--抖动。实际发生时间和计划发生时间的偏差,因此就有一个新问题,抖动与保证数据一致性之间的权衡。

        在众多RTOS中,第三章选取了OSEK(Open Systemes and their interface for Electronics in the Kraftfahrzeug)/VDX((Vehicle Distributed Executive)两种来介绍:概念、基本调度策略等。OSEK/VDX的任务模型分为基本符合类和扩展符合类,一个定义了三种任务状态(就绪、运行、结束),一个定义了四种任务状态(等待、就绪、运行、结束)

       
        对于操作系统,比较重要的就是任务调度,OSEK/VDX通过可抢占式、不可抢占式(协作式)。两者也是各有优缺点,协作式避免了很多实时问题,省却了很多确保数据一致性的工作,所需堆栈空间一般远小于抢占式。抢占式延迟更低,抖动远小于协作式,不需要分割任务函数来限制任务运行时间。感觉这里都很好理解,唯一稍微抽象的就是堆栈空间需求
 

 

 

 
 

        如上图所示,相比于协作式,抢占式的任务调度,对于堆栈的需求分析,不仅要高很多,计算起来也更复杂,申请、释放、中断、有很多的不确定性。因为被谁中断和何时中断,具有不确定性。确保数据一致性,目前一直是前3章反复提及的,也是逐渐深入的,前面介绍了禁用中断的方法,现在为了更高效,介绍了一种方式,创建数据副本,这些副本在任务开始 / 结束时进行同步,缺点就是要占用更多的RAM,并且同步也需要额外的时间,但大大减少了开发人员在解决数据一致性问题上花费的时间。

         综合对比下来,感觉到底该使用何种任务调度方式,还是要取决于产品和开发成本去衡量。

 

此帖出自汽车电子论坛

最新回复

用何种任务调度方式,还是要取决于产品和开发成本去衡量,同意这样理解   详情 回复 发表于 2024-7-12 07:37
点赞 关注

回复
举报

6587

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

用何种任务调度方式,还是要取决于产品和开发成本去衡量,同意这样理解

此帖出自汽车电子论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表