如何实现tm同时监控多个状态的改变_一种实时监控系统数据同步问题的改进方法...

龙源期刊网

http://www.qikan.com.cn

一种实时监控系统数据同步问题的改进方法

作者:谢玲

郭昭烽

来源:《科技创新导报》

2011

年第

15

:

针对实时数据监控系统普遍存在的数据同步问题提出改进方法

,

利用

Windows

内核对

象的特性编程设计了共享锁类

,

并与未使用锁、使用互斥锁两种情况进行时序比较

,

结果表明共

享锁在同步数据和优先保证写者效率方面具有明显的优越性。这些特性使共享锁在工业控制级

别的实时软件系统中具有重要的现实意义。

关键词

:

数据同步共享锁实时数据监控

中图分类号

:TM73

文献标识码

:A

文章编号

:1674-098X(2011)05(c)-0018-01

1

引言

在工控组态软件领域

,

普遍存在一个称作读者写者的问题

,

即对某些资源的访问

,

存在两种可

能的情况

,

一种访问必须是排他的

,

称作写操作

;

另一种访问可以是共享的

,

称为读操作。对于一个

实时数据监控系统来说

,

由于

Windows

是一个多任务抢占式的操作系统

,

在多个线程共同访问一

个数据区的环境下

,

会产生数据同步的问题。比如

:

有提供数据的服务程序

A

和若干界面显示程

B

C

D

等。服务程序和显示程序共同使用一块数据内存区

E,

其中服务程序负责更新内存

数据

(

写操作

),

而显示程序则定时访问内存区数据

(

读操作

)

。假设数据内存区

E

中变量的数据结

构为

:

FILETIMEftTime;//

时间

DWORD dwValue;//

那么

,

B

刚读取完某个变量的

ftTime

值后

,

插入了

A

的写操作

,

这时候再读取到的

dwValue

值就和

ftTime

不一致了。这种不一致的现象必须通过数据同步来避免。所以

,

对内存区

E

的读

写访问必须作以下两个约束

:

1)A

正在进行写操作时

,B

C

D

必须等待该操作完成才能访问

E;

约束条件

(1)

2)B

C

D

正在访问

E

,A

必须等待该操作完成才对

E

进行写操作

;

约束条件

(2)

以上约束可以简单的归纳为

:

读写互斥。

你可能感兴趣的:(如何实现tm同时监控多个状态的改变_一种实时监控系统数据同步问题的改进方法...)