【手続補正書】
【提出日】平成24年11月8日(2012.11.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
共有メモリへアクセスできるアトミックトランザクションを制御する方法であって、
少なくとも１つのメモリ以外のリソースマネージャを参加させることと、
トランザクションメモリを管理するように構成された、メモリのリソースマネージャに参加させることと、
前記メモリ以外のリソースマネージャおよびメモリのリソースマネージャが前記アトミックトランザクションをコミットするために投票するかどうかを判断するように構成された、コミットプロトコルを呼び出すことと、
前記メモリ以外のリソースマネージャおよびメモリのリソースマネージャが前記アトミックトランザクションをコミットするために投票する場合、前記アトミックトランザクションをコミットすることと、
前記メモリのリソースマネージャが前記アトミックトランザクションをコミットするために投票しない場合、前記アトミックトランザクションを再実行することと、
前記メモリ以外のリソースマネージャの少なくとも１つが前記アトミックトランザクションをコミットするために投票せず、かつ前記メモリのリソースマネージャが前記アトミックトランザクションをコミットするために投票する場合、前記アトミックトランザクションを失敗（アボート）とすることであって、前記メモリのリソースマネージャは、前記アトミックトランザクション中にメモリ衝突が生じない場合には、コミットするために投票することと
を備えることを特徴とする方法。
【請求項２】
前記共有メモリは、前記メモリのリソースマネージャを参加させる前のオリジナル状態を含み、前記アトミックトランザクションを再実行することは、前記共有メモリを前記オリジナル状態へロールバックすることを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記アトミックトランザクションをコミットすると、前記オリジナル状態への変更は、永続的なものとされ、および公開状態にされることを特徴とする請求項２に記載の方法。
【請求項４】
前記アトミックトランザクションを再実行することは、前記アトミックトランザクションにおけるすべてのリソースマネージャがコミットするために投票するか、または前記アトミックトランザクションが失敗とされるまで、前記アトミックトランザクションを繰り返し再実行することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記アトミックトランザクションを再実行することは、前記メモリ以外のリソースマネージャが前記アトミックトランザクションをコミットするために投票するとき、および少なくとも１つのメモリリのソースマネージャがアボートするために投票するときに生じることを特徴とする請求項１に記載の方法。
【請求項６】
前記コミットプロトコルは、準備のフェーズおよびコミットのフェーズを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記アトミックトランザクションの境界を定義することを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記アトミックトランザクションは、入れ子アトミックトランザクションを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記コミットプロトコルは、前記アトミックトランザクションおよび前記入れ子アトミックトランザクションをフラット化することを特徴とする請求項８に記載の方法。
【請求項１０】
前記入れ子アトミックトランザクションは、前記アトミックトランザクションが実行される前に、コミットされるまで実行されることを特徴とする請求項８に記載の方法。
【請求項１１】
複数のスレッドを含む並列プログラムのための処理動作を含むコンピュータシステムを制御するためにコンピュータ実行可能命令コンポーネントを記憶したコンピュータストレージ媒体であって、少なくとも１つのスレッドは、メモリ動作を有するアトミックトランザクションを含み、前記コンピュータ実行可能命令コンポーネントは、
共有メモリへの前記複数のスレッドのアクセスを制御するように構成されたトランザクションメモリと、
前記アトミックトランザクションに参加するように構成された少なくとも１つのメモリ以外のリソースマネージャと、
前記アトミックトランザクションに参加し、前記トランザクションメモリを管理するように構成されたメモリのリソースマネージャと、
前記アトミックトランザクションに参加した前記リソースマネージャの全てに結合されるトランザクションマネージャであって、前記トランザクションマネージャは、前記アトミックトランザクションに参加した全てのリソースマネージャから、前記アトミックトランザクションをコミットするかどうかについて、投票を受信するように構成され、前記アトミックトランザクションは、前記アトミックトランザクションに参加した全てのリソースマネージャからのコミット投票にコミットし、前記メモリのリソースマネージャは、コミットするかどうかについて投票する前にメモリ衝突が存在するか判断する、トランザクションマネージャと、
を備えることを特徴とするコンピュータストレージ媒体。
【請求項１２】
前記リソースマネージャは、揮発性リソースマネージャであることを特徴とする請求項１１に記載のコンピュータストレージ媒体。
【請求項１３】
前記トランザクションマネージャは、準備の指令およびコミットの指令を発するように構成されたことを特徴とする請求項１１に記載のコンピュータストレージ媒体。
【請求項１４】
前記アトミックトランザクションに参加した前記リソースマネージャは、前記準備の指令に応じて前記アトミックトランザクションをコミットするかどうかについて投票するように構成されたことを特徴とする請求項１３に記載のコンピュータストレージ媒体。
【請求項１５】
前記アトミックトランザクションは境界を含み、前記アトミックトランザクションは前記アトミックトランザクションの終わりの境界においてコミットすることを特徴とする請求項１４に記載のコンピュータストレージ媒体。
【請求項１６】
共有メモリへアクセスできるアトミックトランザクションを有するアプリケーションを動作させるように構成され、コンピューティング装置上で運用されるランタイム環境であって、
楽観的な並列性を通じて、前記共有メモリにおける変数へのアクセスを制御するように構成されたメモリ制御メカニズムと、
リソースマネージャのライブラリであって、少なくとも２つのリソースマネージャを、前記アトミックトランザクションに参加するように構成し、および前記コンピューティング装置上でメモリにロードし、および前記少なくとも２つのリソースマネージャは、前記メモリ制御メカニズムの管理に参加するように構成された、メモリのリソースマネージャを含む、リソースマネージャのライブラリと、
前記メモリにロードされ、および前記参加するリソースマネージャに結合されるトランザクションマネージャであって、前記トランザクションマネージャを、前記参加したリソースマネージャから、前記アトミックトランザクションをコミットするかどうかについて、投票を受信するように構成し、前記メモリのリソースマネージャは、前記アトミックトランザクション中にメモリ衝突が生じたかどうかに応じて投票する、トランザクションマネージャと
を備えたことを特徴とするランタイム環境。
【請求項１７】
前記コンピューティング装置は、複数の並列クラスのうちの１つに配置された複数のプロセッサを含み、前記アトミックトランザクションは、少なくとも２つの前記プロセッサ上で実行する複数のスレッドを有するアプリケーションのスレッド上に含まれることを特徴とする請求項１６に記載のランタイム環境。
【請求項１８】
前記メモリ制御メカニズムは、トランザクションメモリであることを特徴とする請求項１６に記載のランタイム環境。