マルチプログラミングとマルチタスクを明確に区別するのは難しいと感じています。
私の主な情報源はWikipediaでしたが、WPの記事は、評判の低い情報源(大学の教授など)とは少し矛盾しているようです。
私がWPを読んだとき、マルチプログラミングは、プロセスがI / Oを待機しているときにコンテキストを切り替えることにより、CPUスループットを向上させる基本的な方法です。
マルチプログラミングでは、プログラムがタイムリーに実行されるという保証はありません。実際、最初のプログラムは、周辺機器へのアクセスを必要とせずに何時間も実行することができます。
協調時分割と同義で、協調マルチタスクは、(それは同義ではないしている)マルチプログラミング上の改良です。CPUは定期的にコンテキストを切り替えて同時実行の印象を与えますが、プロセスは引き続き生成される必要があり、設計が不十分なプログラムはシステムの残りの部分を使い果たす可能性があります。
プリエンプティブマルチタスクは、スケジューリングをより積極的に制御し、一部のプロセスを他のプロセスよりも優先させます。
- この概要は正しいですか?そうでない場合は、WPが正しくないためか、WPを誤って読み取ったためですか?
- 一部のソースがマルチプログラミングとマルチタスクを混同しているように見えるのはなぜですか?