3 排程與死鎖

2021-09-28 12:30:38 字數 2234 閱讀 3506

(1)儲存處理機的現場資訊

(2)按某種演算法選取程序

(3)把處理器分配給程序

搶占方式能滿足實時任務的需求,但比較複雜,所需付出的系統開銷也較大。

搶占原則

資源利用率(cpu利用率)、公平性、平衡性、策略強制執行

3.處理機利用率高

1.響應時間快

2.均衡性:系統響應時間的快慢應與使用者所請求服務的複雜性相適應

1.截止時間的保證

2.可**性

讓就緒佇列上的每個程序每次僅執行乙個時間片。如果就緒佇列上有n個程序,則每個程序每次大約都可獲得1/n的處理機時間。

把處理機分配給就緒佇列中優先順序最高的程序。

(1)非搶占式優先順序排程演算法

(2)搶占式優先順序排程演算法

優先順序型別

(1)靜態優先順序是在建立程序時確定,在程序的整個執行期間保持不變

(2)動態優先順序是指在建立程序之初,先賦予其乙個優先順序,然後其值隨程序的推進或待時間的增加而改變,以便獲得更好的排程效能。

先到達者先執行。

簡單但效率低,對長作業有利,對短作業不利,有利於cpu繁忙型作業,不利於i/o繁忙型作業。

作業越短,優先順序越高。

對長作業不利(飢餓),未考慮緊迫程度(依據的是使用者估計的執行時間)

死鎖是指一組程序因競爭資源而造成的一種僵局,即每個程序都占有部分資源,同時又需得到已被該組程序中其它占用的資源,若無外力作用,這些程序都將永遠處於等待狀態。

1.競爭不可搶占性資源而引起死鎖

2.競爭可消耗資源引起死鎖

3.程序推進順序不當引起死鎖

1.互斥條件:在一段時間內,某資源只能被乙個程序占用。

2.請求和保持條件:程序已經保持了至少乙個資源,但又提出了新的資源請求,而該資源已被其他程序占有,此時請求程序被阻塞,但對自己獲得的資源保持不放。

3.不可搶占條件:程序已獲得的資源在未使用完之前不能被搶占,只能在程序使用完時由自己釋放。

4.迴圈等待條件

預防死鎖,可通過破壞四個必要條件中的乙個或多個,但互斥條件不能被破壞。

當乙個程序在請求資源時,它不能持有不可搶占資源。

缺點

(1)資源利用率低,有些資源多數時間是空閒不用的。

(2)可能產生飢餓現象,如某個程序需要幾種競爭激烈的資源,可能老是處於等待狀態。

1.若乙個程序已占用了某些資源,現在又要申請新的資源,而該資源是不能被立即分給它的,則要剝奪請求程序占用的全部資源,該程序加入等待佇列。

2.當乙個資源請求資源時,若該資源空閒不用,則分配之,否則,查該資源是否分給了某個程序,而此程序又在等待獲得更多的資源,則剝奪之以滿足請求程序的需要,否則請求程序等待。在等待過程中,它的某些資源也有可能被剝奪。

1.搶占資源:從乙個或多個程序中搶占足夠數量的資源,分配給死鎖程序,以解除死鎖狀態。

2.終止(或撤銷)程序:終止或撤銷系統中的乙個或多個死鎖程序,直至打破迴圈環路,使系統從死鎖狀態解脫出來。

處理排程與死鎖

提高併發性 1 提高cpu併發計算能力 1 多程序 多執行緒 2 減少程序切換,使用執行緒,考慮程序繫結cpu 3 減少使用不必要的鎖,考慮無鎖程式設計 4 考慮程序優先順序 5 關注系統負載 2 改進i o模型 1 dma技術 儲存器直接訪問,指一種高速的資料傳輸操作,允許在外部裝置和儲存器之間直...

第3章 處理機排程與死鎖(二)

什麼時候計算各程序的響應比優先權?需要進行排程選擇的時候比較各自優先權 作業完成時 新作業產生時 搶占 非搶占 時間片完成時 程序阻塞時 影響時間片長度的主要因素 系統的處理能力和系統的負載狀態。依據系統的處理能力確定時間片長度,使使用者輸人通常在乙個時間片內能處理完,否則使響應時間 平均周轉時間和...

OS學習之排程與死鎖

排程與死鎖 衡量作業排程的測度 1 作業平均周轉時間 t和加權平均周轉時間w。t 其中ti fi ai,即作業結束時間減去作業到達時間,n為作業數 w 其中wi ti ri,r 為事件執行時間 2 作業或程序的平均等待時間,即各個作業或程序進入可以排程的狀態 作業為收容狀態,程序為就緒狀態 到開始選...