OS零碎知識整理 8

2021-10-05 18:41:34 字數 1635 閱讀 5639

這個演算法較為公平,也比較好理解。

基本思路:依照各作業或程序到來的順序組成佇列進行排程。

不利於短作業或短程序,因為如果短作業前有很多長作業,那麼短作業必須等長作業都執行完成後才能執行,周轉時間太長。

此排程演算法很少單獨使用,一般與其他演算法搭配使用。

基本思路:將cpu的處理時間分成固定大小的時間片,迴圈分給就緒佇列中的程序。如果程序無法在固定的時間片內完成任務,則自行釋放自己所占有的cpu,排到就緒佇列的末尾;如果程序在固定時間片內完成了任務,且任務時間小於時間片長度,直接釋放cpu

這一排程演算法適用於分配可搶占的資源

由於作業排程是對除了cpu之外的所有系統硬體資源的分配,其中包括不可搶占的資源,所以作業排程不使用輪轉法。

舉兩個例子

(1)cpu是可搶占的資源,在任意時刻將cpu剝奪不會出現什麼問題,因為jcb或pcb會記錄下當前作業或程序的狀態,以便下次得到cpu時繼續進行處理。

(2)印表機是不可搶占的資源,如果在一程序列印中途搶占印表機轉而列印另一程序的內容,那會導致所列印內容的混亂。

輪轉法對時間片的大小也有要求

(1)如果時間片太小,那麼會導致程序上下文的切換過於頻繁,系統開銷過大。

(2)如果時間片過大,即任一程序都能在一時間片大小中完成其任務,那麼輪轉法就退化成先來先服務演算法。

基本思路:確定程序或作業的優先順序。

確定優先順序的方法可分為兩類,靜態法和動態法。

靜態法:根據程序或作業的靜態特性,在作業或程序開始執行之前就確定它們的優先順序,一旦開始執行之後就不能改變。(系統效率較低,排程效能不高。)

動態法,將程序或作業的靜態特性和動態特性結合起來確定程序或作業的優先順序,隨著程序或作業的執行過程,優先順序不斷變化。

程序的動態優先順序

(1)根據程序占有cpu時間的長短來決定。乙個程序占有處理機的時間越長,則在被阻塞之後再次獲得排程的優先順序就越低。

(2)根據就緒程序等待cpu的時間長短來決定。乙個就緒程序在就緒佇列中等待的時間越長,則優先順序就越高。

由於動態優先順序不斷變化,所以系統要經常計算各程序的優先順序,要付出一定的開銷。

基本思路:選擇估計需要執行時間最短的作業投入執行,為它們建立程序和分配資源。

在這一排程演算法中,由於首先選取最短的作業執行,所以系統在同一時間內處理的作業個數最多,從而吞吐量大於其他排程方式。

但如果不斷有短作業進入批處理系統,可能導致長作業飢餓

基本思路:同時考慮每個作業的等待時間長短和估計需要的執行時間長短,從中選出響應比最高的作業投入執行。

響應比rr = ( w + t ) / t

其中,w 為作業在後備狀態佇列中的等待時間;t 為作業估計需要的執行時間。

在每次要進行作業排程時計算每個作業的響應比,選擇其中r最大者投入執行,避免了在最短作業優先法中長作業出現飢餓的情況。

由於每次都要計算作業的響應比,所以系統開銷也要相應增加。

OS零碎知識整理 1

1.流式檔案,屬於邏輯結構的檔案。2.通道 i o處理機 能夠完成主存與外設之間的資訊傳輸。3.作業系統的主要設計目標是 1 方便使用者 2 提高系統效率。4.死鎖的四個必要條件 1 互斥條件 2 請求和保持條件 3 不可剝奪條件 4 循壞等待條件 缺一不可 5.為了使使用者能夠透明地訪問檔案,檔案...

OS零碎知識整理 9

虛擬儲存器不考慮物理儲存器黨的大小和資訊存放的實際位置,只規定每個程序中相互關聯資訊的相對位置。每個程序都有自己的虛擬儲存器,且虛擬儲存器的容量由計算機的位址結構和定址方式確定。記憶體位址 實體地址 1 靜態位址重定位 static address relocation 靜態重定位方法一旦將程式裝入...

OS零碎知識整理 12

1 程式計數器,用來記錄接著要執行哪一條指令。2 暫存器,用來儲存執行緒當前的工作變數。3 堆疊,用來記錄執行歷史,其中每一幀儲存了乙個已呼叫的但是未返回的過程。在使用者級執行緒中,有關執行緒管理的所有工作都由應用程式完成,意味著核心意識不到執行緒的存在。1 執行緒管理不需要到核心中進行處理,避免了...