ソフトⅡコース担当 ブログのおにーさまこと高橋です。
今回は、問1です。問題はIPAのサイトに掲載されていますので、そちらを参照してください。
設問1
yの値は、読み込み時と書き込み時に共有データにアクセスするので、そのタイミングによって変わります。計算のタイミングは、各プロセス内で行われるだけなので、もう一方のプロセスには影響を及ぼしません。計算部分を除くと、共有データの読み書きのタイミングには、次の6パターンがあります。
- パターン1:p1読み込み → p1書き込み → p2読み込み → p2書き込み
- パターン2:p1読み込み → p2読み込み → p1書き込み → p2書き込み
- パターン3:p1読み込み → p2読み込み → p2書き込み → p1書き込み
- パターン4:p2読み込み → p2書き込み → p1読み込み → p1書き込み
- パターン5:p2読み込み → p1読み込み → p2書き込み → p1書き込み
- パターン6:p2読み込み → p1読み込み → p1書き込み → p2書き込み
これらのパターンで共有データの値がどうなるか、図示すると次のようになります。
赤字が、そのパターンでの直後の値です。解答群の中で、これらの値に含まれないものは5です。従って、解答はイになります。
設問2
排他制御が正しく行われるためには、一方のプロセスが共有メモリを使用している間、他方のプロセスが共有データをアクセスしようとしても解放されるまで待たされなければなりません。次の図のように、関数lは、解放状態であれば確保状態にし、確保状態であれば解放状態になるまで待って確保します。関数uは、確保状態を解放状態にします。
以上より、aにはア、bにはオが入ります。
設問3
この問題は、データベースのデッドロックと同じです。複数の資源(共有データ)に、複数のプロセスがロックを用いて排他制御を行いアクセスする場合、
- それぞれのプロセスが同時に複数の資源に対してアクセスしない(ロックしない)、すなわち、同時に1つしかアクセスしないのであればデッドロックは発生しません。
- 同時に複数の資源にアクセスするのであっても、同じ順で資源にアクセスすれば、デッドロックは発生しません。
- 異なる順序でアクセスした場合に、タイミングによってはデッドロックが発生します。
p1はy1,y2の順に確保しているので、p2が異なる順序、y2,y1の順で確保すると、デッドロックになる可能性があります。解答はウになります。
2012年(平成24年度)秋期の解説
- 平成24年度 秋 基本情報技術者試験 【問5】
- 平成24年度 秋 基本情報技術者試験 【問12】
- 平成24年度 秋 基本情報技術者試験 【問8】
- 平成24年度 秋 基本情報技術者試験 【問4】
- 平成24年度 秋 基本情報技術者試験 【問2】(その2)
- 平成24年度 秋 基本情報技術者試験 【問2】(その1)
- 平成24年度 秋 基本情報技術者試験 【問1】
- 平成24年度 秋 基本情報技術者試験 【問3】(その2)
- 平成24年度 秋 基本情報技術者試験 【問3】(その1)
- Date:
- この記事を
友だちに教える - LINE
- - HatenaBookmark
- GooglePlus