導航:首頁 > 源碼編譯 > 飢餓現象的調度演算法

飢餓現象的調度演算法

發布時間:2023-03-07 02:59:46

① 不會發生飢餓現象的調度演算法

不會發生飢餓現象的調度演算法,這叫什麼話呀?我們中國人現在不都是衣食無憂了嗎?怎麼還會飢餓現象出現呢?你不是想到了什麼時候的年代的事?

② SJF什麼意思

最短作業優先演算法SJF SJF(Shortest Job First ) SJF演算法以進入系統的作業所要求的CPU時間為標准,總選取估計計算時間最短的作業投入運行。 SJF演算法的優缺點: 演算法易於實現。但效率不高,主要弱點是忽視了作業等待時間;會出現飢餓現象。 SJF演算法與FCFS演算法的比較: SJF的平均作業周轉時間比FCFS要小,故它的調度性能比FCFS好。 SJF調度演算法的問題: 實現SJF調度演算法需要知道作業所需運行時間,否則調度就沒有依據,要精確知道一個作業的運行時間是辦不到的。

③ 操作系統的進程調度演算法[總結]

操作系統的進程調度演算法直接關繫到用戶的使用體驗。

如果把用戶的體驗時間,引入到計算機裡面,我們引入以下幾個概念。

周轉時間,指作業從提交系統開始,直到作業完成為止的時間間隔。包括:

是指作業周轉時間與作業實際運行服務時間的比值。
平均周轉時間和平均帶權周轉時間是衡量批處理系統調度演算法的重要准則。

先來先服務調度演算法(First Come First Served, FCFS)是最簡單的調度演算法,可以用於作業調度和進程調度。
按照作業進入系統後備作業隊列的先後次序來挑選作業,加入就緒隊列,等待執行。

FCFS是非搶占式的,易於實現,效率不高,性能不好.
有利於長作業(CPU繁忙性)而不利於短作業(I/O繁忙性)。

服務時間:作業需要運行的時間
完成時間 = 開始時間 + 服務時間
等待時間 = 開始時間 - 提交時間
周轉時間 = 完成時間 - 提交時間
帶權周轉時間 = 周轉時間 / 服務時間
響應比 = (等待時間 + 服務時間) / 服務時間 = 等待時間/服務時間 + 1

該演算法每次從後備作業隊列中挑選估計服務時間最短的一個或幾個作業,
將他們調入內存,分配必要的資源,創建進程並放入就緒隊列。
在進程調度中的原理類似。

SJF是非搶占式的,優先照顧短作業,具有很好的性能,降低平均等待時間,提高吞吐量。
但是不利於長作業,長作業可能一直處於等待狀態,出現飢餓現象;
完全未考慮作業的優先緊迫程度,不能用於實時系統。

高響應比優先調度演算法(Highest Reponse Ratio First, HRRF)是非搶占式的,主要用於作業調度。
基本思想:每次進行作業調度時,先計算後備作業隊列中每個作業的響應比,挑選最高的作業投入系統運行。
響應比 = (等待時間 + 服務時間) / 服務時間 = 等待時間 / 服務時間 + 1

由響應比分析可知,該演算法介於FCFS和SJF之間,但是每次需要計算每個作業的響應比,增加系統開銷。

④ SJF調度演算法

SJF調度演算法:最短作業優先演算法SJF(Shortest Job First ),SJF演算法以進入系統的作業所要求的CPU時間為標准,總選取估計計算時間最短的作業投入運行。

SJF 調度演算法優缺點:演算法易於實現。但效率不高,主要弱點是忽視了作業等待時間;會出現飢餓現象。SJF 調度演算法可證明為最佳的,這是因為對於給定的一組進程, SJF 演算法的平均等待時間最小。雖然 SJF 演算法最佳,但是它不能在短期CPU 調度層次上加以實現。因為沒有辦法知道下一個 CPU 區間的長度。

SJF演算法Gantt圖:

進程 區間時間


PI 6


P2 8


P3 7


P4 3

進程 P1 的等待時間是 3 ms,進程P2的等待時間為 16 ms,進程P3的等待時間為 9ms,進程P4的等待時間為 0ms。因此,平均等待時間為(3 + 16 + 9 +0) / 4 = 7 ms。

⑤ 操作系統中的HRRF是什麼調度演算法

