修了試験 2024-07-28実施分 基本情報技術者試験 問22
データベースシステムにおいて,二つのプログラムが同一データへのアクセス要求を行うとき,後続プログラムのアクセス要求に対する並行実行の可否の組合せのうち,適切なものはどれか。 ここで,表中の〇は二つのプログラムが並行して実行されることを表し,×は先行プログラムの実行終了まで後続プログラムは待たされることを表す。 各選択肢の表は,行が後続プログラムのアクセスモード(共用/排他),列が先行プログラムのアクセスモード(共用/排他)を表す。
正答4
解説
正解は4です。 排他制御におけるロックの両立性を問う問題です。 共用モードは主に読取りのためのロックで、複数のプログラムが同時に掛けても問題がありません。 排他モードは更新のためのロックで、他のプログラムのアクセスを許しません。 したがって、並行実行できるのは、先行も後続も共用の場合だけです。 【選択肢別解説】 1:× 先行が排他のときの後続の共用と、先行が共用のときの後続の排他を、どちらも○としている点が誤りです。 更新中のデータを読んだり、読取り中のデータを更新したりすると、整合性が失われます。 2:× 先行が共用のときに、後続の排他を○としている点が誤りです。 読取り中のデータを別のプログラムが更新すると読取り結果の整合性が保てないので、後続は待たされます。 3:× 先行が排他のときに、後続の共用を○としている点が誤りです。 更新中のデータを読み取ると、確定していない値を読んでしまうので、後続は待たされます。 4:○ 共用と共用の組合せだけが○で、ほかはすべて×です。 一方でも排他モードが絡むと、先行プログラムの終了まで後続が待たされるという正しい組合せです。 【ポイント】 共用ロックどうしは両立し、排他ロックはどのロックとも両立しません。 ロックの待ち合いが循環して処理が進まなくなる状態を、デッドロックといいます。まとめて解く
修了試験 2024-07-28実施分を通しで解く(60問)→