程序排程
程序排程室作業系統必不可少的一種排程。因此在三種型別的os(dos、windows、linux),都無一例外地配置了程序排程。此外它也是對系統效能影響最大的一種處理機排程。程序排程的任務
儲存處理機的現場資訊。在進行排程時首先需要儲存當前程序的處理機的現場資訊,如程式計數器、多個通用暫存器中的內容。
按某種演算法選取程序。排程程式按某種演算法從就緒佇列中選取乙個程序,將其狀態改為執行狀態,並準備把處理機分配給他。
把處理器分配給程序。由分派程式把處理器分配給該程序,此時需要將選中程序的程序控制塊內有關處理機現場的資訊裝入處理器相應的各個暫存器中,把處理機的控制權交予該程序,讓他從上次的斷點處恢復執行。
程序排程機制
排隊器。為了提高程序排程的效率,應事先將系統中的所有就緒程序按照一定的策略排成乙個或多個佇列,以便排程程式能最快最快地找到他。以後每當有乙個程序轉變為就緒狀態時,排隊器便將他插入到相應的就緒佇列。
分派器。分派器依據程序排程程式所選定的程序,將其從就緒佇列中取出,然後進行從分派器到新選出程序間的上下文切換,將處理機奉陪給新選出的程序。
上下文切換器。在對處理機進行切換時,會發生兩對上下文的切換操作:①第一對上下文切換時,os將儲存到當前程序的上下文,即把當前程序的處理機暫存器內容儲存到該程序的控制塊內的相應單元,再裝入分派程式的上下文,以便分派程式執行;②第二對上下文切換是移出分派程式的上下文,而把新選程序的cpu現場資訊裝入到處理機的各個相應暫存器中,以便新選程序執行。
程序排程方式
非搶占式
在採用這種排程方式時,一旦把處理機分配給某個程序後,就一直讓它執行下去,決不會因為時鐘中斷或任何其他原因去搶占當前正在執行程序的處理機,直至該程序完成,或發生某事件而被阻塞時,才把處理機分配給其他程序。可能引起程序排程的因素:
優點搶占方式缺點
這種排程方式允許排程程式根據某種原則,去暫停某個正在執行的程序,將已分配給該程序的處理機重新分配給另乙個程序。在現代os中廣泛採用搶占方式,這是因為:對於批處理機系統,可以防止乙個長程序長時間地占用處理機,以確保處理機能為所以程序提供更為公平的服務。在分時系統中,只有採用搶占方式才有可能實現人—機互動。在實時系統中,搶占方式能滿足實時任務的需求。但搶占方式比較複雜,所需付出的系統開銷也交大。搶占方式遵循的原則
排程演算法(模擬實現)
在進行模擬實現前程序排程演算法前,我們將做一些準備工作,首先我們需要建立乙個程序物件,來建立不同的程序資訊,在程序排程時,時間已久很關鍵,因此我們也需要乙個時間物件來方便我們進行操作。
建立程序類與時間類
先來先服務排程演算法(first-come first-service, fcfs)
fcfs是最簡單的排程演算法,該演算法可用於作業排程,也可用於程序排程。在當前作業排程中採用該演算法是,系統將按照作業到達的先後次序來進行排程。先來先服務演算法模擬實現
短作業優先排程演算法(short job first, sjf)
sjf演算法是以作業長短來計算優先順序,作業越短,其優先順序越高。作業的長短是以作業要求的執行時間來衡量的。sjf演算法可以分別用於作業排程和程序排程。在把短作業優先排程演算法用於作業排程時,他講從外存的後備佇列中選擇若干個估計執行時間最大短的作業,優先將他們調入記憶體執行。模擬實現短作業優先排程演算法
缺點
優先順序排程演算法(priority-scheduling algorithm, psa)
在優先順序排程演算法中模擬實現高響應比優先排程演算法由上述公式可以看出:①如果罪業等待時間相同,則要求服務時間越短,其優先權越高;②當要求服務時間相同是,作業的優先權取決於等待時間。優先權 = (等待時間+要求服務時間) / 要求服務時間 = 1 + 等待時間 / 要求服務時間
模擬實現高響應比優先演算法
缺點
時間片輪轉排程演算法(round robin, rr)
時間片輪轉排程演算法每次程序只執行乙個時間片的時間,讓等待佇列中的程序都可以執行乙個時間線的時間,達到併發的結果。模擬實現時間片輪轉排程演算法
作業系統程序排程
華中農業大學 學生實驗報告 課程名稱 計算機作業系統 實驗名稱 程序排程 實驗型別 驗證 設計 綜合 創新 實驗目的 實驗目的 1 通過編寫程式實現程序或作業先來先服務 高優先權 按時間片輪轉排程演算法,使 學生進一步掌握程序排程的概念和演算法,加深對處理機分配的理解。2 了解程序 執行緒 的排程機...
作業系統 程序排程
對於單處理器系統,同一時間只有乙個程式可以執行 其他程序都應等待,直到cpu空閒並可排程為止。多道程式的目標是,始終允許某個程序執行以最大化cpu利用率。cpu的程序屬性 週期進行cpu執行和i o等待。程序在這兩個狀態之間不斷交替。程序執行從cpu執行開始,之後i o執行 接著另乙個cpu執行,接...
作業系統 程序排程
在cpu分配資源的時候,我們需要考慮分配資源的規則,通過規則或者說演算法選擇乙個程序給處理機執行就是處理機排程,就像銀行排隊是先到者優先還是vip客戶優先。排程的層級分為 高階 中級 低階。狹義的程序排程只是選擇就緒佇列中的程序交給處理機執行,廣義的程序排程還包括程序切換。程序切換是乙個程序讓出處理...