はじめに
マルチプログラミングとマルチタスキングの違いについて
目次
Chapter1
マルチプログラミング(Multi-programming):
-
割り込み作業なし(non-preemptive)
- 複数のプログラムがRAM(メモリ)に常駐待機をし、その中から一つづつプログラムが選ばれ実行される仕組み。そのプログラムの実行が終了した後、次のプログラムがディスパッチされる。
- 現在実行中のプログラムが入出力リソースを要求した場合は、そのプログラム実行中に、別のプログラムがCPUにディスパッチ/実行される。
-
アイドル状態(idle state)が発生
→現在のタスクが終了するまで、他のタスクは待たなければいけない。 -
最大のCPU使用率
→コンピューターが発明された当初、ユーザーは一度に一つのバッチ(ジョブ)のみ送信できた。
Chapter2
マルチタスキング(Multi-tasking):
- タイムシェアリング(time sharing)
- 現在のタスクを、指定の時間で、無理やり取り除くことが可能。
→例:各タスクがCPUに滞在できる時間を2秒だとする。
⇨2秒毎に各タスクをローテーションする。
⇨2秒で処理の終了するタスクが、処理に1時間要するタスクの終了を待たずに済む。
- 現在のタスクを、指定の時間で、無理やり取り除くことが可能。