[发明专利]一种基于延时策略的软件事务内存的实现方法无效
申请号: | 200910096959.9 | 申请日: | 2009-03-26 |
公开(公告)号: | CN101510162A | 公开(公告)日: | 2009-08-19 |
发明(设计)人: | 陈天洲;马建良;曹满;乔福明;章铁飞;项凌翔;王春昊;刘敬伟;陈剑;缪良华 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 杭州中成专利事务所有限公司 | 代理人: | 唐银益 |
地址: | 310027浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及基于多处理器系统软件事物内存的实现技术,旨在提供一种基于延时策略的软件事务内存的实现方法。该方法包括以下步骤:事务创建、事务冲突产生、事务冲突延时仲裁、事务提交或者终止。本发明采用延时策略来仲裁事务间发生冲突时的情况。这样的冲突仲裁策略简单高效,有效地缓解了由于仲裁策略不当而造成的效率低下,提高了软件事物内存系统的性能。 | ||
搜索关键词: | 一种 基于 延时 策略 软件 事务 内存 实现 方法 | ||
【主权项】:
1. 一种基于延时策略的软件事务内存的实现方法,包括以下步骤:1)事务创建为软件事务提供四个状态:Active,Aborted,Committing和Committed,分别表示事务正在运行、事务已经终止、软件事务已经完成对对象的操作等待提交、事务已经提交成功;在程序执行过程中碰到需要对一个对象进行读写操作时事务被创建,事务是一串连续的对同一个对象进行操作的指令集合;在事务Si中,用Si表示创建事务i时的系统时间,作为事务i的开始时间;用flag表示事务i是否有读写操作,如果有,则flag为真,如果没有,则flag为假;2)事务冲突产生在事务进行读写操作时,有两种情况会导致软件事务间的冲突:a. 一事务进行读操作,在获取数据的过程中,发现有其他事务已经在写该数据;b. 一事务进行写操作,在获取数据的过程中,发现有其他事务已经在读或写该数据;3)事务冲突延时仲裁在事务i和j发生冲突时,采用延迟策略进行仲裁,仲裁方式如下:a. 当SiSj时,延迟策略就让事务i等待一定的时间,在指定的时间T过后,去读取事务j的状态;如果事务j的状态是Committed,表明事务j已经提交了,这时冲突在没有中止任何事务的情况下得到了解决;如果事务j的状态是Active,则将事务j的标记字段flag设置为False,事务再等待相同的时间T,如果在这段时间内,事务j进行了读写操作,则将事务j的flag标记字段设置为True;在T时间过后,如果事务j的状态仍然为Active而且flag仍然为False,说明这段时间内事务j没有读写操作,这样的话,延迟策略将事务j终止;否则,事务i自己终止;4)事务提交或者终止事务i和j的冲突经过延迟策略仲裁以后,事务i和j中将有一个事务被终止,另外一个事务继续执行,具体情况分为两种,分别如下:a. 事务i终止,则把事务i的状态置为aborted;b. 事务j终止,事务i继续执行;如果事务i又和另外一个事务k冲突,则再次进行事务冲突延时仲裁;如果事务i读写操作已经完成,则把事务i的状态置为committing,等待提交。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910096959.9/,转载请声明来源钻瓜专利网。