javaee论坛

普通会员

225648

帖子

344

回复

358

积分

楼主
发表于 2019-10-30 13:37:17 | 查看: 77 | 回复: 0

AutoSAR系列讲解(入门篇)3.5-RTE对数据一致性的管理RTE对数据一致性的管理一、什么是数据一致性二、数据一致性的实现机制1、利用RTE管理2、SWC内部变量

RTE对数据一致性的管理

->返回总目录<-

一、什么是数据一致性

引用百度百科:

数据一致性,就是当多个用户试图同时访问一个数据库,它们的事务同时使用相同的数据时,可能会发生以下四种情况:丢失更新、未确定的相关性、不一致的分析和幻想读。

说的通俗一点:就是当多个操作同时读写同一个数据的时候,很有可能出bug(实际是由于优先级的问题,可能出现我们的数据被篡改的情况,造成作者不想看到的数据结果)

二、数据一致性的实现机制1、利用RTE管理

这部分类容之前说过了,就是利用RTE来管理这里的数据,防止bug出现。比如IRead,大家都操作的是数据的备份,不直接操作原数据

2、SWC内部变量

这个内部变量就比较神奇了,因为它可以直接在DaVinci中配置,runnable可以直接调用,就类似于一个c文件中定义的全局变量,没有被extern出去。在c文件中定义的函数时可以直接使用的。那么这时就会出问题了,同一个c文件中的函数是可能被放在不同Task上运行的,就可能出现这些函数在同一时刻运行的状况,那么在调用这个全局变量的时候,就可能出bug。那么要如何解决呢?AutoSAR做了以下两种方式:

EAs(ExclusiveAreas,专用区域):就是下面两句代码,相当于一个关中断,调用变量的语句放在里面,运行时不能有更高级的Task打断被保护的语句......Rte_Enter_<name>();//这里放置被保护的语句Rte_Exit_<name>();......IRVs(Inter-runnablevariables,跨函数变量):还是两句代码,上面的EAs是整段代码段都被保护了,而这里的两句就相当于在改变变量的时候被保护,也就是这两句话执行的时候被保护Rte_IrvWrite_<re>_<name>()Rte_IrvRead_<re>_<name>()

附:返回总目录的传送门如下->返回总目录<-


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

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017