【インテル】HT未対応のアプリを報告せよ!【オワッテル】
>>428 まぁ、排他制御は共有メモリを使うとかして巧く組まないと遅くなるからね。
技術力の低い会社は制御せずに開発しているケースが多いでしょうな。
430 :
T.A.:03/06/11 14:29 ID:NNkbA4Dw
いままで
排他制御を行うために必要な機構:ミューテックス・クリティカルセクションなどの同期オブジェクト
排他制御の対象となるオブジェクト:共有メモリ・ファイルなどの共有リソース
だと認識していたのですが・・・もしかして私の認識が誤っているのでしょうか?
間違っていないと思うが‥
3Gにも関わらずHTオフにするとレンダリング速度がAthlonXP2100+以下になるぞ、
HTオンで不具合の出るアプリが多いし、何を考えてCPU作ってるんだよ!
433 :
T.A.:03/06/11 15:11 ID:NNkbA4Dw
>>431 「排他制御を行うのに共有メモリを使う」という手法があるとは思っていなかったので。
「共有メモリを使うから排他制御の必要がある」という今までの認識が誤りでないかどうか
確認したかっただけです。
429も430も、知ったばかりの単語を
使ってみたくてしょうがないんだろうなあという香りがするYo
ガンガレ
>>433 共有メモリだけで簡単に排他制御は出来ます。
メモリをロックするフラグを持てばよいだけっすよ♪
1)書き換えを行うために、自分のロックフラグをたてに行く。
2) 他人のロックフラグが立っていないか確認する。
(立っていたら、自分のロックフラグを解除してしばらく休止後1)に戻る)
3) 必要な書き込みを行う。
4) 自分のロックフラグを解除する。
機構に頼る必要など何処にもないっすよ。
436 :
T.A.:03/06/11 15:59 ID:NNkbA4Dw
>>435 一応、自分でもやり方は考えてみました。
(もし、やるとしたらこういう方法かな・・・と。)
1)他スレッドのロックフラグが立っていないか確認する。
2)ロックフラグが立っていれば、休止後1)に戻る。
3)ロックフラグが立っていなければ、ロックフラグを立てる。
4)必要な書き込みを行う。
5)ロックフラグを解除する。
でも、MultiCPU環境だと1)と2),3)の間に他のスレッドがフラグを立ててしまう
可能性があるので、完全な制御はできないのでは・・・
(Win3.1の頃はこれでも充分だったので、この手法でやってましたが。)
あと、この手法は1),2)の処理が無駄にCPUの実行ユニットを占有してしまうため、
Hyper-Threading ONの状態ではパフォーマンスがかなり悪化するはずですが・・・