一种基于RTX实时系统的共享资源读写互斥方法技术方案

技术编号:27848381 阅读:27 留言:0更新日期:2021-03-30 13:05
本发明专利技术实施例公开一种基于RTX实时系统的共享资源读写互斥方法,利用RTX现有API,对VxWorks软件的读/写信号量功能进行封装,在不改变原软件代码调用形式和软件运行逻辑流程的情况下,基于RTX+Windows环境实现读/写信号量应有的功能,在多核多线程同时访问某一数据资源时,如果只是读取数据则可以多线程并发的访问该数据区,提高访问效率,而写入数据的线程则需要独占访问该数据区,只有当前没有读者或者写者占用该资源,写信号量才能被获取实现对数据的互斥保护。本发明专利技术实施例使用的RTX版本为RTX64 2014,对应原VxWorks版本为6.8,原软件设计为多核、多线程应用程序,内部逻辑包含有多个读/写信号量进行资源保护。含有多个读/写信号量进行资源保护。含有多个读/写信号量进行资源保护。

【技术实现步骤摘要】
一种基于RTX实时系统的共享资源读写互斥方法


[0001]本专利技术涉及计算机
更具体地,涉及一种基于RTX实时系统的共享资源读写互斥方法。

技术介绍

[0002]软件移植技术在跨操作系统或使用环境时应用非常广泛,可以在原有应用程序不做改动或者只做较少改动的情况下适配到新的平台环境下,大大减少不必要的二次开发工作量。
[0003]现有技术中从VxWorks软件向RTX系统移植的技术方案已经有所应用,利用中间件形式重新利用RTX系统的用户API封装了部分VxWorks系统的API,实现了基于RTX系统完成了部分VxWorks软件功能函数的移植适配,其中包括消息队列、事件、互斥信号量、计数信号量、二值信号量等。但随着软件版本更新迭代,新版本的基于VxWorks6.8系统编制的软件使用了更多功能而RTX并未提供对应可用API,典型的例如读/写信号量功能。

技术实现思路

[0004]有鉴于此,本专利技术第一个实施例提供一种基于RTX实时系统的共享资源读写互斥方法,包括:
[0005]利用RTX现有API对VxWo本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于RTX实时系统的共享资源读写互斥方法,其特征在于,包括:利用RTX的API对VxWorks软件的读写信号量功能进行封装;创建读写信号量,通过附加的信号量属性参数将该信号量标记为读写信号量,并创建属性资源的互斥锁,创建完成后函数正常返回;获取写信号量,将写者标志置为写状态,阻止其他的读者或者写者请求,等待超时或者获取信号量成功后函数返回;当释放写信号量时,同时查询写者标志是否有其他写者在等待信号,若有则函数返回,若没有则同时查询读者标志位是否有读者正在等待,有读者则激活读者状态,若没有则设置信号量初始状态,可以继续被其他申请者申请;当获取读信号量时,但在此前首先获取是否有写者申请,若有则读者进入等待,否则首个读者可以等待读信号量,当获取信号量之后,将读者标志置为读状态,并记录读者数量,首个读者获取信号量后,后续读者直接返回正常获取,实现读者的并发访问;当释放读信号量时,每个读者释放都记录剩余读者数量,最后一个读者释放读信号量,将信号量状态设置为初始状态,可以继续被其他申请者申请。2.根据权利要求1所述的方法,其特征在于,采用RTX二值信号量作为读写信号量的基础信号量。3.根据权利要求1所述的方法,其特征在于,读取数据能够多线程并发的访问该数据区,写入数据的线程则独占访问该数据区,只有当前没有读者或者写者占用该资源,写信号量才能被...

【专利技术属性】
技术研发人员:段雨昕
申请(专利权)人:北京仿真中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1