IT用語-トランザクション関連
ロックベース同期制御における代表的な用語
ミューテックス
ミューテックス(Mutex)とは、クリティカルセクションでアトミック性を確保するための同期機構の一種。Mutexという語はMUTual EXclusion(相互排他)の略である。セマフォをクリティカルセクションの排他制御に用いる時、セマフォでは(初期値が1でなければ)複数のタスクがクリティカルセクションへ入ることを許可するのに対し、ミューテックスでは同時に一つのタスクしかクリティカルセクションに入ることを許されない(ここで言うタスクとは、スレッドまたはプロセスを指す)。挙動はセマフォ変数の初期値を1にする事と等価。
ロックベース同期制御の問題点
- ロックベース同期制御では、資源を獲得しようとするタスクが多ければ多いほど待ちが発生し性能が劣化してしまう。
- デッドロックを考慮して処理を実装する必要がある。実装、テストにコストがかかる。
上記の性能問題を解決するひとつの手段として「ソフトウェアトランザクショナルメモリ」がある。
ソフトウェアトランザクショナルメモリ
データベーストランザクションに似た並行性制御機構であり、並列計算を行う際の共有メモリへのアクセス法である。この機構はロックベースの同期の代替手段として機能し、普通はロックフリーな方法で実装される。
以下のような流れで処理される。楽観ロックみたいなもんだ。
http://d.hatena.ne.jp/hayamiz/20080529/1212043766
transactional memoryにおけるトランザクション1. トランザクション開始 2. 共有資源の読み書き 3. トランザクション中で操作したメモリが、 トランザクション開始時点から (他のトランザクションによって)更新されているかチェック * 更新なし:コミット&トランザクション成功 * 更新あり:ロールバック&トランザクション失敗