翻訳と辞書
Words near each other
・ AA長編板
・ AB (航空会社コード)
・ AB 41 (装甲車)
・ AB-2 (航空機)
・ ABA (1967-1976年)
・ ABA (曖昧さ回避)
・ ABACポール研究所
・ ABAステーション
・ ABAニュース
・ ABAリーグ
ABA問題
・ ABB (曖昧さ回避)
・ ABBグループ
・ ABC (アルバム)
・ ABC (ジャクソン5の曲)
・ ABC (バンド)
・ ABC (プログラミング言語)
・ ABC (少年隊の曲)
・ ABC (新聞)
・ ABC NEWSゆう


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

ABA問題 : ミニ英和和英辞書
ABA問題[だい]
=====================================
〔語彙分解〕的な部分一致の検索結果は以下の通りです。

: [もん]
 【名詞】 1. problem 2. question 
問題 : [もんだい]
 【名詞】 1. problem 2. question 
: [だい]
  1. (n,vs) title 2. subject 3. theme 4. topic 

ABA問題 : ウィキペディア日本語版
ABA問題[だい]
ABA問題: ABA problem)とは、マルチスレッドプログラミングにおいて同期化の過程で発生する問題であり、ある記憶域を二回読み出し、二回の読み出しが同じ値であることを「変更がない」とみなすことにしたとき、二回の読み出しの間に別のスレッドが値を変更し、他の作業を行った後また元の値に戻すと、最初のスレッドが誤って「変更がなかった」とみなしてしまうというものである。
ABA 問題は、複数のスレッドや(or プロセス)が共有されたメモリにアクセスする場合に生じる。下記のイベントの流れは、ABA 問題を発生させる。
* プロセス P_1 が共有メモリから値 A を読み出す
* P_1プリエンプトされ、プロセス P_2 が実行される
* P_2 は、共有メモリの値 A を値 B に書き換え、さらにプリエンプションの前に A に書き戻す
* P_1 は実行を再開し、共有メモリの値が変更していないことを確認して実行を継続する
P_1 は実行を継続するが、共有メモリの変更が分からなかったことにより、誤った振る舞いをする可能性がある。
ABA問題に遭遇する一般的なケースとして、ロックフリーのデータ構造を実現する場合がある。ある要素がリストから削除され、解放された後、新しい要素が割り当てられて、リストに追加されると、新規に割り当てられた要素と、削除された要素がメモリ管理上の最適化によって同じものになることがよくある。新しい要素のポインタは古いものと同一になり、ここで ABA 問題を生じる。
== 例 ==
下記の ロックフリースタックを考える:

/
* ABA 問題を生じるロックフリースタック
*/
class Stack ;

このコードは通常は並列的なアクセスの問題を生じないが、ABA 問題を生じる。下記のようなシーケンスを考える。
スタックが初期状態で トップ → A → B → C というデータを持っているとする。
まずスレッド 1 が top から開始し、

ret = A;
next = B;

CompareAndSwapの直前に割り込まれると、

// 新しいスタックは トップ -> B -> C
// 新しいスタックは トップ -> C
delete B;


現在、スタックの内容は top → A → C である。
ここでスレッド 1 が再開すると、CompareExchange(A, A, B)が実行される。
この処理は、top == ret (いずれも A)であるから、必ず成功し、top を next (この場合B) に割り当てる。しかし、B は解放済みであるから、何らかの問題が生じる。

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「ABA問題」の詳細全文を読む




スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.