[发明专利]实现任务间共享数据的方法有效
申请号: | 200610149655.0 | 申请日: | 2006-10-13 |
公开(公告)号: | CN101163094A | 公开(公告)日: | 2008-04-16 |
发明(设计)人: | 赵欣 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L12/24;H04L1/16;G06F15/163 |
代理公司: | 北京中博世达专利商标代理有限公司 | 代理人: | 申健 |
地址: | 518057广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 任务 共享 数据 方法 | ||
技术领域
本发明涉及计算机系统领域,具体涉及一种实现任务间共享数据的方法。尤其适用于定时器、后台等任务对共享数据的访问处理。
背景技术
计算机系统,无论是大的图形化操作系统还是小小的芯片上运行的程序,经常采用多任务的处理方式。每个任务具备不同的功能,任务间通过消息交互一些信息。这些任务有时需要访问同一个数据区,这些被多个任务访问的数据就是共享数据,也被称作临界区。由于多任务访问,临界区必须保证在某个任务的访问过程中不被修改,即直到当前任务使用完毕,才允许其他任务访问临界区。这样才能保证临界区数据的正确。例如银行系统,用户的账户信息就是临界区,而存取款的动作就是一个个任务,必须完成一笔业务再处理另外一笔业务。
为了保证临界区是互斥访问的,即一个时间只能有一个任务对其访问。操作系统提供了很多手段,例如锁机制和事务。可以对临界区进行锁保护,任何一个任务访问临界区,必须先获得锁,得到锁后,才能操作临界区,访问完毕后释放锁。如果得不到锁,任务就处于等待状态。事务是数据库系统的概念,与锁类似。
这个方法在嵌入式操作系统上存在一些缺点:
1.一些嵌入式操作系统用中断实现锁,使得加锁和解锁的开销比较大。有的时候对临界区的数据操作简单,指令不多,操作很快就能完成,但是加锁和解锁的操作占用较多时间,代码无法提高效率。
2.编码复杂,一旦发生死锁,不易定位故障。由于任务中可以多次访问临界区,如果某次访问没有释放锁,后面的访问无法进行,但是锁的占用者却是自己,只能走读代码查找问题。
发明内容
针对现有技术存在的缺陷和不足,本发明提供一种无须对共享数据进行保护,而且多任务能够访问共享数据区的实现任务间共享数据的方法。
为达到上述目的,本发明采用以下技术方案:一种实现任务间共享数据的方法,包括如下步骤:
步骤A,没有访问共享数据区权限的任务向具备访问权限的任务发ACTION消息;
步骤B,具备访问权限的任务收到该消息后,按照消息的内容,运行相应程序,操作共享数据区;
步骤C,运行结束,具备访问权限的任务向ACTION消息的发送者发送应答消息,该应答消息包含运行结果;
优选的:在所述实现任务间共享数据的方法中,还包括如下步骤:
步骤D,ACTION的发送者收到所述应答消息,判断运行结果;
步骤E,如果所述运行结果是未完,那么ACTION的发送者再向具备访问权限的任务发送ACTION消息;
步骤F,如果应答消息里的结果是结束,那么ACTION的发送者不再向具备访问权限的任务发ACTION消息。
优选的:在所述实现任务间共享数据的方法中,PROTOCOL任务为具备访问共享数据区权限的任务;CLEAR_SUB任务为没有访问共享数据区权限的任务;CLEAR_SUB的优先级低于PROTOCOL的优先级;活动用户表为共享数据区。
优选的:在所述实现任务间共享数据的方法中,所述PROTOCOL任务在用户上、下线时,向活动用户表增加、删除该用户所对应的纪录;当网管下踢用户命令时,CLEAR_SUB任务查询活动用户表,删除符合条件的用户的纪录,CLEAR_SUB任务的优先级低于PROTOCOL任务的优先级。
优选的:在所述实现任务间共享数据的方法中,所述步骤A具体为:
步骤A1,CLEAR_SUB任务收到clear sub domain 100命令,构造踢用户消息;
步骤A2,CLEAR_SUB任务把构造好踢用户消息发送给PROTOCOL任务。
优选的:在所述实现任务间共享数据的方法中,所述踢用户消息的内容包含:用户标志1,表示从第一个用户开始;DomainID置为100,删除的条件,活动用户DomainID是100;当前时刻,表示删除此时刻前上线的用户;操作用户个数,表示一次处理几个用户;本次命令编号,为了区分多个网管命令。
优选的:在所述实现任务间共享数据的方法中,所述步骤B具体为:
步骤B1,PROTOCOL收到踢用户消息,按照消息中的用户标志1定位到起始用户;
步骤B2,读取当前用户,先判断当前用户的DomainID是否等于100,然后判断用户上线时间是否在当前时刻之前;
步骤B3,如果两个条件都满足,踢掉当前用户,处理的用户数加1,执行步骤B2;
步骤B4,如果当前用户的DomainID大于100,步骤结束。
优选的:在所述实现任务间共享数据的方法中,所述步骤C具体为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610149655.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置