[发明专利]基于双缓存机制的实时系统多任务数据共享方法有效
申请号: | 201610210689.X | 申请日: | 2016-04-06 |
公开(公告)号: | CN105912478B | 公开(公告)日: | 2018-11-27 |
发明(设计)人: | 徐克;张国全;李奎 | 申请(专利权)人: | 中国航空无线电电子研究所 |
主分类号: | G06F12/0877 | 分类号: | G06F12/0877;G06F12/0893 |
代理公司: | 上海和跃知识产权代理事务所(普通合伙) 31239 | 代理人: | 杨慧 |
地址: | 200233 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于双缓存机制的实时系统多任务数据共享方法,包含双缓存结构初始化操作、双缓存写入操作和双缓存读取操作,双缓存初始化操作对双缓存结构进行分配内存、设置初值等初始化活动。双缓存读取操作由读取任务调用对双缓存结构进行数据读取;双缓存写入操作由写入任务调用对双缓存结构进行数据写入。本发明由于使用了双缓存机制,即不影响原有的系统调度,又保证了写入数据的更新率和读取的数据的相对一致性、及时性、不重复性。 | ||
搜索关键词: | 基于 缓存 机制 实时 系统 任务 数据 共享 方法 | ||
【主权项】:
1.一种基于双缓存机制的实时系统多任务数据共享方法,包含双缓存结构初始化操作、双缓存写入操作和双缓存读取操作,其特征在于:所述双缓存结构初始化操作完成缓存区A和缓存区B的内存分配,以及缓存区A的可写入标志、缓存区B的可写入标志、缓存区可读取标志、缓存区写入次数、缓存区A的更新标志、缓存区B的更新标志、读取任务更新标志、缓存区A的地址、缓存区B的地址的设置;所述双缓存写入操作包含以下步骤:步骤2.1、判断待写入数据是否超出单个缓存区能处理的最大值,若超出则返回错误代码,否则根据缓存区可读取标志执行下一步:步骤2.2、如果是第一次写入,则将数据写入缓存区A;如果不是第一次写入,判断非上一次写入的缓存区的可写入标志是否代表可以写入,如何可以写入则将数据写入非上一次写入的缓存区,如果非上一次写入缓存区不可写入,判断上一次写入的缓存区的可写入标志,如果也不可写入,返回错误代码,如果上一次写入缓存区可以写入,先将缓存区可读取标志指向非上一次写入缓存区,然后将数据写入上一次写入缓存区;步骤2.3、更新缓冲区写入次数,将本次写入的缓存区的更新标志设置为更新后的缓冲区写入次数,将缓存区可读取标志指向本次写入的缓存区,返回写入字节数,写入完成;所述双缓存读取操作包含以下步骤:步骤3.1、判断待读取数据是否超出单个缓存区能处理的最大值,若超出则返回错误代码,否则执行下一步;步骤3.2、判断读取任务与写入任务的优先级高低,若读取任务优先级高于或等于写入任务,则判断缓存区可读标志所指向的缓存区的更新状态是否大于本次读取任务id对应的读取更新标志判断数据是否有更新,若大于,先更新读取更新标志,然后读取缓存区可读标志所指向的缓存区的数据,返回读取字节数;若读取任务优先级低于写入任务,先通过缓存区A的可写入标志判断缓存区A是否正在被其他任务读取,如果是,根据缓存区A的更新状态是否大于本次读取任务id对应的读取更新标志判断数据是否有更新,若大于,先更新读取更新标志并且缓存区A的可写入标志加1,然后读取缓存区A中的数据,读取完成后,缓存区A的可写入标志减1,返回读取字节数;如果缓存区A没有正在被其他任务读取,则再通过缓存区B的可写入标志判断缓存区B是否正在被其他任务读取,如果是,则根据缓存区B的更新状态是否大于本次读取任务id对应的读取更新标志判断数据是否有更新,若大于,先更新读取更新标志并且缓存区A的可写入标志加1,然后读取缓存区A中的数据,读取完成后,缓存区A的可写入标志减1,返回读取字节数。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空无线电电子研究所,未经中国航空无线电电子研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610210689.X/,转载请声明来源钻瓜专利网。
- 上一篇:AXI互联总线的扩展方法
- 下一篇:一种测试结果自动存档的方法及装置