過去問解きまくり研究所 ホーム

平成30年度 秋期 午前 問30

データベース

排他制御に関する問題

データベースシステムにおいて,二つのプログラムが同一データへのアクセス要求を行うとき,後続プログラムのアクセス要求に対する並行実行の可否の組合せのうち,適切なものはどれか。ここで,表中の ○ は二つのプログラムが並行して実行されることを表し,×は先行プログラムの実行終了まで後続プログラムは待たされることを表す。

〔図〕4 肢の表(4 枚の表)

  どの肢も、縦が「後続プログラムのアクセスモード」、
  横が「先行プログラムのアクセスモード」で、どちらも 共用/排他 の 2 区分。

                   先行 共用   先行 排他
   ア  後続 共用      ○          ○
       後続 排他      ○          ×

   イ  後続 共用      ○          ×
       後続 排他      ○          ×

   ウ  後続 共用      ○          ○
       後続 排他      ×          ×

   エ  後続 共用      ○          ×
       後続 排他      ×          ×
答えと解説を見る

✓ これが正解エ先行も後続も共用のときだけ並行できる(○が 1 か所)

解説

並行できるのは読む側どうしの一組だけです。

二つのプログラムが同じデータへアクセスしようとしたとき、後から来たほうが待たされるかどうかを、四つのます目の表として選ぶ問いです。共用と排他という二つのアクセスモードを、何のために掛けるものかで言い換えると、表は自分で埋まります。共用のほうは読むために掛けるもので、共有ロックと呼ばれます。読むだけであれば何人が同時に読んでも値は変わらないので、互いに邪魔をしません。排他のほうは書くために掛けるもので、専有ロックと呼ばれます。書き換えている途中の値は、他のプログラムに読ませても書かせてもいけません。この見方でます目を順に埋めます。先に来たほうも後から来たほうも読むだけなら並行できます。先が読んでいるところへ後が書きに来る場合は、読んでいる最中に値が変わってしまうので待たせます。先が書いているところへ後が読みに来る場合は、確定していない値を読むことになるので待たせます。両方が書く場合は、更新の一方が失われるので待たせます。つまり並行できるのは一組だけで、表では左上のます目だけが可となります。見分けの軸は二つです。書く側が一方でも関わっていれば待たせる、という点と、両立の関係は対称でなければならない、という点です。後者は、片方の順番では並行できるのに逆の順番ではできない、という表があれば、それだけで排除できるという意味です。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:平成30年度 秋期 応用情報技術者試験 午前 問30(改変:原典の図表をテキストに書き起こした)

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)