ホーム > システムアーキテクト試験 > 2022年
システムアーキテクト試験 2022年 午前2 問25
図は、既存の電話機とPBXを使用した企業内の内線網を、IPネットワークに続合する場合の接続構成を示している。図中のa~cに該当する装置の適切な組合せはどれか。


エ:
ア:(正解)
イ:
ウ:
解説
トランザクションのスケジュールと待ちグラフ【午前2 解説】
要点まとめ
- 結論:待ちグラフに相互に矢印があるノード間でデッドロックが発生しているため、これを正しく読み取ることが正解の鍵です。
- 根拠:ノードaとd、ノードbとcの間に相互の矢印が存在し、これが循環依存(サイクル)を示しているため、デッドロック状態と判断できます。
- 差がつくポイント:待ちグラフの矢印の向きと循環の有無を正確に把握し、トランザクションの依存関係を理解することが重要です。
正解の理由
選択肢アが正解である理由は、待ちグラフのノードaとd、bとcの間に相互の矢印が存在し、これがデッドロックの典型的なサイクルを形成しているからです。トランザクションのスケジュールからも、これらのトランザクションが互いにリソースを待っている状態が読み取れます。したがって、デッドロックの検出や解消に関する問題として、アの組み合わせが最も適切です。
よくある誤解
待ちグラフの矢印を単なる依存関係と誤解し、循環の有無を見落とすことが多いです。矢印の向きと相互関係を正確に理解しないと、デッドロックの判定を誤ります。
解法ステップ
- トランザクションのスケジュールを確認し、各操作の対象データとタイミングを把握する。
- 待ちグラフのノードと矢印の意味を理解し、どのトランザクションがどのリソースを待っているかを確認する。
- ノード間の矢印が相互に存在するか(サイクルがあるか)をチェックする。
- サイクルがあればデッドロックが発生していると判断し、該当する選択肢を選ぶ。
- 他の選択肢と比較し、デッドロックの有無や矢印の向きが正しいかを再確認する。
選択肢別の誤答解説
- ア: 正解。ノードaとd、bとcの間に相互矢印があり、デッドロックを示すサイクルが存在する。
- イ: ノード間の矢印の向きや組み合わせが誤っており、デッドロックのサイクルを正しく表していない。
- ウ: 待ちグラフの矢印が一方向のみで、デッドロックのサイクルが形成されていないため誤り。
- エ: ノードの組み合わせや矢印の向きが不適切で、トランザクションの依存関係を正確に反映していない。
補足コラム
待ちグラフはデッドロック検出の基本的な手法で、ノードはトランザクション、矢印は「待ち」の関係を示します。サイクルが存在すると、トランザクション同士が互いにリソースを待ち合うデッドロック状態となり、システムの停止や処理遅延を引き起こします。デッドロック解消には、タイムアウトやトランザクションの強制終了などの対策が用いられます。
FAQ
Q: 待ちグラフの矢印は何を表していますか?
A: 矢印は「あるトランザクションが他のトランザクションのリソースを待っている」ことを示します。
A: 矢印は「あるトランザクションが他のトランザクションのリソースを待っている」ことを示します。
Q: デッドロックはどのように判定しますか?
A: 待ちグラフにサイクル(循環依存)が存在すれば、デッドロックが発生していると判定します。
A: 待ちグラフにサイクル(循環依存)が存在すれば、デッドロックが発生していると判定します。
Q: デッドロックが発生した場合の対処法は?
A: タイムアウト設定やトランザクションのロールバック、リソースの優先順位付けなどで解消を試みます。
A: タイムアウト設定やトランザクションのロールバック、リソースの優先順位付けなどで解消を試みます。
関連キーワード: トランザクション管理, 待ちグラフ, デッドロック, スケジューリング, 競合制御