AUシステム監査技術者試験 午前Ⅰ
平成28年度春期 システム監査技術者 午前Ⅰ 問3
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題

選択肢
- アABC又はACBを実行してデッドロックになる。
- イAB又はACを実行してデッドロックになる。
- ウAの後にBC又はCB,BC又はCB,…と繰り返して実行する。
- エAの後にBの無限ループ又はCの無限ループになる。
解き方のヒントを見る
並列処理の流れを追う視点
並列処理を含む流れ図では、全体を一度に決めつけず、分岐や合流の関係を保ちながら、各処理がどの時点で関係するかを順に整理することが大切です。時間の前後関係にも注意します。
この問題で問われていること
一つの処理だけを追うのではなく、複数の流れを同じ時系列上に置き、開始・待機・合流などの節目で、どの情報や状態を確認すべきかに注目しましょう。
視点
流れ図を読むときは、処理を個別に眺めるだけでなく、流れ同士の対応関係と、状態が変わる節目を整理します。まず時系列の軸を置き、各処理が関係する箇所を対応づけて、全体の整合性を確認します。
確認ポイント
- 各処理の開始点と、次に関係する節目を整理する
- 流れが分かれる箇所と再び関係する箇所を対応づける
- 処理の順序と状態の変化を時系列で見直す
正解と解説を見る
正解
ウ
解説
Aを実行した後、BとCが並列に開始され、両方の処理が終了すると二重線で同期する。その後は矢印によって再び並列処理の開始位置へ戻るため、BとCを順序を変えながら繰り返し実行する流れになる。
理由
開始後にAを実行すると、二重線の位置でBとCの並列処理が始まる。BとCの下流には同期を表す二重線があり、両方が完了するまで次へ進まない。同期後の矢印は並列処理の開始側へ戻るため、処理はそこで繰り返される。
比較
BとCは互いに相手の終了を待つ経路ではなく、同時に開始されて同期点で合流する。したがってデッドロックや一方だけの無限ループではなく、同期を挟んだ反復処理として捉える。
選択肢ア
これは不正解だよ。Aの後はBとCが並列に処理され、同期点で両方の完了を待つ構造である。ABCやACBの一回の実行後に停止するのではなく、同期後の矢印によって再び並列処理の開始位置へ戻るため、デッドロックになるという説明は流れ図と一致しない。
選択肢イ
これは不正解だよ。Aの後にBまたはCの一方だけを実行して停止する流れではない。二重線の位置でBとCが並列に開始され、両方の処理が終わった後に同期するため、ABまたはACを実行してデッドロックになるという記述は誤りである。
選択肢ウ(正解)
これは正解だよ。Aの実行後、BとCは並列に開始され、下側の二重線で両方の終了を待って同期する。同期後の矢印は再びBとCの処理開始側へ戻るので、BとCの実行を順序を変えながら繰り返す動作になる。
選択肢エ
これは不正解だよ。図ではBとCのどちらか一方だけが無限に実行されるのではなく、両方が並列に実行されて下側の二重線で同期する。したがって、Aの後にBまたはCの無限ループになるという説明は、並列処理と同期の構造を正しく表していない。
学習のポイント
並列処理の同期点と、ループを形成する矢印の読み取り方を学ぶ。
出典:独立行政法人 情報処理推進機構(IPA)平成28年度春期 システム監査技術者試験 午前Ⅰ 問3(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針