ソフトⅡコース担当 ブログのおにーさまこと高橋です。
平成23年度特別試験基本情報技術者試験午後問3の解答で設問4が残っていました。
今回はその設問4です。
デッドロックに関する問題です。
デッドロックは、複数のトランザクションが互いにロックを掛けあい、先に進むことのできなくなった状態をいいます。
例えば、T1、T2という2つのトランザクションが、A、Bという2つの資源を使うとします。この時、利用する時にロックを掛け、ロック解除はトランザク
ション終了時に行われます。
- T1の内容
- T1-1:Aを使うので、Aに対してロックを掛ける
- T1-2:Bを使うので、Bに対してロックを掛ける
- T1-3:A、Bのロックを解除してトランザクションを終了する
- T2の内容
- T2-1:Bを使うので、Bに対してロックを掛ける
- T2-2:Aを使うので、Aに対してロックを掛ける
- T2-3:A、Bのロックを解除してトランザクションを終了する
T1、T2と単独で実行すると問題ありません。並行して処理するとして次の順序で実行します。
- T1-1:Aを使うので、Aに対してロックを掛ける
- T2-1:Bを使うので、Bに対してロックを掛ける
- T1-2:Bを使いたいがT2がロックしているのでT2が終了するのを待つ
- T2-2:Aを使いたいがT1がロックしているのでT1が終了するのを待つ
ここで、T1、T2が、共にもう一方が終了することを待つ状態になり、進まなくなります。この状態がデッドロックです。
デッドロック状態であるかは、次のように図を書くことで見つけることができます。
- 資源を利用する時にロックを掛ける場合、どの資源にロックを掛けるかをトランザクションの近くに書く
- 資源を利用する時に既にロックがかけられている場合、トランザクションからロックを掛けているトランザクションに向かって矢印を書く
- ロックを解除する場合、近くに書いた資源を消し、矢印が引かれている場合は消す(複数の矢印がある場合は1つを消し、他は付けかえる)
- 矢印で閉回路ができた時、デッドロック状態になっている
これを、問題に適用します。問題に、どのような順番で処理するかはわからないとあるので、次の順番で考えます。
- T8:白絵の具5本出荷
- T9:赤絵の具10本入荷
- T10:青絵の具2本出荷
- T11:青絵の具10本入荷
- T8:赤絵の具5本出荷
- T9:青絵の具10本入荷
- T10:白絵の具5本出荷
- T11:黒絵の具10本入荷
図を書くと次のようになります。
T8、T9、T10がデッドロックになります。答えはイです。
2011年(平成23年度)特別の解説
- 平成23年度 特別 基本情報技術者試験 【問9】(その2)
- 平成23年度 特別 基本情報技術者試験 【問9】(その1)
- 平成23年度 特別 基本情報技術者試験 【問3】(その2)
- 平成23年度 特別 基本情報技術者試験 【問2】(その2)
- 平成23年度 特別 基本情報技術者試験 【問3】(その1)
- 平成23年度 特別 基本情報技術者試験 【問4】
- 平成23年度 特別 基本情報技術者試験 【問2】(その1)
- 平成23年度 特別 基本情報技術者試験 【問11】(その2)
- 平成23年度 特別 基本情報技術者試験 【問11】(その1)
- Date:
- この記事を
友だちに教える - LINE
- - HatenaBookmark
- GooglePlus