当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于延时策略的软件事务内存的实现方法技术

技术编号:3860167 阅读:380 留言:0更新日期:2012-04-11 18:40
一种基于延时策略的软件事务内存的实现方法,包括以下步骤: 1)事务创建 为软件事务提供四个状态:Active,Aborted,Committing和Committed,分别表示事务正在运行、事务已经终止、软件事务已经完成对对象的操作等待提交、事务已经提交成功; 在程序执行过程中碰到需要对一个对象进行读写操作时事务被创建,事务是一串连续的对同一个对象进行操作的指令集合;在事务S↓[i]中,用S↓[i]表示创建事务i时的系统时间,作为事务i的开始时间;用flag表示事务i是否有读写操作,如果有,则flag为真,如果没有,则flag为假; 2)事务冲突产生 在事务进行读写操作时,有两种情况会导致软件事务间的冲突: a.一事务进行读操作,在获取数据的过程中,发现有其他事务已经在写该数据; b.一事务进行写操作,在获取数据的过程中,发现有其他事务已经在读或写该数据; 3)事务冲突延时仲裁 在事务i和j发生冲突时,采用延迟策略进行仲裁,仲裁方式如下: a.当S↓[i]<S↓[j]或者S↓[i]=S↓[j]时,延迟策略就将J事务终止; b.当S↓[i]>S↓[j]时,延迟策略就让事务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,等待提交。

【技术实现步骤摘要】

本专利技术涉及基于多处理器系统软件事物内存的实现技术,特别是涉及一种基于延时策略 的软件事务内存的实现方法。
技术介绍
在并行计算的多线程编程模型中,不可避免地会引入如何保证共享数据同步的问题。当 前,锁机制是实现对共享数据互斥访问较常用的方法。使用锁机制的过程一般是这样的程 序员首先正确地识别出算法中的并行性,然后编写代码将独立的任务分配到并行机上,通常 是一个处理器上运行一个线程。对于必须要顺序执行的任务,比如对共享资源的更新操作, 程序员必须使用同步机制来协调线程间的执行顺序。这时,程序员就使用互斥锁来创建临界 区,保证在某个时刻只允许一个线程进入访问共享资源。为了保证始终能互斥访问共享数据 结构,程序员必须使用锁来协调临界区内的数据访问。但是锁会带来很多额外的问题,使程 序设计变得复杂而费时。主要的问题有死锁、护航、优先级反转。由于这些问题的存在,基于锁的并行编程对于一般的程序员来说并不是一个很好的选 择,特别是随着多核时代的到来。同时,研究人员也在不断寻找代替锁策略的更先进、更高效的方案。其中最有前途、最 热门的当属事务内存。在事务内存模型中,程序员将多条访问共享内存的语本文档来自技高网...

【技术保护点】
一种基于延时策略的软件事务内存的实现方法,包括以下步骤: 1)事务创建 为软件事务提供四个状态:Active,Aborted,Committing和Committed,分别表示事务正在运行、事务已经终止、软件事务已经完成对对象的操作等待提交、事务已经提交成功; 在程序执行过程中碰到需要对一个对象进行读写操作时事务被创建,事务是一串连续的对同一个对象进行操作的指令集合;在事务S↓[i]中,用S↓[i]表示创建事务i时的系统时间,作为事务i的开始时间;用flag表示事务i是否有读写操作,如果有,则flag为真,如果没有,则flag为假; 2)事务冲突产生 在事务进行读写操作时,有两种情况会导致软件...

【技术特征摘要】
1. 一种基于延时策略的软件事务内存的实现方法,包括以下步骤1)事务创建为软件事务提供四个状态Active,Aborted,Committing和Committed,分别表示事务正在运行、事务已经终止、软件事务已经完成对对象的操作等待提交、事务已经提交成功;在程序执行过程中碰到需要对一个对象进行读写操作时事务被创建,事务是一串连续的对同一个对象进行操作的指令集合;在事务Si中,用Si表示创建事务i时的系统时间,作为事务i的开始时间;用flag表示事务i是否有读写操作,如果有,则flag为真,如果没有,则flag为假;2)事务冲突产生在事务进行读写操作时,有两种情况会导致软件事务间的冲突a. 一事务进行读操作,在获取数据的过程中,发现有其他事务已经在写该数据;b. 一事务进行写操作,在获取数据的过程中,发现有其他事务已经在读或写该数据;3)事务冲突延时仲裁在事务i和j发生冲突时,采用延迟策略进行仲裁,仲裁方式如下a. 当Si<Sj或者Si=Sj时,延迟策略就将j事务终止;b. 当Si>...

【专利技术属性】
技术研发人员:陈天洲马建良曹满乔福明章铁飞项凌翔王春昊刘敬伟陈剑缪良华
申请(专利权)人:浙江大学
类型:发明
国别省市:86

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

1