![]()
平成29年 秋期 基本情報技術者 午後 問02
問02 4問選択プロセスの排他制御に関する次の記述を読んで,設問1〜3に答えよ。 単一の CPU と,プロセス間で共有するデータ(以下,共有データという)を 格納するためのメモリ(以下,共有メモリという)をもつコンピュータ X において, 並行に実行される複数のプロセスが,共有データを更新する場合を考える。 二つのプロセス p1,p2 が共有データ y を更新する際には,図1に示す更新処理1, 更新処理2を,それぞれ@〜Bの順番に行う。
![]() 図1 二つのプロセスが共有データに対して更新処理を行う例
【更新処理2】:共有データ y の値を 50 減少させる。 二つのプロセス p1,p2 の実行前の共有データ y の値が 100 であり, 共有データ y に対して排他制御を行わずに,プロセス p1 が更新処理1を,プロセス p2 が 更新処理2を並行して各1回だけ行った。結果として,共有データ y が取り得ない値を, 解答群の中から選べ。 解答群
共有データに対して排他制御を行う仕組みとして,セマフォ変数を利用する方法を考える。 セマフォ変数は,対応する共有データが,解放されている状態を示す 1, 又はいずれかのプロセスに確保されている状態を示す 0 の値をもつ。 セマフォ変数の値は,P 操作と V 操作で変更する。共有データ y に対応するセマフォ変数 S を 利用したプロセス p3,p4 が共有データ y を更新する際の動作を,図2に示す。
![]() 図2 セマフォ変数Sを利用した更新処理 図2において,共有データ y に対して排他制御をした上で,更新処理を行うために, プロセス p3 は,P 操作,更新処理1,V 操作の順に処理を行い, プロセス p4 は,P 操作,更新処理2,V 操作の順に処理を行う。 P 操作は,a 。 V 操作は,b 。 ここで,P 操作と V 操作は,それぞれ実行中の中断はないものとする。 ただし,プロセスが待ち状態になれば,CPU は別のプロセスを実行させるものとする。 a に関する解答群 イ セマフォ変数 S の値が 0 であれば 1 に変更し,終了する。 1 であれば何もせずに終了する ウ セマフォ変数 S の値が 1 であれば 0 に変更し,終了する。 0 であれば 1 になるまで待った後,0 に変更して終了する エ セマフォ変数 S の値が 1 であれば 0 に変更し,終了する。 0 であれば何もせずに終了する b に関する解答群 イ セマフォ変数 S の値が 1 であれば 0 になるまで待った後,終了する ウ セマフォ変数 S の値を 0 にして終了する エ セマフォ変数 S の値を 1 にして終了する
y1 の確保,y2 の確保,y2 の解放,y1 の解放 イ y1 の確保,y2 の確保,y1 の解放,y2 の解放 ウ y1 の確保,y2 の確保,y2 の解放,y1 の解放 エ y2 の確保,y1 の確保,y1 の解放,y2 の解放 オ y2 の確保,y2 の解放,y1 の確保,y1 の解放 [←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||