基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成24年 秋期 基本情報技術者 午後 問01
問01   5問選択

 プロセスの排他制御に関する次の記述を読んで,設問1〜3に答えよ。

 複数のプロセスが,共有するデータ(以下,共有データという)を書き換える処理を, 並行して実行する場合がある。このようにプロセス間でデータを共有する方法の一つとして, プロセス間で共有するメモリ(以下,共有メモリという)に共有データを格納する方法がある。 ここでは,CPU が一つで共有メモリをもつコンピュータ X 上で,二つのプロセス p1,p2 が 共有メモリを使用して並行に処理を実行する場合を考える。

 プロセス p1,p2 が共有データ y に対して計算処理をする場合を,図1に示す。 ここで,各プロセスの計算処理は,次のとおりである。

〔計算処理〕

 @ 共有データ y の値を読み込む。
 A 読み込んだ値を用いて計算する。
 B 計算結果を y に書き込む。


      図1 共有メモリによるデータの共有
設問1 図1に示すプロセス p1,p2 が共有データ y に対して次の処理を 実行する場合を考える。

  プロセス p1:y の値を2だけ増加させる。
  プロセス p2:y の値を1だけ減少させる。

 プロセスの実行前の共有データ y の値が5であり,y に対する排他制御をしないとき, プロセス p1,p2 が並行に1回だけ処理を実行した直後において,y が取り得ない値を, 解答群の中から選べ。

解答群

ア 4      イ 5      ウ 6      エ 7

解答 ←クリックすると正解が表示されます

基本情報技術者試験


設問2 次の記述中の に入れる正しい答えを,解答群の中から選べ。

 プロセスの排他制御の仕組みとして,共有データがいずれかのプロセスに確保されている状態 (以下,確保状態という)又はどのプロセスにも確保されていない状態(以下,解放状態という) のいずれかの状態をもつ同期変数を使用する方法を考える。 図1のプロセス p1,p2 の計算処理で使用する共有データ y に対して同期変数 s を用いて 排他制御する場合を,図2に示す。


       図2 同期変数 s を用いた排他制御
 図2において,同期変数の状態を変更する関数 l と u があり,同期変数を引数で指定する。 各プロセスは,共有データを排他制御して計算処理をする場合, 関数 l の呼出し, 計算処理,関数 u の呼出しの順番で処理を実行する。このとき,共有データ y を 排他制御するために,関数 l と u の 引数として同期変数 s を指定する。

 関数 l の 操作内容は 処理であり,関数 u の操作内容は 処理である。 ここで,“同期変数の状態を調べて,変更する処理”は中断のない処理として実行されるものとする。 ただし,プロセスが待ちの状態になったら,CPU は別のプロセスに割り付けられるものとする。

解答群

ア s の状態が解放状態ならば確保状態にし,確保状態ならば解放状態になるまで待ってから確保状態にする

イ s の状態が解放状態ならば確保状態にし,確保状態ならば何もしない

ウ s の状態が解放状態ならば確保状態になるまで待ち,確保状態ならば解放状態になるまで待つ

エ s の状態が解放状態ならば確保状態になるまで待ち,確保状態ならば何もしない

オ s の状態が確保状態ならば解放状態にし,解放状態ならば何もしない

カ s の状態が確保状態ならば解放状態になるまで待ち,解放状態ならば何もしない

解答 a ←クリックすると正解が表示されます

解答 b ←クリックすると正解が表示されます

基本情報技術者試験


設問3 プロセス p1,p2 が使用する共有データが二つあり,共有データ y1 に対して 同期変数 s1 を用いて排他制御し,共有データ y2 に対して同期変数 s2 を用いて排他制御する場合を考える。 プロセス p1 が,y1 の確保,y2 の確保,y2 の解放,y1 の解放の順序で同期変数を操作するとき, プロセス p2 が y1,y2 の確保と解放を行う順序によってはデッドロックが発生する可能性がある。 デッドロックが発生する可能性のあるプロセス p2 の操作の順序を,解答群の中から選べ。

解答群

ア y1 の確保,y1 の解放,y2 の確保,y2 の解放

イ y1 の確保,y2 の確保,y2 の解放,y1 の解放

ウ y2 の確保,y1 の確保,y1 の解放,y2 の解放

エ y2 の確保,y2 の解放,y1 の確保,y1 の解放

解答 ←クリックすると正解が表示されます

[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]