ITパスポート 平成24年秋期 問80

問80

ある在庫管理システムは,複数の入力を同時並行して処理し,在庫数を更新しているが,排他制御は行っていない。ある時点での在庫数が100であったとき,入力された二つの入力A,Bに応じて,図に示す処理が@→A→B→Cの順序で実行された場合,処理Cが終了した時点の在庫数は幾つになるか。
80

分類

テクノロジ系 » データベース » トランザクション処理

正解

解説

在庫数(初期値は100)に注目して処理@〜Cの処理結果を追跡していきます。
  1. "在庫数"100+50=150
  2. "在庫数"100−30=70
  3. Aの結果を"在庫数"に書込む。在庫数=70
  4. @の結果を"在庫数"に書込む。在庫数=150
このような処理の流れになるので、2つの入力が終了した時点での"在庫数"は150になります。

通常、このような処理を行う場合、在庫数が(100+50-30=)120となることを期待するのですが、同じデータに対して同時更新を行うと、読書きのタイミングによっては更新消失が発生する場合があります。複数のトランザクションがデータを更新する処理を行う場合には、このような更新消失を防ぐために排他制御を行い、データの完全性を確保する必要があります。
排他制御
複数のプロセスが並行処理されるシステムで、一方が処理中の時には他方には処理を待たせ、コンピュータ資源の競合が起こらないように制御すること
© 2009-2017 ITパスポート試験ドットコム All Rights Reserved.

Pagetop