[0012] 多重プログラミング

平成12年度春期 (旧)第2種情報処理技術者試験より
 多重プログラミングに関する記述として、適切なものはどれか。
ジョブとしては多重で処理されるが、シングルタスクで実行する。
タスクの実行中に、入出力などを行ったために生じるCPUの空き時間を利用して、別タスクを並列に実行する。
プログラムの実行中に、自分自身を呼び出して実行するプログラミング方法である。
プログラムを並列に処理するので、ハードウェアとして複数のプロセッサとメモリを結合した並列処理システムが必要である。

正解

解説

 基本ソフトウェア分野からの出題です。

 多重プログラミングは、マルチプログラミングとも呼ばれます。

 多重プログラミングとは、割り込みを活用した並列処理の技法で、複数のプログラムをオペレーティングシステムの働きにより見かけ上、同時に実行することです。「見かけ上」といっているのは、完全に並列に行っているわけではないからです。

 あるプログラムAがCPUを使用しているとします。このプログラムAが入出力処理などを行っている最中は、CPUは待ち状態となり、その間、プログラムAは処理を進めることができません。そこで、プログラムAの入出力を完了するまでの空き時間を使って、他のプログラムである、プログラムBを実行しているのです。



それでは選択肢をみてきましょう。

 ジョブとしては多重で処理されるが、シングルタスクで実行する。
ジョブとは、利用者から見たコンピュータに実行させる仕事の単位、タスクとは、プログラムを実行するCPUから見た処理単位です。したがって多重プログラミングでは、シングルタスクではなく、マルチタスクを実現していると言えます。

 タスクの実行中に、入出力などを行ったために生じるCPUの空き時間を利用して、別タスクを並列に実行する。
正しい記述です。

 プログラムの実行中に、自分自身を呼び出して実行するプログラミング方法である。
再帰的(リカーシブ)プログラムの説明です。

 プログラムを並列に処理するので、ハードウェアとして複数のプロセッサとメモリを結合した並列処理システムが必要である。
あくまで、CPUの空き時間を使って擬似的に並列処理をやっているだけです。複数のプロセッサ、メモリを使って本当の並列処理を行うものではありません。

 したがって、イが正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題