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

ソフトウェアでは、トランザクションメモリのスキームは、データベースが使用するものとよく似たトランザクションを使用するマルチスレッドプログラミングのためのアクションコースです。 2つ以上のスレッドが同じデータに同時にアクセスしようとすると、プログラムの結果がスレッドアクセス順序に依存する場合に、多くの異なる望ましくない状況が発生する可能性があります。通常、1つの順序が望まれ、マルチスレッドでは、ロックは、単一のスレッドのみが一度に特定のリソースにアクセスできることを保証する主要な最も簡単な方法です。何らかの予期しないエラーが発生した場合、ロックは永続的になる場合があり、ロックは、デッドロックや優先度の反転など、同時性と予測不可能な問題をもたらす可能性があります。ロックが非常に細かくなった結果、別の問題には、最終的にロック、コンテキストの切り替え、UNLの間に大多数の時間を費やすコードが含まれます。OCKING。これは、コードがプログラムで他の重要な作業を行うよりも、これらのアクションに多くの時間を費やす可能性があるため、重要な問題です。対照的に、粗粒のロックは、処理パフォーマンスの低下を引き起こし、並行性の低下を引き起こす可能性があります。

トランザクションメモリの問題は、C#からの「ロックブロック」、読み取りワイトロック、書き込み障壁などを含む高度なロックによって対処されます。トランザクションメモリに関する主な優先事項の1つは、ロックがなく、不要なロック処理時間を持たないことです。通常、共有されているデータ構造には、相互除外がその操作に必要でない場合、ロックがないことに同意します。共有され、ロックがないデータ構造は、非常に並行しているシステムにある場合、標準のロック技術に一般的に関連する問題を回避します。

トランザクションメモリコヒーレンスと一貫性(TCC)モデルは新しいものです。共有メモリに関する提案されたモデル。モデルによると、アトミックトランザクションは常に以下の基本単位です:並列作業、メモリコヒーレンス、通信、およびメモリ参照の一貫性。 TCCモデルは、標準のロックまたはセマフォを使用する同期を排除することにより、並列ソフトウェアをより簡単にします。ハードウェアを介して、TCCは、トランザクションの各領域からのすべての書き込みを1つのパケットに組み合わせて、パケットを永久に共有されたメモリ状態にアトミックにブロードキャストします。単純化されたコヒーレンスハードウェアに加えて、これは、必要な低休業メッセージの削減と、特定の標準コヒーレンスプロトコルの完全な排除があることを意味します。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?