[发明专利]事务存储器的对象模型有效
申请号: | 200880022262.0 | 申请日: | 2008-06-12 |
公开(公告)号: | CN101689136A | 公开(公告)日: | 2010-03-31 |
发明(设计)人: | M·塔耶费尔 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F12/00 | 分类号: | G06F12/00 |
代理公司: | 上海专利商标事务所有限公司 | 代理人: | 陈 斌;钱静芳 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 事务 存储器 对象 模型 | ||
背景
计算机随时间不断变得更加强大,具有更多的处理能力和存储器来处理高 级操作。这一趋势最近将焦点从日益增长的单处理器时钟速率移开,并趋向于 增加单个计算机中可用处理器的数量。软件开发者想要利用计算机处理能力的 提高来使得他们的软件程序能够在采用新硬件时更快地执行。然而,对于该新 硬件趋势,这要求不同的方法:开发者必须安排特定软件程序的一个或多个任 务“并发地”(有时称为“并行”)执行,以使同一逻辑操作可以同时利用多 个处理器,并在向该软件在其上运行的计算机添加更多处理器时提供更好的性 能。
事务存储器被设计成通过向程序代码区域提供原子性和隔离性来简化并 发程序的开发。事务存储器(TM)是类似于数据库事务的、用于在并发计算 中控制对共享存储器的访问的并发控制机制。事务存储器的上下文中的事务是 对共享存储器执行一系列读取和写入的一段代码。TM用作传统锁定机制的替 换。TM允许更简单地编写并发程序。事务指定应当如其正在孤立地执行那样 执行的代码序列。这一孤立错觉可以通过细粒度的对象锁定,以及通过以允许 在发现事务与某一其它事务相冲突的情况下回退该事务的效果的模式执行来 实现。如果数据访问受这些锁定和回退机制保护,则可以说该访问被“事务化”。
现有事务存储器使用简单的语言构造来定义事务。这些事务通过声明诸如 以下示例的原子代码块的开头和结尾的基于范围的语言构造来隐式地实例化:
atomic(原子)
{
...要在事务中执行的语句放在这里...
}
该对于事务存储器的当前方法要求事务绑定到程序流的特定部分,并且只 由已被升级为包括显式事务语义及相关联的构造的编程语言来支持。
概述
公开了用于提供事务存储器的对象模型的各种技术和方法。事务存储器的 对象模型允许将事务语义与语言范围规则分开。使用该对象模型创建的事务存 储器对象可在与传统的原子块相关联的名义范围之外生存,从而允许与基于范 围的原子块相比的新的使用模型和附加功能。
在一个实现中,事务存储器语义甚至可得到不直接支持事务存储器构造的 语言的支持。这通过在一个或多个基类库中定义该对象模型并且允许不直接支 持事务存储器的语言通过该对象模型使用事务存储器来使之成为可能。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些 概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在 用于帮助确定所要求保护的主题的范围。
附图简述
图1是一个实现的计算机系统的图示。
图2是在图1的计算机系统上操作的一个实现的事务存储器框架应用程序 的图示。
图3是示出用于存储器事务的对象模型可在基类库中实现的一个实现的 图示。
图4是图1的系统的一个实现的处理流程图,其示出在提供事务存储器的 对象模型时所涉及的各阶段。
图5是图1的系统的一个实现的处理流程图,其示出在从甚至不展示事务 存储器构造的语言提供对事务存储器的支持时所涉及的各阶段。
图6是示出一个实现的存储器事务类的骨架定义的示例的图。
图7是示出一个实现的用于通过对象模型来声明和使用存储器事务的某 些示例性源代码的示图。
图8是图1的系统的一个实现的处理流程图,其示出在启动另一线程并使 其协助执行事务中的工作时所涉及的各阶段。
图9是示出用于使用对象模型来创建具有多个线程的单个事务的某些示 例性源代码的示图,这些线程为执行该单个事务的工作作出贡献。
图10是图1的系统的一个实现的处理流程图,其示出在挂起事务并且在 稍后继续该事务时所涉及的各阶段。
图11是示出用于挂起事务并在稍后继续该事务的某些示例性源代码的示 图。
图12是图1的系统的一个实现的处理流程图,其示出在通过使用对象模 型来支持事务存储器来提供增强的事务功能时所涉及的各阶段。
详细描述
为促进对本发明的原理的理解,现将对附图中所示的各实施例加以参考, 同时也将用具体语言描述它们。不过,需要理解的是,并无意由此作出范围上 的限制。对所述实施例的任何改变和进一步更改,以及在此所述的原理的进一 步应用都可以预期将是本领域技术人员通常能想到的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200880022262.0/2.html,转载请声明来源钻瓜专利网。