操作系統的常見調度演算法有哪些啊?
ABCDE五進程達間別0 1 2 3 4服務間4 3 5 2 4要求按高響應比優先調度算求平均帶權周轉間

⑥ 目前常用的磁碟調度演算法有哪幾種每種演算法優先考慮的問題是什麼

  1. 先來先服務演算法:這個演算法實際上不考慮訪問者要求訪問的物理位置,而只是考慮訪問者提出訪問請求的先後次序。

  2. 最短尋道時間優先演算法:要求訪問的磁軌,與當前磁頭所在的磁軌距離最近,以使每次的尋道時間最短。

  3. 掃描演算法:「電梯調度」是沿著臂的移動方向去選擇離當前讀寫詞頭最近的哪個磁軌的訪問者。

  4. .循環掃描演算法:防止飢餓現象

⑦ 磁碟調度演算法

  上文介紹了磁碟的結構,本文介紹磁碟的調度演算法相關的內容。
   本文內容

   尋找時間(尋道時間) T s :在讀/寫數據前,需要將磁頭移動到指定磁軌所花費的時間。
  尋道時間分兩步:

  則尋道時間 T s = s + m * n。

  磁頭移動到指定的磁軌,但是不一定正好在所需要讀/寫的扇區,所以需要通過磁碟旋轉使磁頭定位到目標扇區。

   延遲時間T R :通過旋轉磁碟,使磁頭定位到目標扇區所需要的時間。設磁碟轉速為r(單位:轉/秒,或轉/分),則 平均所需延遲時間T R = (1/2)*(1/r) = 1/2r。

   傳輸時間T R :從磁碟讀出或向磁碟中寫入數據所經歷的時間,假設磁碟轉速為r,此次讀/寫的位元組數為b,每個磁軌上的位元組數為N,則傳輸時間 T R = (b/N) * (1/r) = b/(rN)。

  總的平均時間 T a = T s + 1/2r + b/(rN) ,由於延遲時間和傳輸時間都是與磁碟轉速有關的,且是線性相關。而轉速又是磁碟的固有屬性,因此無法通過操作系統優化延遲時間和傳輸時間。所以只能優化尋找時間。

  演算法思想: 根據進程請求訪問磁碟的先後順序進行調度。
  假設磁頭的初始位置是100號磁軌,有多個進程先後陸續地請求訪問55、58、39、18、90、160、150、38、184號磁軌。
  按照先來先服務演算法規則,按照請求到達的順序,磁頭需要一次移動到55、58、39、18、90、160、150、38、184號磁軌。

  磁頭共移動了 45 + 3 + 19 + 21 + 72 + 70 + 10 + 112 + 146 = 498個磁軌。響應一個請求平均需要移動498 / 9 = 55.3個磁軌(平均尋找長度)。
  優點: 公平;如果請求訪問的磁軌比較集中的話,演算法性能還算可以
  缺點: 如果大量進程競爭使用磁碟,請求訪問的磁軌很分散,FCFS在性能上很差,尋道時間長

  演算法思想: 優先處理的磁軌是與當前磁頭最近的磁軌。可以保證每次尋道時間最短,但是不能保證總的尋道時間最短 。(其實是貪心演算法的思想,只是選擇眼前最優,但是總體未必最優)。

  假設磁頭的初始位置是100號磁軌,有多個進程先後陸續地請求訪問55、58、39、18、90、160、150、38、184號磁軌。

  磁頭總共移動了(100 -18)+ (184 -18) = 248個磁軌。響應一個請求平均需要移動248 / 9 = 27.5個磁軌(平均尋找長度)。
  缺點: 可能產生飢餓現象
  本例中,如果在處理18號磁軌的訪問請求時又來了一個38號磁軌的訪問請求,處理38號磁軌的訪問請求又來了一個18號磁軌訪問請求。如果有源源不斷的18號、38號磁軌訪問請求,那麼150、160、184號磁軌請求的訪問就永遠得不到滿足,從而產生飢餓現象。這里產生飢餓的原因是 磁頭在一小塊區域來回移動。

  SSTF演算法會產生飢餓的原因在於:磁頭有可能再一個小區域內來回得移動。為了防止這個問題,可以規定: 磁頭只有移動到請求最外側磁軌或最內側磁軌才可以反向移動,如果在磁頭移動的方向上已經沒有請求,就可以立即改變磁頭移動,不必移動到最內/外側的磁軌。 這就是掃描演算法的思想。由於磁頭移動的方式很像電梯,因此也叫 電梯演算法

  假設某磁碟的磁軌為0~200號,磁頭的初始位置是100號磁軌,且此時磁頭正在往磁軌號增大的方向移動,有多個進程先後陸續的訪問55、58、39、18、90、160、150、38、184號磁軌。

  磁頭共移動了(184 - 100)+ (184 -18) = 250個磁軌。響應一個請求平均需要移動 250 / 9 = 27.5個磁軌(平均尋找長度)。

  優點: 性能較好,尋道時間較短,不會產生飢餓現象。
  缺點: SCAN演算法對於各個位置磁軌的響應頻率不平均 。(假設此時磁頭正在往右移動,且剛處理過90號磁軌,那麼下次處理90號磁軌的請求就需要等待低頭移動很長一段距離;而響應了184號磁軌的請求之後,很快又可以再次響應184號磁軌請求了。)

  SCAN演算法對各個位置磁軌的響應頻率不平均,而C-SCAN演算法就是為了解決這個問題。規定只有磁頭朝某個特定方向移動時才處理磁軌訪問請求,而 返回時直接快速移動至最靠邊緣的並且需要訪問的磁軌上而不處理任何請求。
  通俗理解就是SCAN算在改變磁頭方向時不處理磁碟訪問請求而是直接移動到另一端最靠邊的磁碟訪問請求的磁軌上。

  假設某磁碟的磁軌為0~200號,磁頭的初始位置是100號磁軌,且此時磁頭正在往磁軌號增大的方向移動,有多個進程先後陸續的訪問55、58、39、18、90、160、150、38、184號磁軌。

  磁頭共移動了(184 -100)+ (184 - 18)+(90 - 18)=322個磁軌。響應一個請求平均需要移動322 / 9 = 35.8個磁軌(平均尋找長度)。

  優點: 相比於SCAN演算法,對於各個位置磁軌響應頻率很平均。
  缺點: 相比於SCAN演算法,平均尋道時間更長。

