Q. 10/27の小テストの2番,解説お願いします.
A. 了解!
問題文:
ある在庫管理システムは,複数の入力を同時並行して処理し,在庫数を更新しているが,排他制御は行っていない。ある時点での在庫数が100であったとき,入力された二つの入力A,Bに応じて,図に示す処理が①→②→③→④の順序で実行された場合,処理④が終了した時点の在庫数は幾つになるか。
解説:
まず前提知識ですが,「在庫数」はデータベースやディスクなどの「共有領域」だと考え,「処理内容」を実行するのは「何らかのアプリ」だと考えてください.ですからアプリ側で計算した内容をディスクに上書き保存するケースだと捉えます.
それと,この手の問題(排他制御,共有領域など)は,慣れるまでは紙に書いて練習してくださいね.
実際にやってみます.
(1)の処理によって「在庫数」の100を読み込んでそれに50を加える計算を実行します.結果として150となりますが,まだ「在庫数」には上書き保存していませんから「在庫数」は100のままです.
(2)の処理によって「在庫数」の100を読み込んで30を引くので結果は70となります.
(3)の処理によって70を「在庫数」に上書き保存するので,「在庫数」は70になります.
(4)の処理によって,最初に計算した150を「在庫数」に上書き保存するので「在庫数」は150となります.
わかりました?
間違えてはいけない点として,「アプリ側」の情報と「データベース,ディスク」の情報は別々であるということがあります.
——————————-
さて,そろそろ受験ラッシュですね.まだ十分に時間がありますので,必ず合格を手にしてくださいませ.応援しています.