CN101689136B - 事务存储器的对象模型 - Google Patents
事务存储器的对象模型 Download PDFInfo
- Publication number
- CN101689136B CN101689136B CN200880022262.0A CN200880022262A CN101689136B CN 101689136 B CN101689136 B CN 101689136B CN 200880022262 A CN200880022262 A CN 200880022262A CN 101689136 B CN101689136 B CN 101689136B
- Authority
- CN
- China
- Prior art keywords
- transaction
- memory
- object model
- affairs
- adeditive attribute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 44
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000002708 enhancing effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了用于提供事务存储器的对象模型的各种技术和方法。事务存储器的对象模型允许将事务语义与程序流分开。使用该对象模型创建的存储器事务对象可在实例化执行范围之外生存,这允许提供和控制关于存储器事务的附加细节。事务存储器甚至可得到不直接展示事务存储器构造的语言的支持。通过在一个或多个基类库中定义该对象模型并且允许不直接支持事务存储器的语言通过该对象模型使用事务存储器来使之成为可能。
Description
背景
计算机随时间不断变得更加强大,具有更多的处理能力和存储器来处理高级操作。这一趋势最近将焦点从日益增长的单处理器时钟速率移开,并趋向于增加单个计算机中可用处理器的数量。软件开发者想要利用计算机处理能力的提高来使得他们的软件程序能够在采用新硬件时更快地执行。然而,对于该新硬件趋势,这要求不同的方法:开发者必须安排特定软件程序的一个或多个任务“并发地”(有时称为“并行”)执行,以使同一逻辑操作可以同时利用多个处理器,并在向该软件在其上运行的计算机添加更多处理器时提供更好的性能。
事务存储器被设计成通过向程序代码区域提供原子性和隔离性来简化并发程序的开发。事务存储器(TM)是类似于数据库事务的、用于在并发计算中控制对共享存储器的访问的并发控制机制。事务存储器的上下文中的事务是对共享存储器执行一系列读取和写入的一段代码。TM用作传统锁定机制的替换。TM允许更简单地编写并发程序。事务指定应当如其正在孤立地执行那样执行的代码序列。这一孤立错觉可以通过细粒度的对象锁定,以及通过以允许在发现事务与某一其它事务相冲突的情况下回退该事务的效果的模式执行来实现。如果数据访问受这些锁定和回退机制保护,则可以说该访问被“事务化”。
现有事务存储器使用简单的语言构造来定义事务。这些事务通过声明诸如以下示例的原子代码块的开头和结尾的基于范围的语言构造来隐式地实例化:
atomic(原子)
{
...要在事务中执行的语句放在这里...
}
该对于事务存储器的当前方法要求事务绑定到程序流的特定部分,并且只由已被升级为包括显式事务语义及相关联的构造的编程语言来支持。
概述
公开了用于提供事务存储器的对象模型的各种技术和方法。事务存储器的对象模型允许将事务语义与语言范围规则分开。使用该对象模型创建的事务存储器对象可在与传统的原子块相关联的名义范围之外生存,从而允许与基于范围的原子块相比的新的使用模型和附加功能。
在一个实现中,事务存储器语义甚至可得到不直接支持事务存储器构造的语言的支持。这通过在一个或多个基类库中定义该对象模型并且允许不直接支持事务存储器的语言通过该对象模型使用事务存储器来使之成为可能。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
图1是一个实现的计算机***的图示。
图2是在图1的计算机***上操作的一个实现的事务存储器框架应用程序的图示。
图3是示出用于存储器事务的对象模型可在基类库中实现的一个实现的图示。
图4是图1的***的一个实现的处理流程图,其示出在提供事务存储器的对象模型时所涉及的各阶段。
图5是图1的***的一个实现的处理流程图,其示出在从甚至不展示事务存储器构造的语言提供对事务存储器的支持时所涉及的各阶段。
图6是示出一个实现的存储器事务类的骨架定义的示例的图。
图7是示出一个实现的用于通过对象模型来声明和使用存储器事务的某些示例性源代码的示图。
图8是图1的***的一个实现的处理流程图,其示出在启动另一线程并使其协助执行事务中的工作时所涉及的各阶段。
图9是示出用于使用对象模型来创建具有多个线程的单个事务的某些示例性源代码的示图,这些线程为执行该单个事务的工作作出贡献。
图10是图1的***的一个实现的处理流程图,其示出在挂起事务并且在稍后继续该事务时所涉及的各阶段。
图11是示出用于挂起事务并在稍后继续该事务的某些示例性源代码的示图。
图12是图1的***的一个实现的处理流程图,其示出在通过使用对象模型来支持事务存储器来提供增强的事务功能时所涉及的各阶段。
详细描述
为促进对本发明的原理的理解,现将对附图中所示的各实施例加以参考,同时也将用具体语言描述它们。不过,需要理解的是,并无意由此作出范围上的限制。对所述实施例的任何改变和进一步更改,以及在此所述的原理的进一步应用都可以预期将是本领域技术人员通常能想到的。
该***可以在一般上下文中被描述为用于提供事务存储器的对象模型的框架,但是该***还用于除此之外的其它目的。在一个实现中,此处所描述的技术中的一个或多个可被实现为诸如.NET、Java虚拟机等框架或平台内的、或来自提供用于使用事务存储器***来运行应用程序的平台的任何其它类型的程序或服务的特征。
如图1所示,用于实现本***的一个或多个部分的示例性计算机***包括诸如计算设备100等计算设备。在其最基本的配置中,计算设备100通常包括至少一个处理单元102和存储器104。取决于计算设备的确切配置和类型,存储器104可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。该最基本配置在图1中由虚线106来示出。
另外,设备100还可具有附加特征/功能。例如,设备100还可包含附加存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。这样的附加存储在图1中由可移动存储108和不可移动存储110示出。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器104、可移动存储108和不可移动存储110都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可用于存储所需信息并且可由设备100访问的任何其它介质。任何这样的计算机存储介质都可以是设备100的一部分。
计算设备100包括允许计算设备100与其它计算机/应用程序115进行通信的一个或多个通信连接114。设备100还可以具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等输入设备112。还可以包括诸如显示器、扬声器、打印机等输出设备111。这些设备在本领域中公知且无需在此处详细讨论。在一个实现中,计算设备100包括事务存储器框架应用程序200。事务存储器框架应用程序200将在图2中更详细地描述。
现在转向图2并继续参考图1,示出了在计算设备100上操作的事务存储器框架应用程序200。事务存储器框架应用程序200是驻留在计算设备100上的应用程序中的一个。然而,可以理解,事务存储器框架应用程序200可另选地或另外地被具体化为一个或多个计算机上的计算机可执行指令和/或与图1所示的不同的变型。另选地或另外地,事务存储器框架应用程序200的一个或多个部分可以是***存储器104的一部分、可以在其它计算机和/或应用程序115上、或可以是计算机软件领域的技术人员能想到的其它此类变型。
事务存储器框架应用程序200包括负责执行在此描述的技术中的一些或全部的程序逻辑204。程序逻辑204包括提供用于将事务句法与程序流分开的事务存储器的对象模型的逻辑206;用于使用对象模型来在不展示用于事务存储器的显式构造的编程语言中支持事务存储器的逻辑208;用于使用对象模型来在事务存储器***中支持增强的事务可编程性的逻辑210;用于通过使用对象模型来创建和管理事务来提供增强的事务控制的逻辑212;以及用于操作应用程序的其它逻辑220。在一个实现中,程序逻辑204可操作来通过编程,如使用对程序逻辑204中的过程的单一调用而从另一程序调用。
图3是示出可在一个或多个由虚拟机250使用的基类库248中实现的用于存储器事务的对象模型的图示240。多个语言(242、244和246)然后可访问该对象模型,无论这些语言中的相应的一个语言是否具有直接来自该语言中的对存储器事务构造的支持。
现在转到图4-12并继续参考图1-2,更详细地描述用于实现事务存储器框架应用程序200的一个或多个实现的各阶段。在某些实现中,图4-12的过程至少部分地用计算设备100的操作逻辑来实现。图4示出了在提供事务存储器的对象模型时所涉及的各阶段的一个实现。该过程开始于起始点270,在那里提供事务存储器的对象模型(阶段272)。通过该对象模型,将事务句法与程序流分开(阶段274)。可使用在声明范围的执行范围之外生存的对象模型来创建存储器事务对象(阶段276)。该延长的生存期提供了在此处更详细地讨论的附加特征。该过程在结束点278处结束。
图5示出了在从甚至不展示事务存储器构造的语言提供对事务存储器的支持时所涉及的各阶段的一个实现。该过程开始于起始点290,在那里在一个或多个基类库中提供事务存储器的对象模型的定义(阶段292)。该***允许支持和不支持事务存储器的语言通过基类库中的对象模型来使用事务存储器(阶段294)。该过程在结束点296处结束。
图6是示出一个实现的存储器事务类的骨架定义的示例的示图310。图6所示的存储器事务类312示出了对顶级存储器事务314、嵌套的存储器事务316的定义、对事务进行读写的各种方法318、用于控制事务的方法320、返回当前环境事务分层结构的属性322以及线程本地值324。如在后面的附图中更详细地描述的,通过使用对象模型来提供存储器事务,可实现不与程序流绑定的附加特征和改进。
图7是示出一个实现的用于根据对象模型来声明和使用存储器事务的某些示例性源代码的示图340。在所示的示例中,声明新的存储器事务,并且随后调用关于该对象的各种方法,诸如写(write)方法和提交(commit)方法。
图8示出了在启动另一线程并且使其协助执行工作时所涉及的各阶段的一个实现。该过程开始于起始点370,在那里使用事务存储器对象模型来声明并开始事务(阶段372)。启动第二线程(阶段374),该线程随后加入并参与该事务(阶段376)。该过程在结束点378处。
图9是示出用于使用对象模型来创建具有多个线程的单个事务的某些示例性源代码的示图400,这些线程为执行该单个事务的工作作出贡献。在所示的示例中,创建存储器事务402,并且随后启动可协助执行一部分工作的新线程404。
图10示出了在挂起事务并在稍后继续该事务时所涉及的各阶段的一个实现。该过程开始于起始点430,在那里提供事务存储器对象模型(阶段432)。该***开始事务(阶段434),并且随后在稍后挂起同一事务(阶段436)。该***获得所挂起的事务的快照(阶段438)以允许在稍后继续该事务。该***随后在稍后从该快照继续所挂起的事务(阶段440)。该过程在结束点442处结束。
图11是示出用于进一步示出图10的各阶段的某些示例性源代码的示图460。在所示的示例中,挂起事务,捕捉事务对象的快照,并且随后在稍后继续该事务。
图12示出了在通过使用对象模型来创建事务来提供增强的事务细节时所涉及的各阶段的一个实现。尽管在流程图中描述这些阶段,但这些特征不旨在具有特定顺序。此外,某些、所有和/或其它特征可使用不同于在图12中所述的那些的对象模型来支持。该过程开始于起始点500,在那里在对象模型中支持自省(introspection)以允许获得事务的当前状态(阶段502)。该***支持向统计数据查询事务的使用模式和诊断信息的能力(阶段504)。例如,可以计算写入特定事务的数据量。该***支持对先前捕捉的事务状态的操纵(阶段506),诸如分析在执行事务时捕捉到的一个或多个值。该***可将当前和/或先前捕捉到的事务状态提供给调试程序以帮助调试(阶段508)。该过程在结束点510处结束。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。落入在此所述和/或所附权利要求所描述的实现的精神的范围内的所有等效方案、更改和修正都期望受到保护。
例如,计算机软件领域普通技术人员将认识到,此处所讨论的示例可以在一个或多个计算机上不同地组织来包括比这些示例中所描绘的更少或更多选项或特征。
Claims (14)
1.一种用于提供事务存储器的对象模型的方法,所述方法包括以下步骤:
在一个或多个基类库中提供事务存储器的对象模型,其中从所述对象模型创建的存储器事务对象在实例化执行范围之外生存;
在不展示事务存储器构造的编程语言中,通过所述对象模型来使用事务存储器,所述对象模型允许将事务句法与程序流分开。
2.如权利要求1所述的方法,其特征在于,所述对象模型提供用于创建顶级事务的构造函数。
3.如权利要求1所述的方法,其特征在于,所述对象模型提供用于创建嵌套事务的构造函数。
4.如权利要求1所述的方法,其特征在于,所述对象模型提供用于事务控制的方法。
5.如权利要求1所述的方法,其特征在于,所述对象模型提供用于执行事务读写的方法。
6.如权利要求1所述的方法,其特征在于,所述方法进一步包括:
允许操纵关于所述存储器事务对象的附加属性。
7.如权利要求6所述的方法,其特征在于,所述附加属性包括所述事务中的一个或多个的当前状态。
8.如权利要求6所述的方法,其特征在于,所述附加属性包括关于所述事务中的一个或多个的使用模式的统计数据。
9.如权利要求6所述的方法,其特征在于,所述附加属性包括关于所述事务中的一个或多个的诊断信息的统计数据。
10.如权利要求6所述的方法,其特征在于,所述附加属性包括所述事务中的一个或多个的先前捕捉到的事务状态。
11.如权利要求6所述的方法,其特征在于,所述附加属性被提供给调试程序以帮助调试。
12.如权利要求11所述的方法,其特征在于,所述附加属性包括所述事务中的一个或多个的先前捕捉到的事务状态。
13.如权利要求11所述的方法,其特征在于,所述附加属性包括所述事务中的一个或多个的当前事务状态。
14.如权利要求1所述的方法,其特征在于,所述对象模型允许所述编程语言声明和使用存储器事务对象。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/821,838 | 2007-06-26 | ||
US11/821,838 US8196123B2 (en) | 2007-06-26 | 2007-06-26 | Object model for transactional memory |
PCT/US2008/066781 WO2009002725A1 (en) | 2007-06-26 | 2008-06-12 | Object model for transactional memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101689136A CN101689136A (zh) | 2010-03-31 |
CN101689136B true CN101689136B (zh) | 2016-03-30 |
Family
ID=40162331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880022262.0A Active CN101689136B (zh) | 2007-06-26 | 2008-06-12 | 事务存储器的对象模型 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8196123B2 (zh) |
EP (1) | EP2176761B1 (zh) |
JP (1) | JP5186562B2 (zh) |
CN (1) | CN101689136B (zh) |
WO (1) | WO2009002725A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8042091B2 (en) * | 2007-03-14 | 2011-10-18 | International Business Machines Corporation | Automatic composition of model transformations |
US8266604B2 (en) * | 2009-01-26 | 2012-09-11 | Microsoft Corporation | Transactional memory compatibility management |
US8751860B2 (en) | 2009-06-03 | 2014-06-10 | Micron Technology, Inc. | Object oriented memory in solid state devices |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1833232A (zh) * | 2003-04-23 | 2006-09-13 | 国际商业机器公司 | 用于运行时数据管理的存储***类区别提示 |
CN1983172A (zh) * | 2005-11-18 | 2007-06-20 | 阿尔卡特公司 | 对象模型转换的设计模式和方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2239334B (en) | 1989-12-22 | 1994-07-06 | Intel Corp | Synchronous communication between execution environments in a data processing system employing an object-oriented memory protection mechanism |
US5157777A (en) | 1989-12-22 | 1992-10-20 | Intel Corporation | Synchronous communication between execution environments in a data processing system employing an object-oriented memory protection mechanism |
CA2115464C (en) | 1994-02-11 | 1998-12-15 | William G. O'farrell | Concurrent processing in object oriented parallel and near parallel systems |
US6938263B2 (en) | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
US6085035A (en) | 1997-09-09 | 2000-07-04 | Sun Microsystems, Inc. | Method and apparatus for efficient operations on primary type values without static overloading |
US7076784B1 (en) | 1997-10-28 | 2006-07-11 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment |
WO1999044296A2 (en) | 1998-02-26 | 1999-09-02 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
US6138269A (en) | 1998-05-20 | 2000-10-24 | Sun Microsystems, Inc. | Determining the actual class of an object at run time |
US6553384B1 (en) | 1999-06-14 | 2003-04-22 | International Business Machines Corporation | Transactional name service |
US6856993B1 (en) * | 2000-03-30 | 2005-02-15 | Microsoft Corporation | Transactional file system |
WO2001082057A2 (en) | 2000-04-18 | 2001-11-01 | Sun Microsystems, Inc. | Lock-free implementation of concurrent shared object with dynamic node allocation and distinguishing pointer value |
US7006099B2 (en) | 2000-08-15 | 2006-02-28 | Aware, Inc. | Cache system and method for generating uncached objects from cached and stored object components |
US6654760B2 (en) | 2001-06-04 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | System and method of providing a cache-efficient, hybrid, compressed digital tree with wide dynamic ranges and simple interface requiring no configuration or tuning |
US6983456B2 (en) * | 2002-10-31 | 2006-01-03 | Src Computers, Inc. | Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms |
US7827135B2 (en) * | 2002-12-31 | 2010-11-02 | International Business Machines Corporation | Method and apparatus for relaxed transactional isolation in a client-server caching architecture |
US7395278B2 (en) * | 2003-06-30 | 2008-07-01 | Microsoft Corporation | Transaction consistent copy-on-write database |
US7340735B2 (en) * | 2003-10-30 | 2008-03-04 | Sprint Communications Company L.P. | Implementation of distributed and asynchronous processing in COBOL |
US20050289212A1 (en) * | 2004-06-01 | 2005-12-29 | Tankov Nikolal D | Non-transactional resource reference |
US20060026379A1 (en) * | 2004-07-27 | 2006-02-02 | Samsung Electronics Co., Ltd. | Effective memory management method and device in object-oriented application |
US7861237B2 (en) * | 2005-12-07 | 2010-12-28 | Microsoft Corporation | Reducing unnecessary software transactional memory operations on newly-allocated data |
US8601456B2 (en) * | 2006-08-04 | 2013-12-03 | Microsoft Corporation | Software transactional protection of managed pointers |
US7962456B2 (en) * | 2007-06-27 | 2011-06-14 | Microsoft Corporation | Parallel nested transactions in transactional memory |
US7809525B2 (en) * | 2007-07-31 | 2010-10-05 | International Business Machines Corporation | Automatic configuration of robotic transaction playback through analysis of previously collected traffic patterns |
-
2007
- 2007-06-26 US US11/821,838 patent/US8196123B2/en not_active Expired - Fee Related
-
2008
- 2008-06-12 JP JP2010514954A patent/JP5186562B2/ja active Active
- 2008-06-12 WO PCT/US2008/066781 patent/WO2009002725A1/en active Application Filing
- 2008-06-12 CN CN200880022262.0A patent/CN101689136B/zh active Active
- 2008-06-12 EP EP08770896.2A patent/EP2176761B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1833232A (zh) * | 2003-04-23 | 2006-09-13 | 国际商业机器公司 | 用于运行时数据管理的存储***类区别提示 |
CN1983172A (zh) * | 2005-11-18 | 2007-06-20 | 阿尔卡特公司 | 对象模型转换的设计模式和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2009002725A1 (en) | 2008-12-31 |
US20090007057A1 (en) | 2009-01-01 |
EP2176761B1 (en) | 2018-12-19 |
EP2176761A1 (en) | 2010-04-21 |
CN101689136A (zh) | 2010-03-31 |
US8196123B2 (en) | 2012-06-05 |
JP2010532048A (ja) | 2010-09-30 |
JP5186562B2 (ja) | 2013-04-17 |
EP2176761A4 (en) | 2010-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6116721B2 (ja) | グラフに基づく計算の動的ロード | |
EP2176763B1 (en) | Memory transaction grouping | |
JP5681473B2 (ja) | プログラムの最適化装置、最適化方法および最適化プログラム | |
US8756590B2 (en) | Binding data parallel device source code | |
JP5906325B2 (ja) | トランザクションをサポートするコンピューターアーキテクチャにおけるコード特殊化のための例外を用いるプログラム及びコンピューティングデバイス | |
KR20110073339A (ko) | 컴퓨터 플랫폼에서의 방법 및 컴퓨터 플랫폼 | |
US10372509B2 (en) | Composable and cancelable dataflow continuation passing | |
US8650551B2 (en) | Transactional debugger for a transactional memory system and detecting conflicts | |
CN101689136B (zh) | 事务存储器的对象模型 | |
Greenaway | Automated proof-producing abstraction of C code | |
US8490115B2 (en) | Ambient state for asynchronous methods | |
US20120324457A1 (en) | Using compiler-generated tasks to represent programming elements | |
Ujma et al. | jpf-concurrent: An extension of Java PathFinder for java. util. concurrent | |
US8135943B1 (en) | Method, apparatus, and computer-readable medium for generating a dispatching function | |
Zhou et al. | The Mimir Approach to Transactional Output | |
Botto et al. | Objective-C language and GNUstep base library programming manual | |
Kelley | Writing Modern Code with Blocks | |
JP2007048020A (ja) | エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150721 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150721 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |