質問

って読み上げについて多くの取引記憶します。りょーズ周辺TM、多くの人が熱心でならではのソリューション提供のための痛い問題をロックすが、定期的に見苦情などの受付窓口

  • できないI/O
  • 好きなお子セン実行の複数倍になります(つまり、地方の変数!)
  • ソフトウェア取引のメモリー性能が出ない
  • "挿入ペットレはこちら】

私は理解これらの問題に対応するけられることも少なくないので、条約STMsることのみを実行では、特定のハードウェア支援のある粋な原子操作のように LL/SC)、またはそれを支える架空のコンパイラでは すべての アクセスメモリーの取引で紹介しタイプ制約monad-スタイル。以上すべて:これらの事実です。

これを誘導しているのかを自問したい自分: 何語に対し現地の取引メモリに置き換え用としてロック? うことが既に十分な値となれるのは、取引上のメモリ使用するすべての場所で使用する場合は全くないのでしょうか。

役に立ちましたか?

解決

はい、あなたが言及した問題のいくつかは、今現実のものとすることができるが、物事は進化します。 すべての新しい技術として、まず、新しい技術は、いくつかの未解決の問題があることを示し、その後、これらの問題の一部が解決され、他ではない、誇大宣伝があります。この技術は、より適応されているあなたの問題を解決する別の可能性でこの結果ます。

私はあなたが芸術の電流状態が持つ制約を残すことができ、アプリケーションの一部のためにSTMを使用することができると言うだろう。例えば、効率の失われたについては気にしないアプリケーションの一部ます。

トランザクションと非トランザクションの部品との間の通信は、大きな問題があります。彼らは非トランザクションの部分で一貫した方法で対話することができますので、注意してくださいロックされているSTMがあります。

I / Oも可能ですが、あなたの取引は取消不能となり、つまり、中止することはできません。それは1つのトランザクションのみが同時にI / Oを使用できることを意味します。トップレベルのトランザクションは、今のように、非トランザクションの世界で、成功した後、あなたはまた、I / Oを使用することができます。

STMライブラリベースのシステムのほとんどは、トランザクションと非トランザクションデータとの違いを確認するためにユーザーを強制します。そうです、あなたは、これは正確に何を意味するのか理解する必要があります。一方、コンパイラがトランザクションかどうかである必要がありますどのようなアクセス推測することができ、彼らは我々が明示的に変数の異なる種類を管理するときに我々が得ることができる効率を低下させる、あまりにも保守的であることをして問題。これは、静的ローカルおよび動的変数を有する同じです。あなたは、それぞれが正しいプログラムをしなければならない制約を知っておく必要があります。

他のヒント

  

私は最近、トランザクショナルメモリについて多くを読んでいます。

また、この<のhref =「http://se-radio.net/podcast/2007-09/episode-68-dan-grossman-garbage-collection-and-transactional-memory」のrelに興味があるかもしれません=「nofollowをnoreferrer」も、ガベージコレクションに基づいて類推を使用してSTMを紹介するソフトウェアトランザクショナルメモリの上>ポッドキャスト、ます:

  

には、ガベージコレクションの間のアナロジーについてですトランザクショナルメモリ。   類推の美しさを見に加えて、議論も良いとなって   (ゲッツ/ホームズエピソードで言及された)トランザクショナルメモリの概要   そして、 - ある程度 - ガベージコレクションへ

あなたはロックの代替として、トランザクショナルメモリを使用する場合は、

、開催されているロックで実行されるすべてのコードは、完了時にロールバックすることができます。このように、以前にロックを使用していたコードは、トランザクションでなければならず、すべて同じ欠点(と利益を)持っています。

だから、あなたはおそらく右、ロックを保持するコードの部分のみにTMの影響を制限するだろうか?開催されたロック時に呼び出すことができるコードのすべての作品は、そのシナリオでは、TMをサポートしている必要があります。ロックを保持していないとロックを保持しているコードによって呼び出されることはありませんどのくらいのあなたのプログラムの?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top