(1)程序的概念 :
程序是作業系統結構的基礎;是乙個正在執行的程式;計算機中正在執行的程式例項;可以分配給處理器並由處理器執行的乙個實體;由單一順序的執行顯示,乙個當前狀態和一組相關的系統資源所描述的活動單元。在電腦的應用程式被執行後,就相當於將應用程式裝進容器裡了,你可以往容器裡加其他東西(如:應用程式在執行時所需的變數資料、需要引用的dll檔案
等),當應用程式被執行兩次時,容器裡的東西並不會被倒掉,系統會找乙個新的程序容器來容納它。為了深刻描述程式動態執行過程的性質,人們引入「程序(process)」概念。
(2)程序的構成:
**段、資料段、程序控制塊(pcb)
程序是動態的,而程式是靜態的。
執行狀態、就緒狀態、堵塞狀態
(1)處理機的**排程:
高階排程
:(high-level scheduling)又稱為作業 排程,它決定把後備作業調入記憶體執行;
低階排程
:(low-level scheduling)又稱為程序排程,它決定把就緒佇列的某程序獲得cpu;
中級排程
:(intermediate-level scheduling)又稱為在虛擬儲存器
中引入,在記憶體、外存』
對換區進行程序對換。
(2)程序排程演算法:演算法總是把處理機分配給最先進入就緒佇列的程序,乙個程序一旦分得處理機,便一直執行下去,直到該程序完成或阻塞時,才釋放處理機。可見,fifo演算法服務質量不佳,容易引起作業使用者不滿,常作為一種輔助排程演算法。
最短cpu執行期優先排程演算法(scbf--shortest cpu burst first)
該演算法從就緒佇列中選出下乙個「cpu執行期最短」的程序,為之分配處理機。
該演算法雖可獲得較好的排程效能,但難以準確地知道下乙個cpu執行期,而只能根據每乙個程序的執行歷史來**。
前幾種演算法主要用於批處理作業系統中,不能作為分時系統中的主排程演算法,在分時系統中,都採用時間片輪轉法。
簡單輪轉法:系統將所有就緒程序按fifo規則排隊,按一定的時間間隔把處理機分配給佇列中的程序。這樣,就緒佇列中所有程序均可獲得乙個時間片的處理機而執行。
多級佇列方法:將系統中所有程序分成若干類,每類為一級。
多級反饋佇列方式是在系統中設定多個就緒佇列,並賦予各佇列以不同的優先權
作業系統 程序排程及其演算法
儲存處理機資訊 按某種演算法選取程序 把處理器分配給程序 排隊器。把就緒程序排成乙個或者幾個佇列 分派器。把程序從就緒佇列中取出來,然後把處理機給他 非搶占式 搶占式把就緒程序排成乙個佇列,把cpu分配給隊首程序,執行一定的時間,執行完畢就分配給另乙個新的隊首程序,每隔一定的時間就執行乙個程序 一旦...
作業系統 程序排程演算法
cpu利用率 cpu忙碌的時間佔總時間的比例 利 用率 忙碌的 時間總時 間利用率 frac 利用率 總時 間忙碌的 時間 系統吞吐量 單位時間完成作業或程序的數量 吞 吐量 完成的 作業數量 總時 間吞吐量 frac 吞吐量 總時 間完成的 作業數量 周轉時間 完成作業需要花費的總時間 周 轉時 ...
作業系統的程序排程演算法
作業系統的程序排程也稱 dispatcher,其實簡單來說作業系統的程序排程不外乎人類社會的兩大原則 先來後到和優先順序,乙個良好的任務排程演算法主要體現在以下幾個方面 公平的保證每個程序得到合理的cpu時間 高效的使cpu保持忙碌狀態即總有程序在cpu上執行 使互動使用者的響應時間盡可能短 周轉時...