マルチプログラミングは、コンピュータの第 3 世代 (1965 年以降) 以来広く使用されており、複数のプログラムをメモリ内で同時に共存させ、プログラム (入力など) の「ダウンタイム」を利用するためにオペレーティングシステムによって提供される可能性です。 -出力操作) 他のプログラムを「進める」ため。
実際、通常のプログラムの実行時間の 80 ~ 90% が、比較的遅い入出力操作 (磁気テープ、パンチカードなど) の待機に費やされていることが観察されました。したがって、マルチプログラミングによって、モノプログラミングでは無駄に浪費されていた時間を利用して、複数のプログラムを実行することで、高価なコンピューターの収益性が大幅に向上しました。
マルチプログラミングは、複数のプログラム間でコンピュータメモリを共有し、各プログラムに割り当てられたメモリを他のプログラムによる望ましくないアクセスから保護する必要があることを意味します。これは、パーティション化、セグメント化、ページ化メモリ、仮想メモリなどのメモリ共有技術の開発につながりました。
マルチプログラミング レートは、特定の時点でコンピュータのメモリ内に存在するプロセスの数です。初期のコンピューターでは一度に 1 つのプログラムしか実行できなかったため、この速度は最大でも 1 に等しくなります。これは、最初のマイクロコンピュータ上の最初のオペレーティング システム (MS-DOS やCP/Mなど) にも当てはまりました。現在、すべての最新のオペレーティング システムは、シングルユーザーであるかどうかにかかわらず、高いマルチプログラミング レートをサポートしています。
ただし、一部のスーパーコンピューターは常に非常に低いマルチプログラミング レートを遵守する必要がありますが、逆に、このレートが比較的高い場合にのみ優れたパフォーマンスを発揮するスーパーコンピューターもあります。
タイムシェアリング技術は、マルチプログラミングを改良したものです。
