マルチレベルキューイングは、少なくとも1950年代後半から1960年代初頭にかけて使用されてきた、あらかじめ定義された数のレベルを持つキューです。アイテムは挿入時に(あらかじめ定義されたアルゴリズムを使用して)特定のレベルに割り当てられるため、(マルチレベルフィードバックキューとは異なり)別のレベルに移動することはできません。アイテムは、あるレベルからすべてのアイテムを削除してから次のレベルに移動することでキューから削除されます。アイテムが上位レベルに追加された場合、「フェッチ」はそこから再開されます。キューの各レベルは独自のスケジューリングを使用できるため、単にキューに複数のレベルがあるだけの場合よりも柔軟性が高くなります。
マルチレベルキュー[ 1 ] : 196スケジューリングアルゴリズムは、プロセスタイプ、CPU時間、IOアクセス、メモリサイズなどの特性に基づいてプロセスをグループに分類できるシナリオで使用されます。プロセスの一般的な分類の1つは、フォアグラウンドプロセスとバックグラウンドプロセスです。マルチレベルキュースケジューリングアルゴリズムでは、プロセスが分類されるグループの数である「n」個のキューが存在します。各キューには優先度が割り当てられ、ラウンドロビンスケジューリング[ 1 ] : 194やFCFSなどの独自のスケジューリングアルゴリズムを持ちます。キュー内のプロセスを実行するには、それよりも優先度の高いすべてのキューが空である必要があります。つまり、それらの優先度の高いキュー内のプロセスは実行を完了している必要があります。このスケジューリングアルゴリズムでは、プロセスがキューに割り当てられると、他のキューには移動しません。
到着時刻、実行時刻、およびプロセスタイプ(フォアグラウンドまたはバックグラウンド - フォアグラウンドプロセスには高い優先度が与えられる)を示す以下の表を参考に、両方のキューに対してFCFSアルゴリズムを用いた非プリエンプティブおよびプリエンプティブなマルチレベルスケジューリングを詳細に理解してください。
