作業系統中的多級佇列排程
作業系統使用一種稱為多級佇列排程的特定排程演算法來控制如何在不同任務之間分配資源。它是傳統基於佇列的排程方法的一種擴充套件,其中程序根據它們的優先順序、程序型別或其他因素進行分組。
透過為每個佇列分配單獨的排程演算法,系統可以根據程序的優先順序和需求分配系統資源。例如,後臺佇列可以使用先到先服務排程來最大化系統資源在長時間執行活動中的使用,而前臺佇列可以使用迴圈排程來優先處理互動式程序並加快響應時間。
多級佇列排程的目標是在公平性和效能之間取得平衡。透過賦予某些程序比其他程序更高的優先順序並相應地分配資源,系統可以提高整體效能,同時確保所有程序得到公平對待。
MLQ 架構的組成部分

在 MLQ(多級佇列)架構中,系統根據程序的型別劃分為多個佇列或級別。MLQ 架構旨在有效地處理不同型別的程序,並根據其特性優先執行它們。
MLQ 架構的主要組成部分是
系統程序 - 系統程序是指對系統正常執行至關重要的作業系統任務或程序。這些程序處理關鍵操作,例如記憶體管理、程序排程、I/O 處理和其他系統級功能。系統程序通常在 MLQ 架構中具有最高優先順序,並在其他型別程序之前執行。
互動式程序 - 互動式程序是面向使用者的程序,需要立即或接近即時的響應。這些程序通常由使用者互動(例如鍵盤輸入或滑鼠點選)啟動。互動式程序的示例包括執行文字編輯器、Web 瀏覽器或圖形應用程式。在 MLQ 架構中,互動式程序被賦予優先順序,以確保流暢且響應迅速的使用者體驗。
批處理程序 - 批處理程序是非互動式程序,在後臺執行,無需直接的使用者互動。這些程序通常涉及執行一系列可以自動化並在沒有使用者干預的情況下執行的任務或作業。批處理程序通常是資源密集型的,並且可能包括資料處理、大規模計算或計劃備份等任務。在 MLQ 架構中,批處理程序根據其優先順序分配資源,但通常比互動式程序的優先順序低。
不同級別的佇列
在多級佇列排程中,程序根據其特性、優先順序和時間限制劃分為多個級別的佇列。以下各種級別的佇列可用於多級佇列排程
前臺佇列 - 需要快速系統響應的互動式程序通常使用此佇列。通常,這些程序首先獲得關注。
後臺佇列 - 此佇列用於非互動式程序,這些程序需要較長時間才能完成。這些任務的優先順序低於前臺任務。
互動式佇列 - 互動式佇列用於需要系統在合理時間內做出響應的程序。
批處理佇列 - 此佇列用於批處理,或一次處理多個作業。這些任務通常需要較長的執行時間,並且提前提交。
系統佇列 - 此佇列用於系統程序,例如裝置驅動程式和中斷處理程式,這些程序需要特殊的許可權才能完成其任務。通常,這些程序首先獲得關注。
即時佇列 - 即時程序(需要系統快速響應)按這種方式排隊。通常,這些程序首先獲得關注。
多級佇列排程的實現
在使用多級佇列排程時,程序根據其特性和優先順序劃分為不同的佇列,然後使用每個佇列的排程演算法對其進行排程。實現多級佇列排程需要以下步驟 -
根據程序的屬性(例如優先順序、截止日期和 I/O 需求)將程序排序到多個級別的佇列中。
根據每個佇列包含的程序型別選擇每個佇列的最佳排程演算法。例如,批處理佇列可以使用先到先服務 (FCFS) 排程演算法,而前臺佇列可以使用迴圈排程演算法。
根據其包含的程序的重要性為每個佇列分配優先順序。例如,批處理佇列可能具有最低優先順序,而前臺佇列可能具有最高優先順序。
當程序進入系統時,根據其特性將其放置在相應的佇列中。例如,互動式程序可以進入互動式佇列,而批處理作業可以進入批處理佇列。
排程程式從具有已計劃執行程序的佇列頂部選擇一個程序,併為其執行做好準備,使用該佇列的相應排程演算法。
每當程序完成其執行或被阻塞在 I/O 上時,排程程式都會從包含等待執行的程序的最高優先順序佇列中選擇下一個要執行的程序。
該過程持續進行,直到系統中的每個程序都已完成執行。
優點
多級佇列排程的優點包括
根據程序的特性,多級佇列排程使作業系統能夠有效地分配資源。因此,透過有效的資源利用,降低了系統的整體響應時間。
多級佇列排程使系統能夠快速響應具有較高優先順序的操作,例如互動式程序。這使得系統總體上更具響應性,從而改善了使用者體驗。
透過多級佇列排程,作業系統可以根據其相關性對操作進行優先順序排序,確保首先執行關鍵任務。
多級佇列排程可以同時排程來自不同佇列的任務,從而提高系統吞吐量和效能。
缺點
多級佇列排程的缺點
使用複雜的多級佇列排程方法時,需要仔細選擇每個佇列的排程演算法和優先順序。它可能難以設計和執行,並且實現錯誤可能導致系統不穩定和效能下降。
使用多個佇列和排程演算法可能會增加系統的複雜性,並可能對效能產生不利影響。
如果程序分配到較低優先順序的佇列並且永遠沒有機會執行,則該程序可能會發生飢餓,尤其是在較高優先順序的程序不斷進入系統的情況下。
多個佇列有時可能導致資源利用效率低下,尤其是在設計和管理不當的情況下。
結論
作業系統採用強大的多級佇列排程技術來管理具有不同需求和特性的多個程序佇列。多級佇列排程可以透過根據程序的特性(例如優先順序、執行時間和資源需求)將程序分類到不同的佇列中來提高系統性能。