平成24年 秋期 基本情報技術者 午後 問01
問01 5問選択プロセスの排他制御に関する次の記述を読んで,設問1〜3に答えよ。 複数のプロセスが,共有するデータ(以下,共有データという)を書き換える処理を, 並行して実行する場合がある。このようにプロセス間でデータを共有する方法の一つとして, プロセス間で共有するメモリ(以下,共有メモリという)に共有データを格納する方法がある。 ここでは,CPU が一つで共有メモリをもつコンピュータ X 上で,二つのプロセス p1,p2 が 共有メモリを使用して並行に処理を実行する場合を考える。 プロセス p1,p2 が共有データ y に対して計算処理をする場合を,図1に示す。 ここで,各プロセスの計算処理は,次のとおりである。 〔計算処理〕
@ 共有データ y の値を読み込む。 図1 共有メモリによるデータの共有
プロセス p1:y の値を2だけ増加させる。 プロセスの実行前の共有データ y の値が5であり,y に対する排他制御をしないとき, プロセス p1,p2 が並行に1回だけ処理を実行した直後において,y が取り得ない値を, 解答群の中から選べ。 解答群
設問2 次の記述中の に入れる正しい答えを,解答群の中から選べ。 プロセスの排他制御の仕組みとして,共有データがいずれかのプロセスに確保されている状態 (以下,確保状態という)又はどのプロセスにも確保されていない状態(以下,解放状態という) のいずれかの状態をもつ同期変数を使用する方法を考える。 図1のプロセス p1,p2 の計算処理で使用する共有データ y に対して同期変数 s を用いて 排他制御する場合を,図2に示す。
図2 同期変数 s を用いた排他制御 関数 l の 操作内容は 処理であり,関数 u の操作内容は 処理である。 ここで,“同期変数の状態を調べて,変更する処理”は中断のない処理として実行されるものとする。 ただし,プロセスが待ちの状態になったら,CPU は別のプロセスに割り付けられるものとする。 解答群
イ s の状態が解放状態ならば確保状態にし,確保状態ならば何もしない ウ s の状態が解放状態ならば確保状態になるまで待ち,確保状態ならば解放状態になるまで待つ エ s の状態が解放状態ならば確保状態になるまで待ち,確保状態ならば何もしない オ s の状態が確保状態ならば解放状態にし,解放状態ならば何もしない カ s の状態が確保状態ならば解放状態になるまで待ち,解放状態ならば何もしない
設問3 プロセス p1,p2 が使用する共有データが二つあり,共有データ y1 に対して 同期変数 s1 を用いて排他制御し,共有データ y2 に対して同期変数 s2 を用いて排他制御する場合を考える。 プロセス p1 が,y1 の確保,y2 の確保,y2 の解放,y1 の解放の順序で同期変数を操作するとき, プロセス p2 が y1,y2 の確保と解放を行う順序によってはデッドロックが発生する可能性がある。 デッドロックが発生する可能性のあるプロセス p2 の操作の順序を,解答群の中から選べ。 解答群
イ y1 の確保,y2 の確保,y2 の解放,y1 の解放 ウ y2 の確保,y1 の確保,y1 の解放,y2 の解放 エ y2 の確保,y2 の解放,y1 の確保,y1 の解放
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ] |