【技术实现步骤摘要】
一种基于RTX实时系统的共享资源读写互斥方法
[0001]本专利技术涉及计算机
更具体地,涉及一种基于RTX实时系统的共享资源读写互斥方法。
技术介绍
[0002]软件移植技术在跨操作系统或使用环境时应用非常广泛,可以在原有应用程序不做改动或者只做较少改动的情况下适配到新的平台环境下,大大减少不必要的二次开发工作量。
[0003]现有技术中从VxWorks软件向RTX系统移植的技术方案已经有所应用,利用中间件形式重新利用RTX系统的用户API封装了部分VxWorks系统的API,实现了基于RTX系统完成了部分VxWorks软件功能函数的移植适配,其中包括消息队列、事件、互斥信号量、计数信号量、二值信号量等。但随着软件版本更新迭代,新版本的基于VxWorks6.8系统编制的软件使用了更多功能而RTX并未提供对应可用API,典型的例如读/写信号量功能。
技术实现思路
[0004]有鉴于此,本专利技术第一个实施例提供一种基于RTX实时系统的共享资源读写互斥方法,包括:
[0005]利用RTX ...
【技术保护点】
【技术特征摘要】
1.一种基于RTX实时系统的共享资源读写互斥方法,其特征在于,包括:利用RTX的API对VxWorks软件的读写信号量功能进行封装;创建读写信号量,通过附加的信号量属性参数将该信号量标记为读写信号量,并创建属性资源的互斥锁,创建完成后函数正常返回;获取写信号量,将写者标志置为写状态,阻止其他的读者或者写者请求,等待超时或者获取信号量成功后函数返回;当释放写信号量时,同时查询写者标志是否有其他写者在等待信号,若有则函数返回,若没有则同时查询读者标志位是否有读者正在等待,有读者则激活读者状态,若没有则设置信号量初始状态,可以继续被其他申请者申请;当获取读信号量时,但在此前首先获取是否有写者申请,若有则读者进入等待,否则首个读者可以等待读信号量,当获取信号量之后,将读者标志置为读状态,并记录读者数量,首个读者获取信号量后,后续读者直接返回正常获取,实现读者的并发访问;当释放读信号量时,每个读者释放都记录剩余读者数量,最后一个读者释放读信号量,将信号量状态设置为初始状态,可以继续被其他申请者申请。2.根据权利要求1所述的方法,其特征在于,采用RTX二值信号量作为读写信号量的基础信号量。3.根据权利要求1所述的方法,其特征在于,读取数据能够多线程并发的访问该数据区,写入数据的线程则独占访问该数据区,只有当前没有读者或者写者占用该资源,写信号量才能被...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。