⑧ 優先順序調度演算法

優先順序調度演算法的原理是給每個進程賦予一個優先順序,每次需要進程切換時,找一個優先順序最高的進程進行調度。這樣,如果賦予長進程一個高優先順序,則該進程就不會再「飢餓」。事實上,STCF演算法本身就是一種優先順序調度,只不過它給予短進程高優先順序而已。

優先順序調度的優點是可以賦予重要的進程以高優先順序以確保重要任務能夠得到CPU時間。其缺點則與STCF演算法一樣,低優先順序的進程可能會「飢餓」。不過,這個問題在優先順序調度演算法里比在STCF里好解決:只要動態地調節優先順序即可。例如,在一個進程執行特定CPU時間後將其優先順序降低一個級別,或者將處於等待進程的優先順序提高一個級別。這樣,一個進程如果等待時間很長,其優先順序將因持續提升而超越其他進程的優先順序,從而得到CPU時間。這樣,「飢餓」現象就可以防止。

不過,優先順序調度還有一個缺點,就是響應時間不能保證,除非將一個進程的優先順序設置為最高。即使將優先順序設置為最高,但如果每個人都將自己進程的優先順序設為最高,則響應時間還是無法保證。

閱讀全文

與飢餓現象的調度演算法相關的資料

熱點內容
找酒吧設計公司用什麼app 瀏覽:680
基本初等函數的導數公式及導數的運演算法則 瀏覽:915
為什麼小米app啟動廣告關不了 瀏覽:877
空調壓縮機一直不停 瀏覽:511
養殖系統開發源碼 瀏覽:82
pdf的目錄 瀏覽:406
光遇安卓如何一個人拍視頻 瀏覽:277
怨女pdf 瀏覽:708
扭曲伺服器什麼時候開 瀏覽:23
加密貨幣換平台 瀏覽:609
手機內存壓縮軟體 瀏覽:33
生成樹是否與遍歷演算法有關 瀏覽:728
python強化學習迷宮 瀏覽:450
老包子解壓視頻 瀏覽:885
伺服器注冊是什麼意思 瀏覽:418
程序員群體焦慮如何破局 瀏覽:585
程序員在廣州上班 瀏覽:803
androidlinuxadt 瀏覽:512
廣聯達軟體加密鎖原裝晶元 瀏覽:338
如何打開資料庫伺服器 瀏覽:312