VxWorks中主备数据一致性功能组件的设计与实现
1 引言
在电信、电力、国防等应用领域中,其所用设备必须确保有极高的可靠性。为了达到此目的,很多设备都采用主备用结构,当主用设备发生故障时,备用设备可马上接替主用工作,这就要求主用与备用数据要保持高度的一致性。vxWorks是在电信、电力、国防等应用领域中广泛使用的实时操作系统,它提供全开放的寻址空间,多任务内核(wind),基于优先级进行任务调度,具有快的上下文切换和低的中断等待特点。但考察目前运行的基于vxWorks的系统,在实现主备用数据一致性方面,还没有一个优雅高效的方法。作者在开发国家863计划项目—“中国第三代移动通信系统”CDMA2000系统集成项目过程中,研究开发了一个主备数据一致性功能组件(下简称一致性组件),可实现主备设备间内存数据的自动同步。一致性组件结合MOTOROLA PowerPC 系列RISC CPU的特点,并利用vxWorks操作系统的异常处理机制,使得主备数据的一致性操作自动化。
2 目前主备用系统的一致性解决方案及其不足
在目前的主备用系统中,为了保证主备之间数据一致性,代码多呈如下样式。
主用:
L1:修改数据
L2:将更新数据发送到备用
…
L1:修改数据
L2:将更新数据发送到备用
备用:
获取主用数据并进行数据同步
在上面的流程中,主用的L1语句是具体的业务逻辑处理代码,有可能触发数据更新操作(如赋值语句)。频繁的在业务逻辑处理中加入L2语句(为实现一致性功能),导致整个代码显得凌乱,可读性不高;又因为主备系统常用于实时环境中,还经常需要获取更新数据的数值及其在物理内存中的位置(用于日志登记或标记更新页面),而这些烦琐的底层操作极易产生错误。所以,非常需要一种简便高效的方法,可以将L2语句从L1语句间剥离出来,使程序员专注于业务逻辑的处理,同时也使程序代码清晰化。一致性组件解决了以上问题。
图一:主用端程序模块组成
3 一致性组件的整体结构设计
为了实现数据一致性操作的自动化,一致性组件由以下几个功能模块组成:
1) 初始化模块。用来启动组件功能,只在主用设备上运行。
2) 写操作监视功能模块。主要用来发现数据的更新操作,只在主用设备上运行。
3) 更新数据截取模块。主要用来提取更新数据,只在主用设备上运行。
4) 数据同步任务模块。用来进行主备用数据间的一致性同步,主备设备都要运行。
相关文章
- 2024-08-16直角坐标采样时的圆柱度误差数学模型
- 2023-04-19激光雷达测量大气温度的傅里叶分析方法
- 2024-05-09大坝用双轴垂直摆倾斜仪的设计
- 2024-09-20逆向布莱顿循环多元非共沸混合工质组分变化对系统性能的影响
- 2023-12-07基于Simulation设计洞察图解进行转盘支座的优化



请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。