[发明专利]直接更新软件事务存储器有效
申请号: | 200680026687.X | 申请日: | 2006-07-28 |
公开(公告)号: | CN101495976A | 公开(公告)日: | 2009-07-29 |
发明(设计)人: | T·L·哈里斯 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F13/00 | 分类号: | G06F13/00 |
代理公司: | 上海专利商标事务所有限公司 | 代理人: | 顾嘉运 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 直接 更新 软件 事务 存储器 | ||
技术领域
本发明一般涉及计算机存储器操作,尤其涉及直接更新软件事务存储器。
背景技术
多线程进程的多个线程在并发执行期间共享公共存储器位置是常见的。因此,多线程化程序的两个不同线程可读取并更新可由该程序访问的同一存储器位置。然而,必须仔细地确保当一个线程正处于依赖于共享存储器位置的值的操作序列当中时另一线程不会修改该值。
例如,假定一程序正在访问两个不同软件对象的内容,其中每一对象表示一不同银行帐户中的钱币数。最初,第一帐户的数量为$10,储存在存储器地址A1处,而第二帐户的数量为$200,储存在存储器地址A2处。银行程序的第一线程被编码为将$100从A2传输到A1,而第二线程被编码为计算两个帐户中的总资金量。第一线程可通过将$100加到A1的内容开始,将其更新为$110,然后继续从A2的内容中减去$100,从而将其更新为$100。然而,如果第二线程在这两个操作之间执行,则第二线程可能计算两个帐户的不正确的总量$310而非正确的总量$210。
软件事务存储器提供了一种编程抽象,通过该编程抽象,线程可安全地执行一系列共享存储器访问,从而允许线程在没有来自另一线程的干扰的情况下完成其事务。因此,可在软件中采用事务存储器来确保包括第一线程的示例性加减操作关于存储器位置A1和A2是“原子的”,因此第二线程将计算两个帐户的正确的总量。
然而,用于以软件来实现事务存储器的现有方法遭受到性能问题。例如,在一种现有方法中,当一线程在一事务内访问一系列存储器位置时,该线程维护它希望在事务期间读取和更新(即,写入)的存储器位置和值的单独列表,然后在事务结束时,该线程更新实际共享存储器位置处的所有这些值。如果在事务期间,该线程希望重新读取或重新写入其列表中的任何存储器位置,则该线程必须在列表中搜索存储器位置的条目以访问该条目,这在程序上是很慢的事情。因此,这一用软件 实现事务存储器的间接方法遭受较差的性能。
发明内容
此处所描述和要求保护的实现通过提供一种事务存储器编程接口来解决上述问题,该接口允许线程在事务内直接并安全地访问一个或多个共享存储器位置,同时维护一些控制结构以管理一个或多个其它并发线程对这些相同位置的存储器访问。由线程访问的每一存储器位置与一登记(enlistment)记录相关联,且每一线程维护其存储器访问的事务日志。在一事务内,在存储器位置上直接执行读操作,并且在存储器位置上直接尝试写操作而非写入某一中间缓冲区。如果该线程检测到存储器位置的登记记录与其事务日志之间的不一致性,则该线程确定事务内的存储器访问是不可靠的,并且该事务应被重试。此外,如果该线程在事务内试图写入存储器位置并确定另一线程已在另一未完成的事务内更新了该存储器位置,则第一线程或者可等待并在稍后重试该事务,或者可试图解决与其它线程的竞争。另外,该线程可维护其在事务期间写存储器访问的撤消日志,包括该位置的原始值和地址,以允许线程在事务被异常中止的情况下撤消这些操作。
在某些实现中,制品作为计算机程序产品来提供。计算机程序产品的一个实现提供了可由计算机系统读取、并对一计算机程序进行编码的计算机程序存储介质。计算机程序产品的另一实现可以在由计算机系统以载波体现并对该计算机程序进行编码的计算机数据信号中提供。
此处还描述并叙述了其它实现。
附图说明
图1示出了经由示例性直接更新软件事务存储器接口来访问共享存储器位置的两个并发线程。
图2示出了用于经由示例性直接更新软件事务存储器接口来执行存储器访问的操作。
图3示出了用于在事务内登记存储器位置上的读操作的示例性操作。
图4示出了用于在事务内登记存储器位置上的写操作的示例性操作。
图5示出了用于在直接更新软件事务存储器接口中提交事务的示例性操作。
图6示出了可用于实现所描述的技术的系统。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680026687.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于流式多媒体内容的权限管理系统
- 下一篇:新型立架自动车库