タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

technologyとalgorithmとprogrammingに関するusadamasaのブックマーク (1)

  • クリティカルセクション

    並行プログラミング(Concurrent Programming)では、並行して動くプログラム(プロセスやスレッド)が種々の資源(メモリ、ファイル、DB、周辺装置・・・)を共有することが多い。これら共有資源をプログラムが取り合う局面をクリティカルセクション(Critical Section)という。クリティカルセクションは並行プログラミングの最も難しい部分であり、バグが生まれる原因にもなりやすい。以下、具体例で説明しよう。 鈴木さんが山科信用金庫の口座からCDで5万円引き出すとしよう。CDのシステム側では、まず預金残高が5万円以上あるかどうかを調べ、okならば預金残高から5万円引くと共に、1万円札を5枚出すことになる。 上記を擬似的なプログラムで見てみよう。 X(メモリ) ← 預金(DB) IF X > 5万円 THEN X ← X - 50,000 預金(DB) ← X ... 1.~4

    usadamasa
    usadamasa 2011/09/29
    ここで、読者の中には次のような疑問を持つ人がいるかもしれない。コンピュータのスピードを考えると、上記のようにタイミング良く処理が重なるなんてことは、たとえ意図的に試みても現実には起こり得ないのではない
  • 1