コンピュータ

マルチプログラミング(マルチタスク)とは

マルチプログラミング(マルチタスク)

マルチプログラミングとは

マルチプログラミングとは、複数のプログラム(タスク)を並行して同時に実行することです。マルチタスク多重プログラミングとも呼ばれています。

コンピュータで実行するプログラムには「CPUによる処理」と「入出力処理」があり、入出力処理をしている間、CPUは何もしていません。

次の図は、プログラムの内訳例です。

プログラム

「90ミリ秒」かかる処理の中で、CPUが処理している時間は「30ミリ秒」です。「60ミリ秒」間は入出力の処理であり、その間、CPUは何もしていません。

マルチプログラミングは、この何もしていない時間(アイドルタイム)に別のプログラムを処理させることでCPUの利用効率を向上させています。

マルチプログラミングの例

例えば、次のような2つのプログラムがあるとします。

どちらのプログラムも「90ミリ秒」かかるので、順番に処理すると「180ミリ秒」必要です。

2つのプログラム

 

以下の図は、2つのプログラムをマルチプログラミングで処理したときのイメージ例です。

マルチプログラミングの例

CPUはプログラムAを処理し、プログラムAの入出力処理が終わるのを待っている間にプログラムBの処理を行います。

その結果、本来であれば「180ミリ秒」かかる2つのプログラムが「100ミリ秒」で終了しています。

このように、マルチプログラミングではCPUが何もしていない時間(アイドルタイム)に、別のプログラムを処理させることで、CPUの利用効率を向上させています。