SC情報処理安全確保支援士試験 午前Ⅰ

平成29年度春期 情報処理安全確保支援士 午前Ⅰ 問8

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

トランザクションAとBが、 共通の資源であるテーブル a と b を表に示すように更新するとき、 デッドロックとなるのはどの時点か。ここで、 表中の①て⑧は処理の実行順序を示す。また、 ロックはテーブルの更新直前にテーブル単位で行い、 アンロックはトランザクション終了時に行うものとする。

選択肢

  1. ア
    トランザクションA トランザクションB ① トランザクション開始
  2. イ
    ② トランザクション開始 ⑬ テーブル。更新時 ④ テーブルb 更新問| | ⑥ テーブル1更新 ⑯ テーブルsa更新 ⑦ トランザクション終了 ⑧ トランザクション終了
  3. ウ
    ァ ③ イ @ ウゥ @⑤ ェエ @⑥
  4. エ
    ー6ニ
解き方のヒントを見る

資源の取り合いで“にらめっこ状態”になる瞬間を見つけよう

誰がどの資源を持っていて、次に何を待っているのかを順番に追っていこう。席取りみたいに、お互いが相手の席を待ったまま動けなくなる“輪っか”ができた瞬間がポイントだよ。

この問題で問われていること

ただ待ち時間が長くなっているだけではなく、互いに資源を持ったまま相手の資源を待つ循環待ちが起きて、処理が止まる状態を見抜けるかが問われているよ。

Deadlock

deadlock occurs when transactions form a circular wait and none can proceed

hold resource\nwait for another\ncircular wait

確認ポイント

  • 待ちがあっても循環でなければデッドロックではありません。
  • 資源の占有順を追う。
  • 循環待ち成立時点を選ぶ。
正解と解説を見る

正解

エ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

③はまだデッドロックじゃないよ。ここではトランザクションAがテーブルaに鍵をかけて更新しただけ。部屋にAさんが入って鍵をかけた状態で、まだ誰かと鍵の取り合いにはなっていないんだ。

選択肢イ

④もまだデッドロックじゃないよ。今度はトランザクションBがテーブルbに鍵をかけただけ。Aさんは部屋a、Bさんは部屋bをそれぞれ使っているだけで、まだお互いに待ち合ってはいないよ。

選択肢ウ

⑤はAがテーブルbを更新しようとして、Bが持っている鍵の解除待ちになる場面だよ。でも待っているのはAだけ。たとえると、AさんがBさんの部屋の前で待っているだけで、Bさんはまだ動けるので、デッドロックとは言えないんだ。

選択肢エ(正解)

⑥が正解だよ。⑤でAはBがロック中のテーブルbを待っていて、⑥でBもAがロック中のテーブルaを待つことになる。つまり、AさんとBさんがお互いの持っている鍵を待っていて、どちらも先に進めない状態。これがデッドロックだよ。

出典:独立行政法人 情報処理推進機構(IPA)平成29年度春期 情報処理安全確保支援士試験 午前Ⅰ 問8(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針