多級佇列排程演算法(含範例分析)

2020-07-16 10:04:40
在進程容易分成不同組的情況下,可以有另一類排程演算法。例如,進程通常分為前台進程(或互動進程)和後台進程(或批次處理進程)。這兩種型別的進程具有不同的響應時間要求,進而也有不同排程需要。另外,與後台進程相比,前台進程可能要有更高的優先順序(外部定義)。

多級佇列排程演算法將就緒佇列分成多個單獨佇列(圖 1)。根據進程屬性,如記憶體大小、進程優先順序、進程型別等,一個進程永久分到一個佇列,每個佇列有自己的排程演算法。

例如,可有兩個佇列分別用於前台進程和後台進程。前台佇列可以採用 RR 排程演算法,而後台佇列可以採用 FCFS 排程演算法。

此外,佇列之間應有排程,通常採用固定優先順序搶佔排程。例如,前台佇列可以比後台佇列具有絕對的優先。

現在,我們看一個多級佇列排程演算法的範例,這裡有五個佇列,它們的優先順序由高到低:

多級隊列調度
圖 1 多級佇列排程