Skip to main content

トランザクションメモリとは何ですか?

Softwareでは、トランザクションメモリのスキームは、データベースが使用するトランザクションとよく似たトランザクションを使用するマルチスレッドプログラミングのアクションコースです。2つ以上のスレッドが同じデータに同時にアクセスしようとすると、プログラムの結果がスレッドアクセス順序に依存する場合に、多くの異なる望ましくない状況が発生する可能性があります。通常、1つの注文が望まれ、マルチスレッドでは、ロックは一度に特定のリソースに単一のスレッドのみがアクセスできるようにするための主要な最も簡単な方法です。。何らかの予期しないエラーが発生した場合、ロックは永続的になる場合があり、ロックは、デッドロックや優先度の反転など、同時性と予測不可能な問題をもたらす可能性があります。ロックが非常に細かくなった結果、別の問題には、最終的にロック、コンテキストの切り替え、ロック解除の間に大多数の時間を費やすコードが含まれます。これは、コードがプログラムで他の重要な作業を行うよりも、これらのアクションに多くの時間を費やす可能性があるため、重要な問題です。対照的に、粗粒のロックは、処理パフォーマンスの低下と並行性の低下を引き起こす可能性があります。トランザクションメモリに関する主な優先事項は、ロックや不必要なロック処理時間がないことです。通常、共有されているデータ構造には、相互除外がその操作に必要でない場合、ロックがないことに同意します。共有され、ロックがないデータ構造は、非常に同時のシステムにある場合、標準のロック手法に一般的に関連する問題を回避します。モデルによると、アトミックトランザクションは常に以下の基本単位です:並列作業、メモリコヒーレンス、通信、およびメモリ参照の一貫性。TCCモデルは、標準のロックまたはセマフォを使用する同期を排除することにより、並列ソフトウェアをより簡単にします。ハードウェアを介して、TCCは、トランザクションの各領域からのすべての書き込みを1つのパケットに組み合わせて、パケットを永久に共有されたメモリ状態にアトミックにブロードキャストします。単純化されたコヒーレンスハードウェアに加えて、これは、必要な低休業メッセージの削減と、特定の標準コヒーレンスプロトコルの完全な排除があることを意味します。