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

平成29年 秋期 基本情報技術者 午後 問02
問02   4問選択

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

 

 単一の CPU と,プロセス間で共有するデータ(以下,共有データという)を 格納するためのメモリ(以下,共有メモリという)をもつコンピュータ X において, 並行に実行される複数のプロセスが,共有データを更新する場合を考える。

 二つのプロセス p1,p2 が共有データ y を更新する際には,図1に示す更新処理1, 更新処理2を,それぞれ@〜Bの順番に行う。

図1 二つのプロセスが共有データに対して更新処理を行う例

 

設問1  図1に示すプロセス p1 の更新処理1とプロセス p2 の更新処理2が, 次のとおりに共有データ y を更新する場合を考える。
【更新処理1】:共有データ y の値を 30 増加させる。

【更新処理2】:共有データ y の値を 50 減少させる。

 二つのプロセス p1,p2 の実行前の共有データ y の値が 100 であり, 共有データ y に対して排他制御を行わずに,プロセス p1 が更新処理1を,プロセス p2 が 更新処理2を並行して各1回だけ行った。結果として,共有データ y が取り得ない値を, 解答群の中から選べ。

 

解答群 ア 50      イ 80      ウ 100      エ 130
解答 ←クリックすると正解が表示されます

基本情報技術者試験


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

 共有データに対して排他制御を行う仕組みとして,セマフォ変数を利用する方法を考える。 セマフォ変数は,対応する共有データが,解放されている状態を示す 1, 又はいずれかのプロセスに確保されている状態を示す 0 の値をもつ。 セマフォ変数の値は,P 操作と V 操作で変更する。共有データ y に対応するセマフォ変数 S を 利用したプロセス p3,p4 が共有データ y を更新する際の動作を,図2に示す。

 

図2 セマフォ変数Sを利用した更新処理

 

 図2において,共有データ y に対して排他制御をした上で,更新処理を行うために, プロセス p3 は,P 操作,更新処理1,V 操作の順に処理を行い, プロセス p4 は,P 操作,更新処理2,V 操作の順に処理を行う。 P 操作は, 。 V 操作は, 。 ここで,P 操作と V 操作は,それぞれ実行中の中断はないものとする。 ただし,プロセスが待ち状態になれば,CPU は別のプロセスを実行させるものとする。

 

a に関する解答群 ア セマフォ変数 S の値が 0 であれば 1 に変更し,終了する。 1 であれば 0 になるまで待った後,1 に変更して終了する

イ セマフォ変数 S の値が 0 であれば 1 に変更し,終了する。 1 であれば何もせずに終了する

ウ セマフォ変数 S の値が 1 であれば 0 に変更し,終了する。 0 であれば 1 になるまで待った後,0 に変更して終了する

エ セマフォ変数 S の値が 1 であれば 0 に変更し,終了する。 0 であれば何もせずに終了する

 

b に関する解答群 ア セマフォ変数 S の値が 0 であれば 1 になるまで待った後,終了する

イ セマフォ変数 S の値が 1 であれば 0 になるまで待った後,終了する

ウ セマフォ変数 S の値を 0 にして終了する

エ セマフォ変数 S の値を 1 にして終了する

 

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

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

基本情報技術者試験


設問3  プロセス p5,p6 が更新する二つの共有データ y1,y2 があり, それぞれに異なるセマフォ変数を対応させて,個別に確保と解放ができるようにした場合を考える。 共有データ y1 に対してセマフォ変数 S1 を,共有データ y2 に対してセマフォ変数 S2 を 用いて排他制御を行う。プロセス p5 が,次の順序で共有データ y1,y2 に対する確保と解放を行うとき, プロセス p6 が,共有データ y1,y2 に対する確保と解放を行う順序によってはデットロックが 発生する可能性がある。デッドロックが発生する可能性がある, プロセス p6 の共有データ y1,y2 に対する確保と解放の順序を,解答群の中から選べ。

  [プロセス p5 の共有データに対する確保と解放の順序]

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

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

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

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

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

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

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

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