Lock-freeデータ構造で使用されるABA避けカウンタについて - Togetter
Twitterのつぶやきマッシュアップメディア!
@togetter_jpをフォロー
マイページ
メニュー
設定
ログイン
トップ
ニュース
社会
地域
芸能・スポーツ
IT・Web
科学・教養
カルチャー
趣味
生活
仕事
ネタ・お笑い
ログ・日記
震災
311
大喜利
放射能
東電
岩上安身
生活保護
国会事故調
速報
国内
アジア
アメリカ
ヨーロッパ
その他
政治
経済
国際
法律
環境
コラム
東京
東京近郊
北海道
東北
関東
北陸・信越
東海
近畿
中国・四国
九州・沖縄
海外
芸能
テレビ
ラジオ
野球
サッカー
ゴルフ
格闘技
競馬
モータースポーツ
その他
Android
Apple
インターネット
パソコン
モバイル
ガジェット
サイト制作
プログラミング
その他
科学
テクノロジー
エネルギー
数学
物理
宇宙
自然
人文
建築
心理
その他
アニメ
ゲーム
マンガ
アイドル
映画
音楽
書籍
演劇
ファッション
社会学
カメラ
車・バイク
電車
旅行
釣り
歴史
アート
デザイン
動物
その他
ハウツー
レシピ
グルメ
恋愛
マネー
節約
健康・医療
教育
ペット
起業・ベンチャー
経営
マーケティング
会計・人事
法務
就職・転職
語学・資格
ネタ
お笑い
大喜利
画像・動画
やってみた
その他
ログ
日記
思い出
雑談
メモ
飲み会
議事録
イベント
セミナー
復興
原発
支援
政府
自治体
トップ
>
IT・Web
>
プログラミング
> Lock-freeデータ構造で使用されるABA..
2011/11/05 21:58:56
IT・Web
プログラミング
concurrent
lockfree
+
Lock-freeデータ構造で使用されるABA避けカウンタについて
Lock-freeなデータ構造などにおいて「ABA問題」を避けるためによく用いられるカウンタの安全性についてまとめました。
by
yamasa
8 fav
1112 view
Fav
8
お気に入りに登録ならここをクリック!
まとめ
メニューを開く
一括削除
boost.atomicは64bit幅の時に上位16bitにカウンタを埋め込むっていうのが賛否あるみたいだけれど、反対意見の人はそのbit数まで必要なメモリを使うんでしょうか。48ビットあれば262テラバイトまで行けるはず…。
返信する
RTする
ふぁぼる
kumagi
2011/11/04 22:48:06
@kumagi
私はカウンタが16bitである点が気になりますね。たとえば3000クロックに1の割合でカウントアップされると仮定すると、16bitカウンタが一周するのに196Mサイクル、2GHzのCPUだと100ms弱です。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 00:13:25
@kumagi
高ロードアベレージ状況なら、コンテキストスイッチしてる間にカウンタが一周してしまっていてもおかしくないわけで、どうも私は気に入りませんね。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 00:15:07
@yamasa
100msに一巡するにしてもカウンタごとABAる確率ってやっぱり天文学的でしょうしそれが嫌ならハザードポインタなどなどで回避したほうが…
返信する
RTする
ふぁぼる
kumagi
2011/11/05 00:15:29
@kumagi
カウンタが一巡してしまう時間が十分ありえるほど短ければ、ABAになる確率はずっと高くなりますよ。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 00:18:55
@kumagi
まあ、私はカウンタ付ポインタが嫌いでハザードポインタ萌えなので、そっちを使ったほうが良いというのには大賛成ですw
返信する
RTする
ふぁぼる
yamasa
2011/11/05 00:20:54
@yamasa
時間は相対的なもので、カウンタの一巡に4億カウント必要だろうとすごく速いCPUなら100msで済んでしまうこともあり得るわけで、bit幅と実時間を指標にするとあまりあてにならないかもと思うのです。で、数学的に算出するなら充分天文学的だろうな、と…。
返信する
RTする
ふぁぼる
kumagi
2011/11/05 00:32:10
@yamasa
はい、ハザードポインタ未だ一度もまともな実装作ったことないですがいずれ呼吸のように実装したいです。
返信する
RTする
ふぁぼる
kumagi
2011/11/05 00:32:36
@kumagi
いやいや、「実際のマシン上で一巡してしまう可能性があるか」は重要ですよ。4億カウントが100msで一巡してしまうようなCPUなら32bitですら不足してるわけだから64bit必要だ、みたいな感じです。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 00:39:57
@kumagi
実際にカウンタが一巡して同じ値になってしまう確率はいろいろ仮定が必要なので簡単には求まりませんが、単純に65536分の1としても十分大きな値だと思いますが。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 00:43:50
@yamasa
うーん、65536分の1よりは遥かに低そうに思うのです。起こりうるスケジュールを全て列挙した場合、事故るパターンの少なさは凄まじくピンポイントな気がします。
返信する
RTする
ふぁぼる
kumagi
2011/11/05 00:50:16
@yamasa
これは納得しました。OSのプリエンプションは割と実時間的ですしねぃ…。
返信する
RTする
ふぁぼる
kumagi
2011/11/05 00:50:53
@kumagi
CASの直前でコンテキストスイッチが発生したとしましょう。コンテキストスイッチから戻ってきたときにカウンタの値がどれだけ進んでいるかは、コンテキストスイッチからの復帰時間の確率分布とカウンタの増加ペースから概算できます。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 00:57:47
@kumagi
復帰時間の確率分布はとりあえず今回は0ms~300msの一様分布としてみましょう。で、カウンタは100msで一周するペースだと仮定します。そうすると、一回のコンテキストスイッチの間に最大3周してしまう可能性があるわけですね。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 01:01:50
@kumagi
で、このような仮定をした場合は復帰時のカウンタ値はどの値でも一様の確率になりますから、65536分の1ってことになります。まあ、最初の一様分布って仮定はちょっと無理がありますが、それでも天文学的っていうほど低い確率にはならないと思いますよ。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 01:04:59
@kumagi
数時間から数日間ぶん回して1回起きるか起きないかってくらいの確率でも、用途によっては十分危険と言えるでしょう。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 01:07:27
@yamasa
うーん、300msでカウンタが一周するという感触がちょっと無いです。そんなに早く周りますかねぃ…?だとすると確かに危なそうな気がします。
返信する
RTする
ふぁぼる
kumagi
2011/11/05 01:38:47
@yamasa
一週間ぶん回して落ちるのなら充分欠陥と呼べると思います。
返信する
RTする
ふぁぼる
kumagi
2011/11/05 01:39:10
@kumagi
単純な掛け算の問題ですよ。
http://t.co/kiI2X4ZA
3000クロックに1回ってのはちょっと高頻度すぎる見積もりですが、3万クロックに1回でも1秒弱です。2GHzのCPUってのはそのくらい速いんですよ。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 11:52:49
@yamasa
OSがフェアなスケジューリングをしてる前提で考えると、200msよりはずっと細かい頻度でコンテキストスイッチが為されるはずですが、それで200msに1回しか自分に廻ってこないとなると結構な数のスレッドですね。スイッチの粒度によっては少なくてもいいのか…。
返信する
RTする
ふぁぼる
kumagi
2011/11/05 12:04:24
@kumagi
スケジューリングの単位はちょっと前まで10ms単位ってのが多かったですね。そのときロードアベレージ20なら、200ms戻ってきません。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 12:10:40
@kumagi
まあ、ここら辺の議論はよく紛糾するもんですよ。16bitのカウンタってのは相当悲観的な見積もりをしたときに1周するかもしれないぎりぎりのラインですから。16bitでも大丈夫だという人も結構居ます。
返信する
RTする
ふぁぼる
yamasa
2011/11/05 12:12:59
Content from Twitter
ブログへ
iframe版
拡張版
張付けプレビュー
Fav
8
あわせて読みたい
次期こちずぶらりのためのデータ構造: @kokogiko さんによるつぶやき
第何回 データ構造(先)とアルゴリズム(後)
テスト勉強--「データ構造とアルゴリズム」
並行linked listの話と、linked listの存在意義
アルゴリズムとデータ構造のヒープの違いについてつぶやく
powered by Preferred Infrastructure
コメント
コメントを入力してください。
Twitterにも投稿する
みんなのおすすめ商品
商品を編集
おすすめ商品を登録する
設定を変更する
まとめを作成する
プロフィール
フォローする
まだ自己紹介が設定されていません。
yamasa
twitter
rss
フォローされている
1
アップデート
まとめ
1
17
Lock-freeデータ構造で使用されるABA避けカウン..
お気に入り
5
コメント
4
新着のまとめ
2012.05.28.mon.のポスト @ca..
new
本当の…
new
2012.05.27. プリキュア実況 @ca..
new
【普天間返還】名実共に破綻した06年日米合意と..
new
2012.05.27.聖闘士星矢Ω 実況 @c..
new
もっと見る
@togetter_jp
最近追加された商品
巨人の星コンプリートBOX Vol.2 [DVD]
新 巨人の星 全6巻完結(文庫版) [マーケットプレイス コミックセット]
現代に生きる大山振り飛車
日本の著作権はなぜこんなに厳しいのか
『断腸亭日乗』を読む (岩波現代文庫)
オススメ
マイスター
トゥギャ通
立憲主義を知らない自民党「憲法起草」委事務局長..
生活保護に関する、渡邊芳之(ynabe39)さ..
報道ステーション東電福島第一原発4号機危険性に..
「放射能汚染地域に住む人の血って、ほしいですか..
頑張れ、米本君!!
高橋健太郎さん、クラブカルチャーと風営法につい..
new
もっと見る
みんなのかんがえたさいきょうの都道府県EVOL..
new
河本準一、妻の母も生活保護を受給!
new
恥と気高さ
new
クローズアップ現代「フィルム映画の灯を守りたい..
new
茂木健一郎(@kenichiromogi)さん..
new
袁紹の用兵の才能と分かり易い『官渡の戦い』
new
もっと見る
第80回「日食写真と昭和格差」
号外「みんなの金環日食まとめ―画像から教養ま..
第79回「虚構新聞とJリーグ」
第78回「コンプガチャとIT系かあちゃん」
第77回「びろーんと自宅警備隊」
第76回「Appleとパンツクッキー」
もっと見る
コメント